隨着企業中使用Linux系統的增長,保證Linux系統安全成爲運維人員的必備技能之一。html
Linux系統自己有很強大的防禦措施:防火牆。那麼如何管理防火牆就成爲重中之重。linux
隨着CentOS 七、CentOS 8的出現,愈來愈多的人喜歡使用firewalld工具來管理防火牆。由於它不只能夠經過命令行設置,也能夠經過圖形化設置。關於使用firewalld工具管理Linux防火牆,可參考保證Linux系統安全之使用firewalld工具管理防火牆 安全
下面咱們主要介紹iptables工具管理防火牆。網絡
本人第一次據說iptables工具時,什麼四表五鏈的,明天愁的頭都大了。可是通過不斷的上網閱讀資料。發現iptables工具,其實也是很難。也是很容易掌握的。有的初學者朋友可能會有疑問,既然如今就可使用firewalld工具管理防火牆,那我也沒有必要學習iptables工具了。記住一句話:二者各有各的好處,誰都不可能替代誰。運維
提到iptables,那麼就不得不說一下四表五鏈、執行的動做。tcp
四表分別是:ide
- raw:高級功能,如:網址過濾;
- mangle:數據包修改(QOS),用於實現服務質量;
- net:地址轉換,用於網關路由器;
- filter:包過濾,用於防火牆規則;
五鏈分別是:工具
- INPUT鏈:處理輸入數據包;
- OUTPUT鏈:處理輸出數據包;
- PORWARD鏈:處理轉發數據包;
- PREROUTING鏈:用於目標地址轉換(DNAT);
- POSTOUTING鏈:用於源地址轉換(SNAT);
執行的動做分別是:學習
- accept:接收數據包;
- DROP:丟棄數據包;
- REDIRECT:重定向、映射、透明代理;
- SNAT:源地址轉換;
- DNAT:目標地址轉換;
- MASQUERADE:IP假裝(NAT),用於ADSL;
- LOG:日誌記錄;
iptables命令經常使用的選項有:命令行
- -t<表>:指定要操縱的表;
- -A:向規則鏈中添加條目;
- -D:從規則鏈中刪除條目;
- -i:向規則鏈中插入條目;
- -R:替換規則鏈中的條目;
- -L:顯示規則鏈中已有的條目;
- -F:清楚規則鏈中已有的條目;
- -Z:清空規則鏈中的數據包計算器和字節計數器;
- -N:建立新的用戶自定義規則鏈;
- -P:定義規則鏈中的默認目標;
- -h:顯示幫助信息;
- -p:指定要匹配的數據包協議類型;
- -s:指定要匹配的數據包源ip地址;
- -j<目標>:指定要跳轉的目標;
- -i<網絡接口>:指定數據包進入本機的網絡接口;
- -o<網絡接口>:指定數據包要離開本機所使用的網絡接口;
iptables命令選項輸入順序:
iptables -t 表名 <-A/I/D/R> 規則鏈名 [規則號] <-i/o 網卡名> -p 協議名 <-s 源IP/源子網> --sport 源端口 <-d 目標IP/目標子網> --dport 目標端口 -j 動做
iptables命令示例:
[root@localhost ~]#iptables -F // 清空全部的防火牆規則 [root@localhost ~]#iptables -F INPUT //清空指定鏈 INPUT 上面的全部規則 [root@localhost ~]#iptables -X // 刪除用戶自定義的空鏈 [root@localhost ~]#iptables -Z //清空計數 [root@localhost ~]#iptables -P INPUT DROP //配置默認的不讓進 [root@localhost ~]#iptables -P FORWARD DROP //默認的不容許轉發 [root@localhost ~]#iptables -P OUTPUT ACCEPT //默認的能夠出去 將INPUT規則鏈設置爲只容許指定網段的主機訪問本機的22端口,拒絕來自其餘全部主機的流量: [root@localhost ~]# iptables -I INPUT -s 192.168.1.0/24 -p tcp --dport 22 -j ACCEPT [root@localhost ~]# iptables -A INPUT -p tcp --dport 22 -j REJECT [root@localhost ~]# iptables-save //保存配置 若是我只容許192.168.1.100和192.168.1.110 的PING命令,應該怎麼添加 [root@localhost ~]# iptables -I INPUT -s 192.168.1.110 -p icmp -j ACCEPT [root@localhost ~]# iptables -I INPUT -s 192.168.1.100 -p icmp -j ACCEPT [root@localhost ~]# iptables -A INPUT -p icmp -j DROP 若是我只容許192.168.1.0/24網段的,但拒絕192.168.1.100和192.168.1.110 的PING命令,應該怎麼添加 [root@localhost ~]# iptables -I INPUT -s 192.168.1.0/24 -p icmp -j ACCEPT [root@localhost ~]# iptables -I INPUT -s 192.168.1.100 -p icmp -j DROP [root@localhost ~]# iptables -I INPUT -s 192.168.1.110 -p icmp -j DROP 向INPUT規則鏈中添加拒絕全部人訪問本機12345端口的策略規則 [root@localhost ~]# iptables -I INPUT -p tcp --dport 12345 -j REJECT [root@localhost ~]# iptables -I INPUT -p UDP --dport 12345 -j REJECT 向INPUT規則鏈中添加拒絕全部主機訪問本機1000~1024端口的策略規則 [root@localhost ~]# iptables -A INPUT -p tcp --dport 1000:1024 -j REJECT [root@localhost ~]# iptables -A INPUT -p UDp --dport 1000:1024 -j REJECT
注意:iptables工具檢查策略時按照:從上到下,找到即停,若是沒有找到則執行默認的策略!因此在添加規則時,應注意策略的添加順序!
因爲時間緣由,並非介紹的很詳細,有什麼疑問,能夠參考iptables工具詳細介紹
———————— 本文至此結束,感謝閱讀 ————————