回答:
時代は進んでおり、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
これらのコマンドは、クライアント構成ファイルに追加されます。
同様reject
に、受け入れられなかったことをVPNサーバーに伝えるキーワードを使用できます。これの使用法がわからない。
そして最後に、他の設定オプションもフィルタリングできます。DNSは私のためにローカルサーバーによって処理されるため、提供されているDNSサーバーを無視するためにこれを使用しました。
openvpn
マニュアルを徹底的に研究した後、私の質問に対する答えを見つけました。
ルートを自動的に実行したくないが、独自のツールで処理するには、次のオプションを使用します。
--route-noexec Don't add or remove routes automatically. Instead pass routes to --route-up script using environmental variables.
ルート以外のサーバーによってプッシュされるすべてを受け入れる場合は、次のオプションを使用します。
--route-nopull When used with --client or --pull, accept options pushed by server EXCEPT for routes. When used on the client, this option effectively bars the server from adding routes to the client's routing table, however note that this option still allows the server to set the TCP/IP properties of the client's TUN/TAP interface.
route-nopull
ファイルでも使用できるfyi:stackoverflow.com/questions/35698215/…–
個々のルートを拒否することはできませんが、OpenVPN構成を編集するアクセス権--push
があるclient
場合pull
は、構成のすべてのインスタンスを削除することにより、構成を実行しているサーバーを効果的に停止できます。あなたが追加する代わりに、必要があります。tls-client
このディレクティブは、すでにお使いのコンフィギュレーションに存在しない場合(client
のためだけの同義語ですpull
、tls-client
)。
もちろん、これを行うと、すべてのルートと、通常はpush
編集される他の構成がすべて失われるため、トンネルが立ち上がった後にこれらの設定を手動で構成する必要があります。