iptables是linux系統自帶的防火牆,功能強大。如果iptables不熟悉的話可以用apf,是一款基於iptables的防牆。
一.安裝並啟動防火牆
$ /etc/init.d/iptables start
當我們用iptables添加規則,保存后,這些規則以文件的形勢存在磁盤上的,以centos為例,
文件地址是/etc/sysconfig/iptables,我們可以通過命令的方式去添加,修改,刪除規則,
也可以直接修改/etc/sysconfig/iptables這個文件就行了。
二.添加防火牆規則
1.添加filter表
$ iptables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-dport 開放21端口
-A 默認是插入到尾部的(add)
2.添加nat表
$ iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j MASQUERADE
將源地址是 192.168.10.0/24 的數據包進行地址偽裝
-t 類型 (type)
3. 指定位置添加
$ iptables -I INPUT 3 -p tcp -m tcp --dport 20 -j ACCEPT $ iptables -L -n --line-number Chain INPUT (policy DROP) num target prot opt source destination 1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 2 DROP icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 8 3 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:20
-L 列出 list
--line-number 顯示行號
-I指定位置添加
三.刪除iptables規則
$ iptables -D INPUT 3 #刪除input的第3條規則
$ iptables -t nat -D POSTROUTING 1 #刪除nat表中postrouting的第一條規則 $ iptables -F INPUT #清空 filter表INPUT所有規則 $ iptables -F #清空所有規則 $ iptables -t nat -F POSTROUTING #清空nat表POSTROUTING所有規則
四.查看防火牆規則
1.查看filter表
$ iptables -L -n --line-number |grep 21
如果不加-t的話,默認就是filter表,查看,添加,刪除都是的
2.查看nat表
$ iptables -t nat -vnL POSTROUTING --line-number
五.修改規則
$ iptables -R INPUT 3 -j DROP #-R 將規則3刪除
六. 設置默認規則
$ iptables -P INPUT DROP #設置filter表INPUT默認規則是 DROP
所有添加,刪除,修改后都要保存起來,
$/etc/init.d/iptables-save