當前位置:
首頁 > 知識 > 20條IPTables防火牆規則用法!

20條IPTables防火牆規則用法!

管理網路流量是系統管理員必需處理的最棘手工作之一,我們必需規定連接系統的用戶滿足防火牆的傳入和傳出要求,以最大限度保證系統免受攻擊。很多用戶把 Linux 中的 IPTables 當成一個防火牆,從嚴格意見上來說 IPTables 只是能夠幫助管理員定義各種規則並與 Linux Kernel 進行溝通的一個命令行工具。它只是幫助管理員配置網路流量的傳入、傳出規則列表,具體的實現其實是在 Linux 內核當中。

IPTables 包括一組內置和由用戶定義規則的「鏈」,管理員可以在「鏈」上附加各種數據包處理規則。

FILTER 默認過濾表,內建的鏈有:

INPUT:處理流入本地的數據包

FORWARD:處理通過系統路由的數據包

OUTPUT:處理本地流出的數據包

NAT 實現網路地址轉換的表,內建的鏈有:

PREROUTING:處理即將接收的數據包

OUTPUT:處理本地產生的數據包

POSTROUTING:處理即將傳出的數據包

MANGLE 此表用於改變數據包,共 5 條鏈:

PREROUTING:處理傳入連接

OUTPUT:處理本地生成的數據包

INPUT:處理報文

POSTROUTING:處理即將傳出數據包

FORWARD:處理通過本機轉發的數據包

接下來我們將由簡入難介紹 25 條 Linux 管理員最常會用到的 IPTables 規則。

1、啟動、停止和重啟IPTables

雖然 IPTables 並不是一項服務,但在 Linux 中還是可以像服務一樣對其狀態進行管理。

基於SystemD的系統

基於SysVinit的系統

2、查看IPtables防火牆策略

你可以使用如下命令來查看 IPtables 防火牆策略:

以上命令應該返回數據下圖的輸出:

以上命令是查看默認的 FILTER 表,如果你只希望查看特定的表,可以在 -t 參數後跟上要單獨查看的表名。例如只查看 NAT 表中的規則,可以使用如下命令:

3、屏蔽某個IP地址

如果你發布有某個 IP 向伺服器導入攻擊或非正常流量,可以使用如下規則屏蔽其 IP 地址:

注意需要將上述的 XXX 改成要屏蔽的實際 IP 地址,其中的 -A 參數表示在 INPUT 鏈的最後追加本條規則。(IPTables 中的規則是從上到下匹配的,一旦匹配成功就不再繼續往下匹配)

如果你只想屏蔽 TCP 流量,可以使用 -p 參數的指定協議,例如:

4、解封某個IP地址

要解封對 IP 地址的屏蔽,可以使用如下命令進行刪除:

其中 -D 參數表示從鏈中刪除一條或多條規則。

5、使用IPtables關閉特定埠

很多時候,我們需要阻止某個特定埠的網路連接,可以使用 IPtables 關閉特定埠。

阻止特定的傳出連接:

阻止特定的傳入連接:

6、使用Multiport控制多埠

使用 multiport 我們可以一次性在單條規則中寫入多個埠,例如:

7、在規則中使用 IP 地址範圍

在 IPtables 中 IP 地址範圍是可以直接使用 CIDR 進行表示的,例如:

8、配置埠轉發

有時我們需要將 Linux 伺服器的某個服務流量轉發到另一埠,此時可以使用如下命令:

上述命令會將所有到達 eth0 網卡 25 埠的流量重定向轉發到 2525 埠。

9、屏蔽HTTP服務Flood攻擊

有時會有用戶在某個服務,例如 HTTP 80 上發起大量連接請求,此時我們可以啟用如下規則:

上述命令會將連接限制到每分鐘 100 個,上限設定為 200。

10、禁止PING

對 Linux 禁 PING 可以使用如下規則屏蔽 ICMP 傳入連接:

11、允許訪問迴環網卡

環回訪問(127.0.0.1)是比較重要的,建議大家都開放:

12、屏蔽指定MAC地址

使用如下規則可以屏蔽指定的 MAC 地址:

13、限制並發連接數

如果你不希望來自特定埠的過多並發連接,可以使用如下規則:

以上規則限制每客戶端不超過 3 個連接。

14、清空IPtables規則

要清空 IPtables 鏈可以使用如下命令:

要清空特定的表可以使用 -t 參數進行指定,例如:

15、保存IPtables規則

默認情況下,管理員對 IPtables 規則的操作會立即生效。但由於規則都是保存在內存當中的,所以重啟系統會造成配置丟失,要永久保存 IPtables 規則可以使用 iptables-save 命令:

保存的名稱大家可以自己改。

16、還原IPtables規則

有保存自然就對應有還原,大家可以使用 iptables-restore 命令還原已保存的規則:

17、允許建立相關連接

隨著網路流量的進出分離,要允許建立傳入相關連接,可以使用如下規則:

允許建立傳出相關連接的規則:

18、丟棄無效數據包

很多網路攻擊都會嘗試用黑客自定義的非法數據包進行嘗試,我們可以使用如下命令來丟棄無效數據包:

19、IPtables屏蔽郵件發送規則

如果你的系統不會用於郵件發送,我們可以在規則中屏蔽 SMTP 傳出埠:

20、阻止連接到某塊網卡

如果你的系統有多塊網卡,我們可以限制 IP 範圍訪問某塊網卡:

源地址可以是 IP 或 CIDR。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Linux資訊速推 的精彩文章:

雲計算的信心危機?切勿驚慌:這很正常
OpenBSD禁用英特爾 CPU 的超線程支持

TAG:Linux資訊速推 |