附註:
- 此教學課程需要存取 Oracle Cloud。若要註冊免費帳戶,請參閱 Oracle Cloud Infrastructure Free Tier 入門。
- 它使用 Oracle Cloud Infrastructure 證明資料、租用戶及區間的範例值。完成實驗室時,請將這些值取代為您雲端環境特定的值。
使用 DNS 防火牆保護您的 Oracle Cloud Infrastructure 內部網路
簡介
您可以控制虛擬機器 (VM) 執行處理正在做什麼,以控制其行為。在大多數情況下,網域名稱系統 (DNS) 查詢會被遺忘且不受控制或受到監控,使得洩漏的機器能夠連線到指令和控制 (C2) 伺服器並下載惡意軟體的方式保持開啟。如果能夠控制和封鎖這些對 C2 伺服器和其他類型惡意伺服器的輸出查詢,會為您的網路增加一層安全,並且避免您的 VM 和網路遭到進一步危害。
目標
- 使用 Oracle Cloud Infrastructure (OCI) 專用 DNS 服務,透過設定 DNS 防火牆並新增日誌記錄功能,讓您的內部 OCI 網路免於遭受惡意外送 DNS 查詢的惡意外送 DNS 查詢,以便更好地控制和檢視執行處理的 DNS 查詢。
必要條件
-
存取 OCI 租用戶。
-
DNS 基本知識。
-
虛擬雲端網路 (VCN)。
組態:根據預設,每個 VCN 都使用自己的 DNS 解析器建立,如果您注意 Linux 機器上的組態,它們就會以下列內容在
/etc/resolv.conf
檔案中設定 (Oracle Linux 9 範例):[opc@linu-lab ~]$ cat /etc/resolv.conf ... nameserver 169.254.169.254
OCI 網路中的「自動專用 IP 位址 (APIPA)」位址
169.254.169.254
用於數項服務 (其中包括 DNS 解析器)。 -
任何 DNS 防火牆提供者的帳戶 (選擇性)。
作業 1:在 OCI 主控台上尋找 DNS 解析器
請確定您已經建立 VCN,然後按一下 VCN 名稱。在虛擬雲端網路詳細資訊頁面中,按一下 DNS 解析器。
作業 2:設定轉送端點
-
在資源底下,按一下端點和建立端點。
-
在建立端點頁面中,輸入下列資訊,然後按一下建立端點。
- 名稱: 輸入名稱。
- 子網路:選取您要作為轉送器端點的子網路。
- 端點類型:選取轉寄。
這需要幾分鐘的時間,完成後,您就會建立 DNS 轉送器。在我們的 DNS 防火牆案例中,這可讓我們設定將想要的查詢重新導向。
DNS 解析器會依照解析執行處理查詢的順序排列:
首先,它會檢查所有附加的專用檢視,然後解析器規則,最後會使用 Oracle 自己的公用網際網路解析器來解析主機名稱。有關詳細資訊,請參閱組態與解析。
在下一個步驟中,我們想要將所有非本機查詢 (不在任何專用檢視中) 分離,然後將它們傳送到 DNS 防火牆服務,或是公司管理的其他 DNS 伺服器來控制查詢。
您可以選擇免費服務 (例如 OpenDNS、Quad9、ControlD 及其他許多服務),或選擇具有更多控制權和功能的付費服務,例如 Cisco Umbrella、ControlD、NextDNS、InfoBlox 等。
備註:我們沒有與任務 3 中提及的 DNS 提供者連線。由於簡單、易用且組態的緣故,它們被用作範例。其他許多廠商都提供類似的服務,請找出最符合您需求的供應商。
作業 3:建立解析器規則
-
使用免費 DNS 防火牆服務
請記住,解析器會依規則的順序來評估規則,並在第一次符合時停止規則。請確定如果您的內部網域有其他規則,我們會根據此規定,將所有其他查詢重新導向至我們的 DNS 防火牆。
在本教學課程中,我們使用 Quad9 服務,這是非常容易使用的免費服務,基本上不會設定組態。其他免費服務 (例如 ControlD) 可讓您設定要封鎖的數種查詢類別。
-
在資源中,按一下規則和管理規則。
-
在管理規則頁面中,輸入下列資訊。
-
規則條件:選取無,這會建立全部相符從屬端,表示未在專用視觀表上解析或先前規則解析的所有查詢都將轉送至解析器轉送器,而且不會由 OCI Internet 公用解析器解析。
-
來源點:選取在「工作 2」中建立的轉送器端點。
-
目的地 IP 位址:我們使用 Quad9 DNS 伺服器
9.9.9.9
。
-
-
按一下儲存變更,然後等待數分鐘的時間更新解析器。
您的所有執行處理查詢都會傳送至 Quad9 DNS 防火牆服務,如果部分執行處理嘗試連線至惡意 IP,則會被封鎖。
或
-
-
使用付費 DNS 防火牆服務
如果您需要更多控制、功能和記錄,則免費服務可能不是您個案的解決方案。付費服務比免費服務提供更多的控制和功能,而且您可能可以偵測執行個體,在不應該對主機名稱進行可疑查詢。
在本教學課程中,我們將使用 NextDNS,另外還有幾個步驟可以讓它正常運作。
首先,您需要一個帳戶,NextDNS 提供一個每月最多 300K 查詢的免費層,這個查詢應該要夠多才能測試服務。帳戶登入後,請為您的 VCN 建立新的設定檔。
-
按一下新建,然後輸入名稱。
-
按一下設定值,然後選取要儲存日誌的區域,您可以選擇美國、歐洲或瑞士。
-
按一下安全性,並使用饋送和更多選項來選取如何透過 AI 篩選和封鎖惡意 IP。
-
按一下隱私權,並新增已知的惡意 IP、追蹤器、廣告伺服器等清單。
-
您也可以在 DenyList 和 AllowList 中建立拒絕和允許清單。
此服務的最佳部分是日誌記錄和分析功能。這使我們能夠在筆記型電腦上找到瀏覽器擴充功能,為非常奇怪的主機名稱進行數十萬次的查詢,進而移除擴充功能。
-
現在,按一下設定,我們可以看到有不同的端點:IPv4、IPv6、DoT (DNS over TLS) 和 DOH (DNS over HTTP)。
-
在本教學課程中,我們將使用 IPv4,且我們的解析器具有特定的 IP,因此我們只需要連結我們的 IP 位址,讓 NextDNS 知道查詢來自何處,以便能夠將它們記錄在您的設定檔中。
因此,我們需要登入可存取網際網路的其中一個實例 (透過 NAT),並執行下列指令以將 IP 連結至設定檔。
[opc@linux-lab ~]$ curl https://link-ip.nextdns.io/d34ff7/fd11c0xxxxx67cab 158.101.204.149[opc@linux-lab ~]$
按一下顯示進階選項、連結的 IP ,然後取得您設定檔的正確連結。
此命令檔會傳回 OCI DNS 解析器用於進行所有查詢的 OCI NAT 閘道 IP。
我們只需要在解析器規則中進行最後一次變更,即可指向 NextDNS 解析器的 IPv4 IP。
-
在 VCN 解析器頁面中,按一下規則並刪除先前新增的規則,然後建立一個指向 IP
45.90.28.43
的新規則。在此變更中更新 OCI DNS 解析器之後,對此 VCN 進行 DNS 查詢的所有內部執行處理都將使用 NextDNS 防火牆服務。
建立拒絕清單
讓我們建立拒絕清單並檢查是否正常運作。移至 NextDNS 主控台,選取已建立的設定檔,然後按一下 DenyList 。新增
malicious.site
網域,然後按一下 Enter 。在內部實例中,嘗試解析此網域的 IP。
[opc@linux-lab ~]$ dig +short A malicious.site 0.0.0.0
正如預期,查詢未解析為任何 IP,且傳回
0.0.0.0
,在此查詢頂端已記錄。分析頁籤會開始顯示針對此設定檔進行之所有查詢的相關資訊。從現在開始,由 VCN 內部執行處理進行的所有查詢,都將使用解析器規則將查詢轉送至 DNS 防火牆。
-
附註:
所有這些提供者都具有任一傳播網路和高度彈性且可擴展的架構,這應該維持伺服器失敗,但如果您想要增加自己架構的彈性,就應該在 OCI 中實行網路負載平衡器,作為解析器規則的轉送者,並使用 DNS 提供者指定的數個 IP 作為網路負載平衡器後端。如果其中一個 DNS 提供者的 IP 停止運作 (這非常罕見),網路負載平衡器會將流量切換至另一個 IP。
請記住,部署專用 DNS 端點轉送器的子網路安全清單必須允許連線連接埠「使用者資料包協定 (UDP)」和「傳輸控制協定 (TCP)」連接埠 53,才能接收 DNS 查詢。
此子網路必須透過 NAT 閘道具備網際網路連線。請確定安全性清單與發送表都已正確配置為允許。
相關連結
認可
- 作者 - Carlos Jorge Santos (OCI 雲端工程師 - 網路網域專家)
其他學習資源
探索 docs.oracle.com/learn 上的其他實驗室,或存取 Oracle Learning YouTube 頻道上的更多免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。
如需產品文件,請造訪 Oracle Help Center 。
Protect your Oracle Cloud Infrastructure Internal Network using a DNS Firewall
G16363-01
September 2024