本教程將向您展示如何使用 Linux Mint 保護 DNS 隱私 基於 TLS 的 DNS..使用 粗短但首先,讓我們談談 DNS 不安全的原因。
DNS 漏洞
DNS 不安全,因為默認情況下 DNS 查詢未加密。它們通過網絡以純文本形式發送,並可能被中間實體濫用。例如,中國的防火牆(GFW) 用來 DNS緩存中毒 中國互聯網審查制度。 (這些也使用了本文範圍之外的其他方法。)
GFW 會檢查所有發送到中國境外 DNS 服務器的 DNS 查詢。明文 DNS 協議基於 UDP(一種無連接協議),允許 GFW 欺騙客戶端和服務器 IP。 當 GFW 在阻止列表中找到該域名時,它會修改 DNS 響應。
例如,如果中國互聯網用戶想要訪問 google.com,GFW 將返回用戶的 DNS 解析器一個位於中國的 IP 地址,而不是 Google 的實際 IP 地址。 DNS 解析器向用戶的計算機返回一個虛假的 IP 地址,因此用戶無法訪問 google.com。
什麼是基於 TLS 的 DNS? 您如何保護您的 DNS 隱私?
DNS over TLS 意味著 DNS 查詢通過使用 TLS(傳輸層安全)加密的安全連接發送。這與用於加密 HTTP 流量的技術相同,因此第三方無法看到 DNS 查詢。 結合 HTTPS 站點和加密的服務器名稱指示 (SNI),您的 Web 瀏覽歷史將完全免受 ISP 間諜的侵害。
粗短 是一個開源的 DNS 存根解析器。存根解析器是最終用戶計算機上的小型 DNS 客戶端,它接收來自 Firefox 等應用程序的 DNS 請求,並將請求轉發到遞歸解析器,例如 1.1.1.1 和 8.8.8.8。 Stubby 的特別之處在於它支持基於 TLS 的 DNS。默認情況下,它只發送加密的 DNS 查詢。
注意:本教程僅適用於 Linux Mint 19,包括 19.1 和 19.2。 如果您使用的是 Linux Mint 18,請升級您的系統。
如何使用 Stubby 在 Linux Mint 上配置 DNS over TLS
Stubby 包含在 LinuxMint19 軟件存儲庫中。打開終端窗口並運行以下命令進行安裝。
sudo apt install stubby
安裝後,stubby會自動在後台運行。您可以通過以下方式檢查狀態。
systemctl status stubby
提示:如果上述命令沒有立即完成,可以按 聽 結束命令並重新獲得終端控制權的鍵。
Stubby 在 TCP 和 UDP 端口 53 上偵聽 localhost (127.0.0.1)。您可以通過運行以下命令來檢查這一點:
sudo netstat -lnptu | grep stubby
提供的默認存根解析器 systemd-resolved
在 127.0.0.53 監聽 TCP 和 UDP 端口 53。
sudo netstat -lnptu | grep systemd-resolve
現在厚實的已經安裝並運行了,您需要指示您的 Linux Mint 系統使用它。點擊 網絡管理員 點擊桌面右下角的圖標[ネットワーク設定。
歯車のアイコンをクリックして、ネットワークを構成します。
選ぶ IPv4 タブで閉じます 自動 DNSで。これにより、LinuxMintシステムがルーターからDNSサーバーアドレスを取得できなくなります。次に、Stubbyのアドレスを指定します(127.0.0.1) 中身 サーバ テキストフィールド。クリック 応用 ボタンを押してこれを閉じます 通信網 窓。
次に、ターミナルで次のコマンドを実行してNetworkManagerを再起動し、上記の変更を有効にします。
sudo systemctl restart NetworkManager
ルーターに再接続したら、をクリックします ネットワーク管理者 アイコンをもう一度選択して選択します ネットワーク設定。LinuxMintシステムが現在使用していることがわかります 127.0.0.1 (スタビー)DNSサーバーとして。
コマンドラインからStubbyに切り替える方法
ずんぐりしたものを使用するようにLinuxMintシステムを構成することもできます システム分析 コマンドラインから。このコマンドを使用して、デフォルトのDNSサーバーを表示できます。
systemd-resolve --status
Stubbyをデフォルトのサーバーとして設定するには、Nanoなどのコマンドラインテキストエディターでsystemdで解析された構成ファイルを開きます。
sudo nano /etc/systemd/resolved.conf
矢印キーを使用して上下に移動します。中身 [Resolve]
將以下行添加到該部分以使 Stubby 在您的系統上可用。
DNS=127.0.0.1
保存並關閉文件。 (要在 Nano 文本編輯器中保存文件,請按 Ctrl+O
然後按 Enter
確認。按退出 Ctrl+X
.. )
然後重啟systemd解析的服務。
sudo systemctl restart systemd-resolved
然後運行以下命令查看默認的 DNS 服務器:
systemd-resolve --status
您可以看到 127.0.0.1 被設置為全局部分中的 DNS 服務器。
如何檢查 DNS 流量是否已加密
您可以使用 WireShark 監控 DNS 流量。通過在終端中運行以下命令,從 Linux Mint 存儲庫安裝 WireShark:
sudo apt install wireshark
如果您看到消息“非 root 用戶可以捕獲數據包嗎?”,請使用箭頭鍵。[はい]選擇並按 Enter。
安裝完成後,運行以下命令將用戶賬號加入wireshark組,這樣就可以抓包了。交換 your-username
請使用實際的用戶名。
sudo adduser your-username wireshark
註銷然後重新登錄以使更改生效。然後從應用程序菜單中打開 WireShark。
在 WireShark 中選擇網絡接口。例如,我的以太網接口名稱是 enp0s3。 如果您使用的是 Wi-Fi,網絡接口名稱將類似於 wlp0s3。然後輸入 port 853
作為捕獲過濾器。這允許 WireShark 僅捕獲端口 853 上的流量,該端口是 DNS overTLS 使用的端口。
按 Enter 開始捕獲流量。然後在終端窗口中運行以下命令,並使用以下命令查詢域名: dig
公共事業。例如,您可以在 A 記錄中查詢您的域名。
dig A linuxbabe.com
現在您可以在 WireShark 中看到捕獲的 DNS 流量。如您所見,我的 DNS 查詢發送到 185.49.141.37
, 145.100.185.15
還 145.100.185.16
, Stubby 配置文件中定義的三個默認 DNS 解析器。通過 TCP 建立連接並使用 TLS 加密。這正是我想要的。點擊左上角的紅色按鈕,停止抓流量。
如果 DNS 查詢未加密發送,則計算機會在端口 53 上連接到 DNS 服務器。可以再次抓包 port 53
但是,作為捕獲過濾器,WireShark 不會顯示數據包。這意味著 Stubby 正在加密 DNS 查詢。
包起來
我們希望本教程將幫助您使用 DNS overTLS 在 Linux Mint 中保護您的 DNS 隱私。與往常一樣,如果您覺得本文有用,請訂閱我們的免費新聞通訊以獲取更多提示和技巧。當心。