iptables的啟停
1、查看是否啟動:#service iptables status
2、啟動:#service iptables start
3、停止:#service iptables stop
4、查看每次開機是否啟動:#chkconfig --list | grep iptables
5、設置每次開機啟動:#chkconfig --level 35 iptables on
6、保存規則:#service iptables save 也可以指定存儲文件#iptables-save > /etc/sysconfig/iptables
iptables的結構
1、四張表:Raw追蹤表——mangle修改表——nat地址轉換——filter過濾表(默認表,常用)(四張表按優先級從高到低) 使用參數-t 表選擇表
2、五條鏈:prerouting、input(常用)、forward、output、postrouting 在鏈前使用參數(-P:新建鏈 -L:列出規則 -A:追加規則 -D:刪除規則 -I:插入規則 -R:替換規則 -F:刪除規則 -Z:清零 計數 -X:刪除鏈) 操作該鏈上的規則
3、過濾規則:源IP -s、源PORT --sport、目標IP -d、目標PORT --dport、協議(tcp、udp、icmp)-p、狀態--state、數據流入接口 -i、數據流出接口-o
4、執行動作:-j :accept、drop、reject、MASQUERADE (改寫源IP為防火牆ip)
5、加載其他過濾模塊 -m (state 狀態(NEW、ESTABLISHED、RELATED、INVALID)、multiport 多端口、limit 包流量、mac 網卡地址、)
iptables實例
1、iptables -A INPUT -p TCP --dport 22 -j REJECT --reject-with ICMP echo-reply ##對目標端口為22的流入包進行拒絕,並返回拒絕信息
2、iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT--to-ports 8081 ##對目標端口是80的流入包轉向到8081端口
3、iptables -t nat -A POSTROUTING -p TCP -j MASQUERADE --to-ports 21000-31000 ##對tcp協議的流出包修改源ip為防火牆ip
4、iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 192.168.10.15-192.168.10.160:2100-3200 ##對eth0網卡-協議tcp的流出寶轉換源ip
5、iptables -A INPUT -p tcp --dport 80 -j ACCEPT ##接收目標端口80的流入包
6、iptables -A INPUT -p tcp -m multiport --destination-port 22,53,80,110 -j ACCEPT ##接收目標端口為22/53/80/110的流入包
7、iptables -A INPUT -m limit --limit 3/hour ##限制流入包為3個每小時
8、iptables -A INPUT -m mac --mac-source 00:00:00:00:00:01 -j ACCEPT ##接收指定源mac的流入包
9、iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT ##接收狀態為已連接和關聯的流入包
10、 iptables -R INPUT 2 -s 172.16.0.0/16 -d 172.16.100.1 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT ##替換第二條規則為指定源目IP/PORT且狀態為新建和已建立的流入包
11、iptables -I INPUT 1 --dport 80 -j ACCEPT ##將允許目標端口是80的包進入規則插入到filter表input鏈的第一條