DNS外でブロックし、DNSリークを修正しましたubuntu 18.04


10

私のVPNの下でDNSリークテストを使用すると、リークが発生していることがわかりました。私はNetworkManagerを介してVPNをセットアップしましたが、リークを除いて正しく動作します。

最初block-outside-vpnに、構成ファイルに追加しようとしましたが、その下/etc/NetworkManager/system-connectionsでは同じ形式に従っていません。DNSリーク用に適切に作成する方法についてのドキュメントが見つかりませんでした。

また、Ubuntu 18.04 resolv.confを使用しても以前のように機能しません。他のすべての回答はそれに基づいています。

手短に言えば、Network Manager構成ファイルまたはGUIを使用して外部DNS(リーク)をブロックする方法は?


block-outside-vpn通常は、Windows OpenVPN接続オプションのみです。DNSの「漏洩」を修正するには、VPNの反対側にのみ存在する特定のDNSサーバーを使用します。DNSリークテストの結果はどうでしたか?(関連あり)
トーマスワード

回答:


3

の使用をお勧めしdnscryptます。

まずインストールします:

sudo apt install dnscrypt-proxy

デフォルトでは、127.0.2.1ポートをリッスンします53

127.0.2.1実行できるCLIを使用して、VPNまたはその他の接続を編集し、DNSサーバーとして設定します。

nmcli connection modify [CONNECTION-NAME] ipv4.dns 127.0.2.1

また、念のために、発信DNS要求をブロックします。

sudo ufw deny out 53

ファイアウォールが有効になっていることを確認してください:

sudo ufw enable

DNSリークテストに従って、私のDNSはまだリークしています。ufwが有効になっているときにVPNを無効にすると、インターネットが利用できなくなる(ブロックされたポート53)ことにも言及することが重要です。
ポベ

このコマンドを実行nmcli connection modify [CONNECTION-NAME] ipv4.ignore-auto-dns yesします。役立つかどうかを確認します。
Ravexina

3

Ubuntu 18.04でのDNSリークを修正するには、というファイルを編集します/etc/dhcp/dhclient.conf。マニュアルページによると、このファイルは「動的ホスト構成プロトコル、BOOTPプロトコルを使用して、またはこれらのプロトコルが失敗した場合に静的にアドレスを割り当てることにより、1つ以上のネットワークインターフェースを構成する手段を提供します。」

DNSリークの修正に関しては、このファイルを編集します。適切な権限でそれを開くと、次のようなコメント行が表示されます。

#prepend domain-name-servers 127.0.0.53;

この行のコメントを外して、domain-name-serverをOpenDNS:208.67.222.222などの別のサーバーに変更します。このOpenDNSアドレスを使用すると、この行は次のようになります。

prepend domain-name-servers 208.67.222.222;

ファイルを保存してシステムを再起動すると、Ubuntu 18.04でのDNSリークが修正されます。


または、GUIで接続を編集して同じ結果を得ることができます。接続の編集ウィンドウを開く=> IPv4 / IPv6設定、[メソッド]を[自動、アドレスのみ]に変更して、[DNSサーバー]を追加します。
GoodGuyNick 2018

GUIを介した@GoodGuyNickのメソッドが機能しませんでした。私は一日中この問題をググっており、「ドメイン名サーバーを追加する」トリックだけが機能しました。この答えをハレルヤ。私が試した他のすべて(DNSサーバーのGUIを含む)は上書きされ、再起動に耐えられませんでした。
害虫駆除、

3

browserleaks.comまたはdnsleaktest.comを確認することで示されるDNSリークがある場合 、

  1. VPN接続を遮断する

  2. 時間を無駄にしてしまった.confファイルの編集を元に戻そうとします。Ubuntuにはデフォルトで提供されているVPN構成のインポート機能がないため、さまざまな提案を数多く行ってきた場合は、新規インストールを行い、networkmanager-openvpn-gnomeもインストールしておくことをお勧めします。

  3. dnsmasqをインストールする

    sudo apt update
    sudo apt install dnsmasq  
    
  4. 解決済みを無効にする

    sudo systemctl disable systemd-resolved.service
    sudo systemctl stop systemd-resolved.service 
    
  5. / etc/resolv.confを削除し、新しいものを作成します。

    sudo rm /etc/resolv.conf
    sudo nano /etc/resolv.conf  
    
  6. 空の.confファイルに入力してください:

    nameserver 127.0.0.1`         that's all!
    
  7. Ctrl+ x を押してエディターを終了します。Enterキー yを押して保存し、を押しEnterて新しいresolv.confファイルを上書きします。

  8. NetworkManager.confファイルを編集します

    sudo nano /etc/NetworkManager/NetworkManager.conf 
    

    以下を追加します:

    dns=dnsmasq 
    

    行の下(矢印キーを使用して移動)、[main]、およびplugins = ifupdown、新しいファイルが追加されたこのファイルとまったく同じ。

    [main]
    plugins=ifupdown, keyfile
    dns=dnsmasq
    

    Ctrl+ xを押してエディターを終了します。Enter y を押して保存し、を押しEnterてファイルを上書きします。

  9. ターミナルから戻ってシステムを再起動し、dnsleakテストサイトで結果を確認します。

Ubuntu / Network Managerでのリークの解決策がよく研究され成功しているようであるAnonymous VPNに感謝します。彼らはうまくいき、私にとって他の解決策がうまくいかなかったとき、これらはうまくいきました。上記のソリューションは、Ubuntu 17.xおよび18.04 LTSで機能します。16.04 LTSに関する彼の他のソリューションを参照してください。


私はこのソリューションをVMでテストし、すべて動作しました。次に、メインマシンを試してみましたが、VPNからのDNSとDNSリークを確認しました。VM上nameserverから変更127.0.2.1する192.168.122.1と、私はVPNに接続したときにresolv.conf私は2つの参照nameserver行、と1 192.168.122.1のVPNのDNSで、その他のが、メインマシン上で、私は常に2つの行を参照してくださいsearch lan nameserver 127.0.1.1
GoodGuyNick 2018

ネットワークマネージャーなしでどうすればよいですか?/ etc / network / interfacesにDNSを置くだけですか?
Mehdi

1

私はここで私のために働く解決策を見つける前に、この正確な問題に2日間苦労してきました:https : //unix.stackexchange.com/a/470940

TL; DR

$ cd /etc/NetworkManager/system-connections

これは、Network Managerで作成された接続が保管される場所です。

$ sudo nmcli connection modify <vpn-connection-name> ipv4.dns-priority -42

接続構成ファイルを変更する簡単なコマンド。手動で行うこともできますが、この方法の方が簡単だと思います。

$ sudo service network-manager restart

変更をシステムに適用します。

基本的に上のリンクから貼り付けてコピーし、元の作者にクレジットします。

システムがnmcliを認識していない場合、またはNetwork Manager GUIを使用して接続を追加するとエラーがスローされる場合は、このリンクをお勧めします

さて、説明ではなく、コメントのほうが多いのです(私は無知です)。

resolv.conf、dnsmasq、dnscryptを含む多くのソリューションを試してみました。これらすべてが原因で、インターネットが完全にブロックされるか、VPN接続がオフになったときにブロックされました。dnsleaktest.comによると、それらのいずれもDNSリークを解決しませんでした。これらのいずれかが試みられた場合、望ましくない結果が生じた場合にそれらを元に戻すことができるように、途中の各ステップを追跡する必要があります。壊れたインターネットの時間を何度も修正するのに短い時間はかかりませんでした。これらの解決策が機能しないとは主張していませんが、どこかで間違いを犯した可能性があります。
しかし、私がリンクしたソリューションには、一般的なネットワーク設定を台無しにするのではなく、変更している1つの接続だけを台無しにするという非常に大きな利点があります。

次に、前に説明したように、block-outside-dnsはWindowsのみのソリューションであり、ubuntuシステムで何らかの認識されないオプションエラーをスローしました。

ovpn cliコマンドを使用しても、リークは解決されませんでした。

私が提供したリンクには、ubuntu 18.10で修正されたいくつかのバージョンの不整合に関する説明(ここ)が記載されています。それが本当なら、LTSユーザーは来年の4月のafaikを待たなければならないでしょう。

最後に、インターネット検閲のある国の居住者の場合、ローカルのispにトラフィックへのアクセスを許可すると、VPNに接続されているにもかかわらず検閲されたドメインがブロックされる可能性があるため、DNSリークが大きな問題になることを指摘しておきます。なので今後の中国訪問などで気をつけておきたいことです。

お役に立てれば。


0

update-systemd-resolved変更を加えないスクリプトを使用してみてください。resolv.conf代わりに、systemd-resolvedDBus APIを使用してサービスを使用します

gitから入手して、次の方法でインストールします。

git clone https://github.com/aghorler/update-systemd-resolved.git
cd update-systemd-resolved
make

次に編集nsswitch.conf

sudo nano /etc/nsswitch.conf

で始まる行を次のように変更hosts:します

hosts: files resolve dns myhostname

サービスを有効にし、自動的に実行されることを確認します。

sudo systemctl enable systemd-resolved.service
sudo systemctl start systemd-resolved.service

注:上記の手順を実行せず、ターミナルを使用しても問題がない場合、DNSリークはNetworkManagerを使用した場合にのみ発生します。私の経験では、openvpnをターミナルから実行しても発生しませんsudo openvpn --config config.ovpn


リークをブロックするconfig.ovpnの行は何ですか?その例はありますか?(上記の解決策は私にとってうまくいきませんでした)。
ポベ

0

私はオンラインで見つけることができるほぼすべての解決策を試して、DNSリークの問題を修正しました。Openvpnは問題なく起動しましたが、テストサイトに行ったときにリークしていることがわかりました。すべての救済策を試す喜びがなくなった後、私は私のwifiとイーサネットの設定に入り、ISPの代わりにopenvpnのDNSサーバーを使用し、それ以降はすべて順調でした。あちこちでIPアドレスを見たことがあると思いますが、ここでは、208.67.222.222と208.67.220.220です。


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