web-dev-qa-db-ja.com

Openvpnクライアント、DNSサーバーを強制

Linux Ubuntu構成にはDNSサーバー(Bind 9)があります。
そしてresolv.confには

  nameserver 127.0.0.1

そのLinuxでopenvpnクライアントを使用する場合、nameserverは(VPNサーバーによって)変更されませんが、VPNセッション中にのみ、別の特定のDNSサーバーに設定しますx.y.z.t、openvpnクライアント設定を変更する。

次に、openvpnセッションが終了すると、nameserver127.0.0.1に戻るはずです。

それを行うための「クリーン」な方法(つまり、openvpnクライアント設定ファイルの行)はありますか?

(注:VPNサーバーの構成は変更できません)

9
Ring Ø

さらにググったら、答えを見つけることができました-誰かを助けることができるかどうか以下で。

  • resolv.conf構成ファイルを保存および復元できるインストールresolvconf
  • openvpnによって実行されるスクリプトを/usr/share/openvpnに追加し、update-resolv-confという名前を付けます。スクリプトは、新しいresolv.confとは何か、およびそれを復元する方法を決定します(下のリンクを参照)
  • 追加

これらの行

  script-security 2
  up /usr/share/openvpn/update-resolv-conf
  down /usr/share/openvpn/update-resolv-conf

openvpnクライアント設定ファイル内。

詳細は this wiki を読んでください。

17
Ring Ø

クライアントでroute-up/route-downスクリプトを使用して、接続設定の構成を必要に応じて変更することを検討してください。これを設定する方法、およびこれらのスクリプトで使用する可能性のある変数の詳細については、 OpenVPN docs を参照してください。

1
the-wabbit

これは、この問題の修正に役立つ情報でした。

私はArch Linuxユーザーですが、LinuxクライアントがAccess Serverで使用されている場合、問題のクライアントのDNS設定を変更することはできません。これは、スタンドが立っているため、ホストを解決しないためです OPEN VPNドキュメント

私は問題を修正するスクリプトを作成し、いくつかの追加パラメーターを使用して、コマンドラインからopenvpn接続を処理しました。

https://Gist.github.com/Android10/ee5c3e93dbcf9b7b31e6ee768cbfd477

接続のために実行されている主なコマンドは次のとおりです。

  Nohup openvpn --config $OVPN_FILE_PATH --askpass $OVPN_PRIVATE_KEY_FILE_PATH \
  --script-security 2 \
  --setenv PATH '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' \
  --up /etc/openvpn/scripts/update-systemd-resolved \
  --down /etc/openvpn/scripts/update-systemd-resolved \
  --down-pre \
  &>/dev/null &

どんなフィードバックでもそれ以上に感謝されます。

1
Fernando Cejas