iptables总结

规则备份与恢复:
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 tcp

限定给某个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 DROPspa


iptables -nvL --line-numbers 查看规则带有id号
iptables -D INPUT 1 根据规则的id号删除对应链的规则rest

 

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本机ip

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: 路由后

 


案例讲解:
一、防止外网用内网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

 

三、阻止一个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

相关文章
相关标签/搜索