标签:
规则备份与恢复:
service iptables save 这样会保存到/etc/sysconfig/iptables
iptables-save > myipt.rule 可以把防火墙规则保存到指定文件中
iptables-restore < myipt.rule 这样可以恢复指定的规则
四个表,5个链
filter,nat,mangle,raw
查看对应表的规则
iptables –t nat –L 可以看到有哪些链
iptables规则相关:
放行22端口
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
限定给某个ip放行(这个是对于来源的IP限制,然后我给这个ip开放22端口dport这个就代表我就是目的端口)
iptables -I INPUT -p tcp -s 22.129.48.82 --dport 22 -j ACCEPT
iptables -I INPUT -s 22.129.48.82 -j ACCEPT
A和I这两参数不一样,A是追加的最后面,I是插在前面的规则
增加/删除规则
禁止对进来10.72.11.12这个ip的1234 这个端口访问我,和禁止我访问10.72.137.159这个ip的80端口
iptables -A/-D INPUT -s 10.72.11.12 -p tcp --sport 1234 -d 10.72.137.159 --dport 80 -j DROP
iptables -nvL --line-numbers 查看规则带有id号
iptables -D INPUT 1 根据规则的id号删除对应链的规则
P代表默认规则
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
别人访问不了本机,本机也不能向外发数据
禁止内部人员访问外部指定的网站
iptables -A OUTPUT -d www.123.com -j DROP
iptables -A INPUT -p icmp -j DROP 禁止别人ping本机
iptables -A INPUT -p 1 --icmp-type 8 -j DROP
备注:可以ping通其他客户机,但是其他客户机ping不通本机----------------常用
按端口匹配
-sport 匹配来源端口
iptables -A INPUT -p tcp --sport 80 -j DROP
备注:将来自80端口的请求DROP掉
-dport匹配目的端口
iptables -A INPUT -s 192.168.3.1/24 -p tcp --dport 80 -j DROP
备注:将来自192.168.3.1/24的针对本机80端口的请求DROP掉
可以指定某个端口,也可以是端口范围,比如 :2000(2000以下端口)
2000:3000(2000-3000端口) 3000: (3000以上端口)
请总结:PREROUTING,POSTROUTING,INPUT,OUTPUT,FORWARD各条链处理数据的对象,
以及数据经过防火墙时通过各链的顺序:
几种流向的顺序为
PREROUTING --->INPUT--> OUTPUT--> POSTROUTING
减少不安全的端口连接,不让本机访问31337这个端口,关闭不安全的端口连接本机
iptables -A OUTPUT -p tcp --sport 31337 -j DROP
iptables -A OUTPUT -p tcp --dport 31337 -j DROP
我们只允许192.168.0.3的机器进行SSH连接
iptables -A INPUT -s 192.168.0.3 -p tcp --dport 22 -j ACCEPT
开启所需要的端口
22
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
80
iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
匹配条件
按网络接口匹配
iptables -A OUTPUT -o eth0 -j DROP
备注:将接口eth0流出的数据DROP掉
iptables -A INPUT -i eth0 -j DROP
备注:将流入接口eth0的数据DROP掉
五个链
INPUT:输入,目的IP 是本机的包
OUTPUT:输出,源IP 是本机的包
FORWARD:转发,穿过本机的包
PREROUTING: 路由前
POSTROUTING: 路由后
案例讲解:
1、防止外网用内网IP 欺骗
iptables -t nat -A PREROUTING -i eth0 -s 10.0.0.0/8 -j DROP
iptables -t nat -A PREROUTING -i eth0 -s 172.16.0.0/12 -j DROP
iptables -t nat -A PREROUTING -i eth0 -s 192.168.0.0/16 -j DROP
3、阻止一个IP 连接本机
iptables -t filter -A INPUT -s 192.168.1.5 -i eth0 -j DROP
禁止一个IP 或者一个IP 段访问服务器端口服务
80 端口
iptables -t filter -I INPUT 2 -s 192.168.5.0/24 -p tcp --dport http -j DROP
FTP 端口
iptables -t filter -I INPUT 2 -s 192.168.7.9 -p tcp --dport ftp -j DROP
10. iptables -A INPUT –s 192.168.100.1 –p udp --dport 53 -j DROP
不允许100.1 进行DNS 域名解析
iptables -A INPUT –s 192.168.100.1 -p tcp --dport 53 -j DROP
不允许100.1 进行DNS 的TCP 的连接
11. iptables -A INPUT –s 192.168.100.1 -p tcp --dport 25 -j DROP
客户机100.1 不能向服务器发邮件
iptables -A INPUT –s 192.168.100.1 -p tcp --dport 110 -j DROP
客户机100.1 不能收邮件
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
最后,保存当前规则
/etc/rc.d/init.d/iptables save
service iptables restart
这种iptables的规则设定适用于只充当MySQL服务器的管理和维护,外部地址不提供任何服务。
如果你希望yum可以运行的话,还需要添加以下内容,允许DNS请求的53端口,允许下载随机产生的高端口
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p udp --sport 53 -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 10000:65535 -j ACCEPT
/etc/rc.d/init.d/iptables save
service iptables restart
标签:
原文地址:http://www.cnblogs.com/chenshoubiao/p/4821461.html