通過在 Linux Mint 上配置 DNS over TLS 來保護您的 DNS 隱私


本教程向您展示如何在 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(傳輸層安全)加密的安全連接發送的,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,請升級您的系統。

如何在 Linux Mint 上使用 Stubby 配置基於 TLS 的 DNS

Stubby 包含在 Linux Mint 19 軟件存儲庫中。打開終端窗口並運行以下命令進行安裝:

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 存根解析器

現在 stubby 已經安裝並運行了,我們需要告訴 Linux Mint 系統使用它。點擊 網絡管理員 點擊桌面右下角的圖標,然後 網絡設置.

基於 TLS 的 Linux Mint DNS

單擊齒輪圖標以配置您的網絡。

配置 linux mint dns 服務器

選擇 IPv4 選項卡關閉 自動的 在 DNS 中。這將阻止您的 Linux Mint 系統從您的路由器獲取 DNS 服務器地址。接下來,指定 Stubby 地址 (127.0.0.1) 裡面 服務器 文本域。點擊 應用 按下按鈕關閉 通訊網絡 窗戶。

基於 TLS 的 DNS Linux Mint

然後通過在終端中運行以下命令重新啟動 NetworkManager 以使上述更改生效:

sudo systemctl restart NetworkManager

重新連接路由器後, 網絡管理員 再次選擇圖標 網絡設置可以看到 Linux Mint 系統當前正在使用 . 127.0.0.1 作為(短粗的)DNS 服務器。

安裝和配置 linux mint stubby

如何從命令行切換到 Stubby

您還可以將 Linux Mint 系統配置為使用 stubby。 系統分析 從命令行。您可以使用此命令查看默認的 DNS 服務器。

systemd-resolve --status

systemd 解析 DNS 服務器

要將 Stubby 設置為默認服務器,請在命令行文本編輯器(例如 Nano)中打開 systemd 解析的配置文件。

sudo nano /etc/systemd/resolved.conf

使用箭頭鍵上下移動。裡面 [Resolve] 將以下行添加到該部分以使系統使用 Stubby。

DNS=127.0.0.1

systemd-resolve 更改 DNS 服務器

保存並關閉文件。 (要將文件保存在 Nano 文本編輯器中, Ctrl+OEnter 確認。按退出 Ctrl+X.)

然後重啟systemd解析的服務。

sudo systemctl restart systemd-resolved

通過運行以下命令檢查默認 DNS 服務器:

systemd-resolve --status

您可以看到 127.0.0.1 在全局部分設置為 DNS 服務器。

systemd-resolve 全球 DNS 服務器

如何檢查 DNS 流量是否已加密

WireShark 可用於監控 DNS 流量。通過在終端中運行以下命令,從 Linux Mint 存儲庫安裝 WireShark:

sudo apt install wireshark

當詢問“非 root 用戶可以捕獲數據包嗎?”時,使用箭頭鍵選擇是,然後按 Enter。

Linux mint Wireshark 捕獲流量

安裝後,運行以下命令將您的用戶帳戶添加到 Wireshark 組,以便您可以捕獲數據包。交換 your-username 請使用您的實際用戶名。

sudo adduser your-username wireshark

註銷並重新登錄以使更改生效。然後從“應用程序”菜單中打開 WireShark。

Wireshark Linux Mint

在 WireShark 中選擇一個網絡接口。例如,我的以太網接口名稱是 enp0s3。 如果您使用的是 Wi-Fi,則網絡接口名稱將類似於 wlp0s3。然後輸入 port 853 作為捕獲過濾器。這將導致 WireShark 僅捕獲端口 853 上的流量。這是 DNS over TLS 使用的端口。

Linux mint Wireshare 通過 TLS 流量捕獲 DNS

按 Enter 開始捕獲流量。然後在終端窗口中運行以下命令並使用以下命令查詢域名: dig 公共事業。例如,您可以查詢您的域名的 A 記錄。

dig A linuxbabe.com

現在您可以看到 WireShark 捕獲的 DNS 流量。如您所見,我的 DNS 查詢轉到 185.49.141.37, 145.100.185.15145.100.185.16,在 stubby 配置文件中定義的三個默認 DNS 解析器。通過 TCP 建立連接並使用 TLS 加密。這正是我想要的。單擊左上角的紅色按鈕停止捕獲流量。

Linux mint DNS over TLS stubby

當 DNS 查詢未加密發送時,您的計算機會在端口 53 上連接到 DNS 服務器。您可以再次捕獲數據包 port 53 作為捕獲過濾器。但是,WireShark 不顯示任何數據包。這意味著 stubby 正在加密 DNS 查詢。

包起來

我們希望本教程幫助您在 Linux Mint 上使用 DNS over TLS 保護您的 DNS 隱私。與往常一樣,如果您發現本文對您有幫助,請註冊我們的免費時事通訊以獲取提示和技巧。當心。