一.查看现有防火墙策略
iptables -L -n
iptables -L -n --line-number #--line-number参数会显示策略编号,该编号在删除策略时使用
二.增加防火墙策略(以22端口为例)
iptables -A INPUT -s 192.168.220.0/24 -p TCP --dport 22 -j ACCEPT #增加网段 iptables -A INPUT -s 192.168.1.1 -p TCP --dport 22 -j ACCEPT #增加单个IP iptables -A INPUT -p TCP --dport 22 -j DROP
说明:
1. -A代理在末尾追加,如果要在开头插入使用-I
2.多IP使用逗号(半角)相隔,多端口添加-m multiport然后端口使用逗号(半角)相隔
iptables -A INPUT -s 127.0.0.1,1192.168.1.1 -p tcp -m multiport --dport 22,23 -j ACCEPT iptables -A INPUT -p tcp -m multiport --dport 22,23 -m comment --comment "deny all 22,23" -j DROP
3.对于连续IP合用--src-range
iptables -I INPUT -m iprange --src-range 192.168.220.128-192.168.220.139 -p tcp -m multiport --dport 22,23 -m comment --comment "subnet:22,23" -j ACCEPT
注意这个语句的结果中source会变成0.0.0.0/0,但不用担心他会对所有IP放行,后边有source IP range的描述那是起作用的IP
4. 如果原来没有策略或者不冲突的情况下,-A和-I的结果是一样的;但是在“远程添加防火墙”和“限制22端口”两个条件下,-I可能会让你陷入致命的麻烦:
iptables -I INPUT -p TCP --dport 22 -j DROP iptables -I INPUT -s 192.168.1.1 -p TCP --dport 22 -j ACCEPT iptables -I INPUT -s 192.168.220.0/24 -p TCP --dport 22 -j ACCEPT
看起来这三句和-A那三句结果是一样的,但防火墙策略是即时生效的也就是在“iptables -I INPUT -p TCP --dport 22 -j DROP”执行后,你的ssh就马上会断开了后边两句根本不会执行
三.修改防火墙策略
iptables -R INPUT 2 -s 192.168.1.1 -p TCP --dport 22 -j DROP #2是--line-nember查到的,所有参数都要写-R不是在原策略基础上修改而就是直接取化,所以这里的-s虽然原来就是192.168.1.1但还是要写,不然结果就是DROP掉所有ip对22端口的连接请求
四.删除防火墙策略
iptables -D INPUT 2 #2是--line-number查到的,此句会删除第2条策略 iptables -F #此句会清空所有防火墙规则,慎用
五.保存防火墙规则
上边对防火墙的修改只是临时的,并没有存入配置文件(/etc/sysconfig/iptables),防火墙服务重启之后策略会退回到之前保存的策略状态;要防火墙配置永久生效要进行保存
service iptbales save