码迷,mamicode.com
首页 > 其他好文 > 详细

iptables总结

时间:2015-09-19 15:05:04      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:

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

 

iptables总结

标签:

原文地址:http://www.cnblogs.com/chenshoubiao/p/4821461.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!