systemd-resolved
経由でDNS over TLSを有効にしようとしました。 /etc/systemd/resolved.conf
を次のように変更しました:
[Resolve]
DNS=1.1.1.1
#FallbackDNS=
Domains=~.
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
DNSOverTLS=opportunistic
#Cache=yes
#DNSStubListener=yes
ネットワークを監視して(tcpdumpで)、結果の動作が意図したものであったかどうかを確認しているときに、ターゲットサーバーとのTLSセッションが確立されているようです。ただし、サーバーは接続を閉じます。 1.1.1.1、8.8.8.8などでも同じ結果が得られます。
これを修正する方法に関するアイデアはありますか?
PS:systemd-resolved
は、従来のDNSで並列解決を実行します(上記の「ドメイン」の設定にもかかわらず)。しかし、この投稿に対する私の主な質問は、TLSの何が問題になっているのかということです。
私の経験に基づくと、Ubuntu 18.04以降(U19など)では上記の方法では機能しません。
Ubuntu 18+はNetworkManagerと並行してNetplanを使用しているため、物事は大幅に変更されました。疎。
snapはさらに変更をもたらす可能性があります。追加のresolve.confファイルを確立します。ただし、以下は実際に機能しました(/ w良好なパフォーマンス)。
Netplanの詳細については、 こちら をご覧ください。
成功したDNS-over-TLSの機能(works4me):
1./ etc/systemd/resolved.confでのみ、DNSOverTLS =を
DNSOverTLS=opportunistic
他のオプションはありません(ここの説明を参照: DNS over TLS
46.182.19.48それぞれ。 2a02:2970:1002 :: 18
どうして?プライバシー!
IPv4設定/ DNSサーバーとv6の下の接続のGUIフィールドにDNSサーバーアドレスをそれぞれ入力します。
エントリは/etc/resolv.conf
には表示されません!!どちらが正しい。代わりに、ネームサーバー127.0.0.53が表示されます
これは新しいUbuntuです。趣味の管理者には適していません。
適切なDNSサーバーの設定は、通常の形式で/etc/resolv.conf
で直接行うことができます。127.0.0.53などを削除します。
問題:UbuntuのNetwork-Managerによって上書きされる!
対処法:真のルート(!)chattrファイル/etc/resolv.conf
chattr +i /etc/resolv.conf
これはブルートフォースであり、解決による自動DNSキャッシングを無効にする場合があります。
Arch documentation へのクレジット
ただし、正常に動作します;-)が、真のルートとして手動で保守する必要があります
ヒント:
resolv.conf
をリンクにすることをお勧めします。これは、解決によって適切に機能するために必要です。 Sudo-rootが古いファイルを移動すると、
Sudo ln -s /run/resolvconf/resolv.conf /etc/resolv.conf
私はこの方法は好きではありませんが、本質的に適切に機能しています。
。
次に再起動します。またはネットワークを再起動します。
。
#確認方法
Systemd-resolvedによって実際に使用されているDNSを確認します。
resolvectl status
DNSがresolvectlで解決するかどうかを確認します。
resolvectl query archlinux.org
(いくつかの例を試してください)
実際に使用されているDNSを確認し、VPNのリークを確認します。
。 2. Wiresharkを起動し、「ポート53」をフィルタリングして、Webトラフィックを作成します。
これにより、ポート53の接続が表示されなくなります。次に、ポート853をフィルタリングします。
重要:すべてのトラフィックがポート853を使用し、トラフィックが53を使用しない場合は、正常に実行されました!
Wiresharkの例 here 。
#備考:ずんぐりした。 stubbyはUbuntuにうまく統合されていませんが、NetworkManagerを使用しても機能します。正常に実行するためのマニュアルが1つあります。 Ubuntu LinuxでDNS-over-TLSを使用する方法 問題:パフォーマンスが少し面倒でした。何かがおかしいので原因はわかりませんでした。
/etc/systemd/resolved.confでDNSSEC = yesを有効にできるようになりました。
重要:
このソリューションはプライバシーを大幅に改善します。
しかし、個人の完全性がデータのプライバシーとセキュリティに依存している場合は十分ではありません!!解決された説明の警告を参照してください。日和見モードを使用するだけでは不十分です。次に、Tails Linuxに気をつけてください。世界中のすべての政治犯への悲しい挨拶。
最近、ホームネットワークにDNS over TLSを実装しました(AsusWRT-Merlin
搭載ルーターを使用)。 Linuxワークステーションとサーバー(クラウド内-誰か他のコンピューターのことです)にDoTを実装してホームネットワークの外にDoTを実装する方法を模索しているときに、DNSプライバシープロジェクトで推奨されているsystemd-resolved
を見つけました。
@ opinion-no9 はUbuntu 18.04固有のソリューション(LTSに同梱されているsystemdバージョンによって制限されます)を提供しましたが、より一般的で上流に近いソリューションを共有したいと思います。
systemd
でのDNS over TLSサポートのタイムラインed25519
キーと署名)systemd-resolved
がopportunistic
DNS-over-TLSをサポートするようになりました、デフォルトでOff
systemd-resolved
が新しいstrict
DNS-over-TLSモードのサポートを取得Oh NO!Ubuntu 18.04 LTSはsystemd 237を出荷します...
したがって、比較的上流に近いカーネル、systemd、glibc、ツールチェーン、GNU utilsなど)を備えた一般的なLinuxディストリビューションの場合
/etc/systemd/resolved.conf
を編集[Resolve]
DNS=1.1.1.1 1.0.0.1 8.8.8.8
#FallbackDNS=1.1.1.1 9.9.9.10 8.8.8.8 2606:4700:4700::1111 2620:fe::10 2001:4860:4860::8888
#Domains=
#LLMNR=yes
#MulticastDNS=yes
#DNSSEC=allow-downgrade
#DNSOverTLS=opportunistic
DNSSEC=yes
DNSOverTLS=yes
#Cache=yes
#DNSStubListener=yes
#ReadEtcHosts=yes
systemd-resolved
が有効であると想定し、サービスを再起動しますsystemctl restart systemd-resolved
systemd-resolved
は、ローカルループバックインターフェイスのIPアドレス127.0.0.53にローカルDNSスタブリスナーを提供するため、DNS over TLS対応のスタブリゾルバーを使用するには、何らかの方法で/etc/resolv.conf
を管理し、127.0.0.53
がネームサーバーとして使用されていることを確認する必要があります。
注:systemdは、従来のLinuxプログラムとの互換性のために
/run/systemd/resolve/stub-resolv.conf
を維持しています。このファイルにシンボリックリンクするだけです;-)
ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
注:Arch Linuxの場合、openresolvconf
をsystemd-resolvconf
に置き換える必要があります。
できました。
DNSクエリを生成し、TCPポート853経由で指定された上流DNSサーバーへの接続を確認します。次の例では、Cloudflareの1.1.1.1
を明示的に使用しました。
root@netbook:/etc# uname -a
Linux netbook 5.4.5-Arch1-1 #1 SMP PREEMPT Wed, 18 Dec 2019 19:48:51 +0000 x86_64 GNU/Linux
root@netbook:~# kdig -d github.com
;; DEBUG: Querying for owner(github.com.), class(1), type(1), server(127.0.0.53), port(53), protocol(UDP)
;; ->>HEADER<<- opcode: QUERY; status: NOERROR; id: 55366
;; Flags: qr rd ra; QUERY: 1; ANSWER: 1; AUTHORITY: 0; ADDITIONAL: 0
;; QUESTION SECTION:
;; github.com. IN A
;; ANSWER SECTION:
github.com. 58 IN A 13.236.229.21
;; Received 44 B
;; Time 2019-12-21 22:55:13 AEDT
;; From 127.0.0.53@53(UDP) in 58.0 ms
root@netbook:~# ss -tuna | grep :853
tcp ESTAB 0 0 192.168.1.150:50504 1.1.1.1:853
tcp ESTAB 0 0 192.168.1.150:50506 1.1.1.1:853
または、シンプルでラフになりたい場合は、tcpdump
を使用します;-)
tcpdump -tttt -nn -XX -vv -i <interface> dst 1.1.1.1 and port 853
最後に重要なことですが、これはLinuxホストでDNS over TLSを有効にするための一般的なガイドであり、ディストリビューションやデスクトップ環境に固有のものではありません(NetworkManagerや代替案に触れたことさえないため、;-)。さまざまなディストリビューションやさまざまなDE/WMで調整が必要になる場合があります。