大眾每日接觸互聯網上數以億計的網站和服務,DNS 服務就如一本電話簿,讓電腦查閱網址的 網絡號碼。如果這本電話簿上的號碼被篡改,可想以知會發生不同罪行,例如各種網絡詐騙。所以大眾需留意並使用一些更可信賴的 DNS 服務來保障自己,本文會提供一些方法給你參考。
在互聯網上,你和各系統都獲派一個網絡號碼,就是 IP 地址(Internet Protocol Address),同時亦獲得 DNS(Domain Name System)系統號碼。當你要求連接去一個網站時,電腦先查過 DNS,然後經過一眾 routers 派到目的地的網站系統去處理和回應。
假如不法分子、黑客、政權篡改 DNS 系統上的資料(即 DNS tampering),侵害國際間大眾使用互聯網的自由權利,同時你的重要個人資料有機會被盜竊。
我建議大家可考慮兩個方法:
- 改用國際科技大公司提供的公眾 DNS 系統。
- 使用自己建立的 DNS 系統。
方法一:使用國際科技大公司提供的公眾 DNS 系統
現在大多數住它和公司用家上網都是一插即用,當用家電腦或Router插線連接互聯網供應商的網絡(即是WAN)時,預設自動以 DHCP 方式自動取得由互聯網供應商系統分派的網絡資料,包括用家的 IP 地址、DNS 系統的 IP 地址等,大多數情況下,互聯網供應商負管理這些地址和系統。
有些技術用家會修改自家 router 的 WAN 網絡設定,例如改用 Google 或 Cloudflare 提供的公眾 DNS 系統。
Google: 8.8.8.8 和 8.8.4.4
CloudFlare: 1.1.1.1
如果你擔心互聯網供應商的 DNS 系統不夠安全、或被篡改,你有自由去自行動手改動自己的router和電腦的DNS 設定,改用上述 Google 或 CloudFlare 的 DNS 系統,這是最簡單而免費的方法。
方法二:使用自己建立的 DNS 系統。
如果你不滿足於使用互聯網供應商(ISP)和國際科技大公司提供的 DNS 系統,你可以自家建立一台的 DNS 系統。大多數互聯網上的系統包括 DNS 系統都採用 Linux 操作系統(OS),也即是 Android 手機和網絡儲存裝置(NAS)的 OS。我建議用家亦可考慮使用 Linux 來建立自己的 DNS 系統。
為何自建 DNS 系統可以減低 DNS 被篡改的機會?我先深入一些介紹 DNS 的構造。
DNS 負責處理關於域名(Domain Name)的服務,你所使用的 DNS 系統稱為 DNS 快取系統(caching system),DNS 快取系統會透過 ICANN 機構的 DNS 根系統(root system)取得各頂級域名(Top-Level Domain 簡稱 TLD)的 DNS 系統號碼。例如查詢 .com 便會傳回 Verisign 的相關 DNS 系統號碼、.org 就傳回 PIR (由互聯網協會創立)的相關 DNS 系統號碼、 .hk 就傳回 HKDNR (HKIRC擁有)的相關 DNS 系統號碼等等。
DNS 快取系統再向各 TLD 的 DNS 系統查詢該域名,便得到查詢域名的 DNS 系統號碼。再由存放該域名的 DNS 系統傳回查詢的網址的 IP 地址。例如 www.linuxharbour.com,你使用的 DNS 快取系統先向 DNS 根系統(root system)取得 .com 的 TLD DNS 系統號碼,然後向 .com 的 DNS 系統取得 linuxharbour.com 的 DNS 系統號碼,最後 DNS 快取系統向 Linux Harbour 的 DNS 系統查詢 www.linuxharbour.com 的 IP 地址。
上述就是互聯網供應商和國際科技大公司的公眾 DNS 系統應該做的事。如果用家自建 DNS 系統取代互聯網供應商提供的 DNS 系統,就由自家系統跟據 DNS 根系統,直接向 TLD 和存放該域名的 DNS 系統取得用家電腦、手機、平板自動查詢域名的網絡地址。
了解自建 DNS 系統的好處後,如果決定自己安裝 DNS 系統,可以安裝在那呢?
- 雲端:在 AWS、Digital Ocean、Linode 等雲端服務商建立虛擬 Linux 系統,多數每月 5 美金就夠用。
- 實體機器:可以購買網絡儲存裝置、電腦、伺服器或 Raspberry Pi 單機板電腦(35美金起)
如果決定裝在網絡儲存裝置,大多數都採用建基於 Linux 的操作系統,例如 Synology 有 DNS Server Package。
如果決定在雲端或實體電腦/伺服器,可以安裝其中一套 Linux 軟件系統 – Ubuntu,Ubuntu 和其它 Linux 都有一套名為 bind9 的軟件可作你的簡單 DNS 快取系統。 而 Raspberry Pi 也有 Raspberry Pi OS (前身名為 Raspbian) 都是一套 Linux 系統。
用家可以選擇 Ubuntu 20.04 LTS 版本,它是一個長支援版本到 2030 年。
$ apt update; apt upgrade -y
$ apt install bind9 -y
$ systemctl disable systemd-resolved
$ systemctl stop systemd-resolved
$ rm /etc/resolv.conf
$ echo nameserver 127.0.0.1 | tee /etc/resolv.conf
使用 nano 編輯器修改 BIND9 設定檔 /etc/bind/named.conf.options
$ nano /etc/bind/named.conf.options
在 options: { … } 內﹐加入一行 allow-query 容許任何主機查詢域名:
allow-query { any; };
Ctrl-X 儲存和離開 nano 編輯器。
然後重新執行 BIND9 就完成。
$ /etc/init.d/named restart
這讓你就可以修改你的電腦和 router 的 DNS,輸入你自家建立的 DNS 系統 IP 地址就可以了。
如果喜歡本文章,可以付費訂閱我的 Patreon。
Patreon: https://www.patreon.com/sammyfung
Photo Credit: Б.Өлзий licensed in CC BY-SA