如何使用 iptables 防火牆保護你的網路免於駭客攻擊。
即便是被入侵偵測和隔離系統所保護的遠端網絡,駭客們也在尋找各種精巧的方法入侵。 IDS/IPS 不能停止或減少那些想要接管你的網路控制權的駭客攻擊。不恰當的配置允許攻擊者繞過所有部署的安全措施。
在這篇文章中,我將會解釋安全工程師或系統管理員該怎麼避免這些攻擊。
幾乎所有的 Linux 發行版都帶著一個內建的防火牆來保護運行在 Linux 主機上的進程和應用程式。大多數防火牆都依照 IDS/IPS 解決方案設計,這樣的設計的主要目的是偵測和避免惡意包取得網路的進入權。
Linux 防火牆通常有兩種介面:iptables 和 ipchains 程式(LCTT 譯註:在支援 systemd 的系統上,採用的是更新的介面 firewalld)。大多數人將這些介面稱作 iptables 防火牆或 ipchains 防火牆。這兩個介面都被設計成套件過濾器。 iptables 是有狀態防火牆,其基於先前的套件做出決定。 ipchains 不會基於先前的套件做出決定,它被設計為無狀態防火牆。
在這篇文章中,我們將會專注於核心 2.4 之後出現的 iptables 防火牆。
有了 iptables 防火牆,你可以建立策略或有序的規則集,規則集可以告訴核心該如何對待特定的封包。在核心中的是Netfilter 框架。 Netfilter 既是框架也是 iptables 防火牆的專案名稱。作為一個框架,Netfilter 允許 iptables 勾連被設計來操作封包的功能。概括地說,iptables 依靠 Netfilter 框架來構築諸如過濾資料包資料的功能。
每個 iptables 規則都被應用在一個表格中的鏈上。一個 iptables 鏈就是一個比較包中相似特徵的規則集合。而表格(例如 nat 或 mangle)則描述不同的功能目錄。例如, mangle 表用於修改套件資料。因此,特定的修改包資料的規則被應用到這裡;而過濾規則被應用到 filter 表,因為 filter 表過濾包資料。
iptables 規則有一個匹配集,以及一個諸如 Drop 或 Deny 的目標,這可以告訴 iptables 對一個包做什麼以符合規則。因此,沒有目標和匹配集,iptables 就不能有效地處理套件。如果一個包符合了一條規則,目標會指向一個將要採取的特定措施。另一方面,為了讓 iptables 處理,每個資料包必須匹配才能被處理。
現在我們已經知道 iptables 防火牆如何運作,讓我們著眼於如何使用 iptables 防火牆偵測並拒絕或丟棄欺騙地址。
身為一個安全工程師,在處理遠端的欺騙位址的時候,我採取的第一步是在核心開啟來源位址驗證。
來源位址驗證是一種核心層級的特性,這種特性會丟棄那些偽裝成來自你的網路的套件。這種特性使用反向路徑過濾器方法來檢查收到的包的來源位址是否可以透過包到達的介面可以到達。 (LCTT 譯註:到達的套件的來源位址應該可以從它到達的網路介面反向到達,只需反轉來源位址和目的位址就可以達到這樣的效果)
利用下面簡單的腳本可以開啟來源位址驗證而不用手動操作:
#!/bin/sh #作者: Michael K Aboagye #程序目标: 打开反向路径过滤 #日期: 7/02/18 #在屏幕上显示 “enabling source address verification” echo -n "Enabling source address verification…" #将值0覆盖为1来打开源地址验证 echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter echo "completed"
上面的腳本在執行的時候只顯示了 Enabling source address verification 這則訊息而不會換行。預設的反向路徑過濾的值是 0,0 表示沒有來源驗證。因此,第二行簡單地將預設值 0 覆寫為 1。1 表示核心將會透過確認反向路徑來驗證來源位址。
最後,你可以使用下面的命令透過選擇 DROP 或 REJECT 目標之一來丟棄或拒絕來自遠端主機的欺騙位址。但是,處於安全原因的考慮,我建議使用 DROP 目標。
像下面這樣,用你自己的 IP 位址取代 IP-address 佔位符。另外,你必須選擇使用 REJECT 或 DROP 中的一個,這兩個目標不能同時使用。
iptables -A INPUT -i internal_interface -s IP_address -j REJECT / DROP iptables -A INPUT -i internal_interface -s 192.168.0.0/16 -j REJECT / DROP
這篇文章只提供如何使用 iptables 防火牆來避免遠端欺騙攻擊的基礎知識。
以上是教你使用Linux防火牆隔離本地詐騙地址!的詳細內容。更多資訊請關注PHP中文網其他相關文章!