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


9

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

  nameserver 127.0.0.1

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

次に、openvpnセッションが終了すると、ネームサーバーはに戻り127.0.0.1ます。

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

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

回答:


17

さらにググリングした後、答えを見つけることができました-誰かを助けることができる場合は以下。

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

これらの行

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

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

詳細については、このWikiをお読みください。


5
OpenVPNの新しいインストールには、インストールにこのスクリプトが含まれています。で手動でダウンロードしてインストールする代わりに、で/usr/share/openvpn/update-resolv-confプレインストールされていることがわかります/etc/openvpn/update-resolv-conf
ネイトランプトン2018年

OpenVPNのどのバージョンがこのファイルを組み込み始めましたか?
lanoxx

1
ここのパーティーには少し遅れましたが、私は使用2.4.6していて、インストールされています
Roshan Bhumbra

1

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


+1、面白くて便利。updown(評価の上のまたは下の詳細)を介しresolvconfソリューションは、はるかに重要であり、imoよりクリーンです。
リングØ2014

@ ring0 競合状態を最小化するroute-up代わりにupを使用することをお勧めします。ときにupスクリプトが実行され、接続がまだセットアップして、あなたはあなたにしている設定をリモートリゾルバを照会する機会を持っていないされていません。接続設定が完了しない状況でOpenVPNクライアントを起動すると、リゾルバーが長期間機能しない可能性のある状態になります。詳細については、OpenVPN manページの「スクリプトの実行順序」セクションを参照してください。
the-wabbit 2014

いくつかのテストを行ったところ、「初期化シーケンスが完了しました」ではなく、「初期化シーケンスが完了した」ときにupスクリプトが呼び出されました。Btwは男性で「ルートダウン」を見つけることができません。
リングØ14年

1

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

私は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 &

フィードバックはありがたいです。


-2

echo "nameserver = wxyz"> /etc/resolv.conf
echo "nameserver = 127.0.0.1" >> /etc/resolv.conf


2
これは不正確に見えます(DNS検索パスとVPNネームサーバーの永続性について考えてください)が、彼にこれをどこに配置してほしいかについても不明確です。
Falcon Momot 2014

「nameserver」とIPの間にスペースが必要です。
lorenzog
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.