教你使用Linux防火牆隔離本地欺騙位址!

2021-08-19 17:59:19 字數 2519 閱讀 3542

幾乎所有的 linux 發行版都帶著乙個內建的防火牆來保護執行在 linux 主機上的程序和應用程式。大多數防火牆都按照 ids/ips 解決方案設計,這樣的設計的主要目的是檢測和避免惡意包獲取網路的進入權。

如何使用 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 

#程式目標: 開啟反向路徑過濾

#日期: 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_inte***ce -s ip_address -j reject / drop   

iptables -a input -i internal_inte***ce -s 192.168.0.0/16 -j reject / drop

這篇文章只提供了如何使用 iptables 防火牆來避免遠端欺騙攻擊的基礎知識。

免費提供最新linux技術教程書籍,為開源技術愛好者努力做得更多更好:

linux防火牆使用

centos7 的防火牆配置跟以前版本有很大區別,centos7這個版本的防火牆預設使用的是firewalld,與之前的版本使用iptables不一樣 centos6版本 檢視防火牆狀態 root centos6 service iptables status 開啟防火牆 root centos6 ...

linux 防火牆 ufw使用

ufw是ubuntu是預設的防火牆配置工具,相對於iptables,ufw使用更加簡單 1 是代表可選內容,需要root許可權 2 ufw規則檔案在 etc ufw before.rules etc ufw after.rules,var lib ufw user.rules中,規則使用是按befo...

linux 防火牆 ufw使用

ufw是ubuntu是預設的防火牆配置工具,相對於iptables,ufw使用更加簡單 1 是代表可選內容,需要root許可權 2ufw規則檔案在 etc ufw before.rules etc ufw after.rules,var lib ufw user.rules中,規則使用是按befor...