OpenVPNサーバーがプッシュされたパスを拒否する方法は?

OpenVPNサーバーがプッシュされたパスを拒否する方法は?

インターネット経由で会社のOpenVPNサーバーへのOpenVPNクライアント接続を確立すると、複数の固定パスがプッシュされます。残念ながら、このパスは私のパスと競合しているため、私のローカルネットワーク環境でいくつかの接続が失われました。このパスをどのように拒否できますか?

答え1

時間が経ち、2017年(OpenVPN 2.4)からこれが可能になりました。

pull-filter accept "route 192.168."
pull-filter ignore "route 172."
pull-filter accept "route 1"
pull-filter ignore "route "

この (人為的な例) は、192.168 で始まるパスを学習することを許可し、すべての 172. パスを無視し、他のパスを 1.anything として許可し、他のすべてのパスを無視します。

無視するには、redirect-gateway次のようにします。

pull-filter ignore redirect-gateway

これらのコマンドはクライアント構成ファイルに追加されます。

同様に、キーワードを使用してrejectVPN サーバーに許可されていないことを通知できます。これが何なのかよくわかりません。

最後に、他の設定オプションもフィルタリングできます。 DNSはローカルサーバーによって処理されるため、提供されたDNSサーバーを無視するためにこれを使用します。

答え2

マニュアルを広く調査した後、openvpn私の質問に対する答えを見つけました。

ルーティングを自動化せずに代わりに独自のツールで処理するには、次のオプションを使用します。

--パス-noexec

パスを自動的に追加または削除しないでください。代わりに、--route-up環境変数を使用してスクリプトにパスを渡してください。

パスを除いてサーバーからプッシュされたすべてのエントリを受け入れるには、次のオプションを使用します。

--パス-ノープール

--clientまたはと一緒に使用すると、サーバーはプッシュした--pullオプションを許可します(ルーティングを除く)。

クライアントでこのオプションを使用すると、サーバーがクライアントのルーティングテーブルにパスを追加するのを効果的に無効にできますが、このオプションを使用すると、サーバーはまだクライアントTUN / TAPインターフェイスのTCP / IPプロパティを設定できます。

答え3

--push個々のパスを拒否することはできませんが、OpenVPN構成を編集する権限がある場合は、構成のすべてのインスタンスを削除するか、構成から削除してサーバーが構成にアクセスするのを効果的に停止できます。このディレクティブがまだ構成に存在しない場合(単純な、同義語)、これを追加する必要があります。clientpulltls-clientclientpulltls-client

もちろん、これはpush一般的に提供されているすべてのルーティングやその他の設定を失うため、トンネルの開始後にこれらの設定を手動で設定する必要があります。

関連情報