20條IPTables防火牆規則用法!

來源:互聯網
上載者:User

標籤:

導讀管理網路流量是系統管理員必需處理的最棘手工作之一,我們必需規定串連系統的使用者滿足防火牆的傳入和傳出要求,以最大限度保證系統免受攻擊。很多使用者把 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的系統
systemctl start iptablessystemctl stop iptablessystemctl restart iptables
基於SysVinit的系統
 /etc/init.d/iptables start/etc/init.d/iptables stop/etc/init.d/iptables restart
2、查看IPtables防火牆策略

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

 iptables -L -n -v

以上命令應該返回資料的輸出:

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

 iptables -t nat -L -v –n
3、屏蔽某個IP地址

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

 iptables -A INPUT -s xxx.xxx.xxx.xxx -j DROP

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

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

iptables -A INPUT -p tcp -s xxx.xxx.xxx.xxx -j DROP
4、解鎖某個IP地址

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

 iptables -D INPUT -s xxx.xxx.xxx.xxx -j DROP

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

5、使用IPtables關閉特定連接埠

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

阻止特定的傳出串連:

 iptables -A OUTPUT -p tcp --dport xxx -j DROP

阻止特定的傳入串連:

iptables -A INPUT -p tcp --dport xxx -j ACCEPT
6、使用Multiport控制多連接埠

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

iptables -A INPUT  -p tcp -m multiport --dports 22,80,443 -j ACCEPTiptables -A OUTPUT -p tcp -m multiport --sports 22,80,443 -j ACCEPT
7、在規則中使用 IP 位址範圍

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

iptables -A OUTPUT -p tcp -d 192.168.100.0/24 --dport 22 -j ACCEPT
8、配置連接埠轉寄

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

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 25 -j REDIRECT --to-port 2525

上述命令會將所有到達 eth0 網卡 25 連接埠的流量重新導向轉寄到 2525 連接埠。

9、屏蔽HTTP服務Flood攻擊

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

iptables -A INPUT -p tcp --dport 80 -m limit --limit 100/minute --limit-burst 200 -j ACCEPT

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

10、禁止PING

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

iptables -A INPUT -p icmp -i eth0 -j DROP
11、允許訪問迴環網卡

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

iptables -A INPUT -i lo -j ACCEPTiptables -A OUTPUT -o lo -j ACCEPT
12、屏蔽指定MAC地址

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

iptables -A INPUT -m mac --mac-source 00:00:00:00:00:00 -j DROP
13、限制並發串連數

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

iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 3 -j REJECT

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

14、清空IPtables規則

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

iptables -F

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

iptables -t nat –F
15、儲存IPtables規則

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

iptables-save > ~/iptables.rules

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

16、還原IPtables規則

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

iptables-restore < ~/iptables.rules
17、允許建立相關串連

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

iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

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

iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT
18、丟棄無效資料包

很多網路攻擊都會嘗試用駭客自訂的非法資料包進行嘗試,我們可以使用如下命令來丟棄無效資料包:

iptables -A INPUT -m conntrack --ctstate INVALID -j DROP
19、IPtables屏蔽郵件發送規則

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

iptables -A OUTPUT -p tcp --dports 25,465,587 -j REJECT
20、阻止串連到某塊網卡

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

iptables -A INPUT -i eth0 -s xxx.xxx.xxx.xxx -j DROP

源地址可以是 IP 或 CIDR。

免費提供最新Linux技術教程書籍,為開源技術愛好者努力做得更多更好:http://www.linuxprobe.com/

20條IPTables防火牆規則用法!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.