iptables基础及模块高级应用.ppt
《iptables基础及模块高级应用.ppt》由会员分享,可在线阅读,更多相关《iptables基础及模块高级应用.ppt(49页珍藏版)》请在三一文库上搜索。
1、ChinaUNIX技术沙龙 iptables基础及模块高级应用,marsaber 2009.6.20 西安,主 题 大 纲,一、防火墙的作用及分类 二、iptables概述 三、iptables流程图 四、iptables语法 五、iptables模块应用 六、实例分析,说明,参考文档: CU_platinum的2 小时玩转 iptables 讲义企业版 v1.5.4 http:/ iptables 指南 1.1.19 http:/iptables- iptables的man文档 互联网 测试平台:CentOS 5.3 ( kernel-2.6.27、iptables-1.4.1.1 ),一、
2、防火墙的作用,作用: 过滤两个网络间流入流出的数据包,由预先制定的策略来控制访问行为。,防火墙种类(一),1、简单包过滤防火墙; 优点:速度快、性能高,对应用程序透明; 缺点:只检查报头,不检查数据区,不建立连接状态表,安全性低,应用控制层很弱; 2、状态检测包过滤防火墙; 优点:安全性高,性能高, 缺点:只检查报头,但建立连接状态表,不检查数据区,安全性高,应用控制层很弱;,防火墙种类(二),3、应用代理防火墙; 优点:安全性高,提供应用层的安全; 缺点:性能差,只支持有限的应用,不透明,不检查报头,不建立连接状态表,检查数据区,网络层保护较弱; 4、核检测防火墙; 优点:重组并检查会话内容
3、,建立连接状态表;网络层保护强、应用层保护强、会话保护强; 缺点:性能差,不透明。,二、iptables概述,Kernel 0.01(1991.9) Kernel 2.0(1994.3.14) ipfwadm Kernel 2.2(1999.1.25) ipfwadm Kernel 2.4(2001.1.4) Netfilter/iptables Kernel 2.6(2003.12.17) Netfilter/iptables,三、iptables流程图,PREROUTINGRouteFORWARDPOSTROUTING INPUT OUTPUT - local -,四、iptables基本
4、语法,iptables基本语法: iptables -t table command match target 1、table,表,filter、nat、mangle、raw; 2、command,iptables最重要的部分; 3、match,匹配数据包的特征; 4、target,对匹配的数据包进行的操作;,4.1、表,filter,用于一般的数据包过滤,针对本机;iptables默认的表;链:INPUT、FORWARD、OUTPUT; nat,仅用于NAT,也就是转换数据包的源地址或目标地址;链:PREROUTING、POSTROUTING、OUT; mangle,用来修改流经防火墙的数据
5、包内容,不能做任何NAT,它只是改变数据包的 TTL,TOS或MARK,而不是其源目地址。强烈建议你不要在这个表里做任何过滤;链:PREROUTING、POSTROUTING、OUTPUT、INPUT和 FORWARD; raw, 负责加快数据包穿越防火墙的速度,借此提高防火墙的性能;,4.2、命令(1),-L:查看规则; iptables -L iptables -L -n iptables -t nat -L -n iptables -L -n -line-number iptables -t nat -L -n -line-number -P:修改默认规则; iptables -P IN
6、PUT DROP 备注:为链设置默认的target (可用的是DROP 和ACCEPT ),做为最后一条规则被执行,4.2、命令(2),-A:追加规则,做为最后一条规则; iptables -A INPUT -p tcp -dport 22 -j ACCEPT iptables -t nat -A PREROUTING -i eth0 -p tcp -dport 2222 -J DNAT -to 192.168.0.1:22 -I:插入规则,不写规则数,默认第1条; iptables -I INPUT 1 -p icmp -j ACCEPT iptables -I INPUT 3 -p tcp
7、 -dport 22 -j ACCEPT iptables -t nat -I PREROUTING -i eth0 -p tcp -dport 2222 -J DNAT -to 192.168.0.1:22,4.2、命令(3),-D:删除规则; iptables -D INPUT 3 iptables -D INPUT -s 192.168.0.1 -j DROP -R:修改规则; iptables -R INPUT 3 -s 192.168.0.1 -j ACCEPT iptables -t nat -R POSTROUTING 1 -s 192.168.0.1/24,4.2、命令(4),
8、-F:清空规则; iptables -F iptables -F INPUT iptables -t nat -F iptables -t nat -F POSTROUTING -Z:把指定链的所有计数器归零; iptables -Z iptables INPUT -Z iptables -t nat -Z iptables -t nat POSTROUTING -Z,4.3 匹配条件,出、入接口(-o、-i) 源、目的地址(-s、-d) 协议类型(-p) 源、目的端口(-sport、-dport),4.3 匹配条件(1),按网络接口匹配 -o 匹配数据流出的网络接口 iptables -A
9、INPUT -o eth0 -j DROP iptables -A INPUT -o ppp0 -j DROP 备注:将接口eth0、ppp0流出的数据DROP掉; -i 匹配数据流入的网络接口 iptables -A INPUT -i eth0 -j DROP iptables -A INPUT -i ppp0 -j DROP 备注:将流入到接口eth0、ppp0的数据DROP掉;,4.3 匹配条件(2),按地址匹配 -s 匹配源地址 iptables -A INPUT -s 192.168.0.1 -j DROP #将来自192.168.0.1的任何请求DROP掉; -d 匹配目的地址 i
10、ptables -A INPUT -d 192.168.0.1 -j DROP #将本机发往192.168.0.1的任何请求DROP掉; 备注: 可以是单个IP(192.168.0.1)、网段(192.168.0.1/24)、域名(),不设则表示任何地址;,4.3 匹配条件(3),按协议类型匹配 -p 匹配协议类型 iptables -A INPUT -s 192.168.0.1/24 -p tcp -dport 22 -j DROP #禁止192.168.0.1/24的客户机连接本机22端口 iptables -A INPUT -p icmp -j DROP #禁ping iptables
11、-A INPUT -p 1 -icmp-type 8 -j DROP #可以ping通其他客户机,但是其他客户机ping不通该机; 备注:第三条规则中1对应的协议类型是icmp,详情请参照/etc/protocols,4.3 匹配条件(4),按端口匹配 -sport 匹配源端口 iptables -A INPUT -p tcp -sport 80 -j DROP #将来自80端口的请求DROP掉(比如,我向发出请求,回应后,遇到该规则后回应就被拒绝掉); -dport 匹配目的端口 iptables -A INPUT -s 192.168.0.1/24 -p tcp -dport 80 -j
12、DROP #将来自192.168.0.1/24的针对本机80端口的请求DROP掉; 备注: 1、-sport、-dport必须配合参数-p使用; 2、可以指定某个端口,也可以是端口范围,比如:2000(2000以下端口)、2000:3000(2000-3000端口)、3000: (3000以上端口),4.4处理方式(1),ACCEPT 这个target没有任何选项和参数,使用也很简单,指定-j ACCEPT即可。一旦数据包满足了指定的匹配条件,就会被ACCEPT,并且不会再去匹配当前链中的其他规则或同一个表内的其他规则; iptables -P INPUT ACCEPT #修改INPUT的默认
13、规则为ACCEPT iptables -A INPUT -s 192.168.0.1/24 -j ACCEPT #允许来自192.168.0.1/24的所有针对本机的所有请求;,4.4处理方式(2),DROP 如果包符合条件,这个target就会把它丢掉,也就是说包的生命到此结束,不会再向前走一步,效果就是包被阻塞了。在某些情况下,这个target会引起意外的结果,因为它不会向发送者返回任何信息,也不会向路由器返回信息,这就可能会使连接的另一方因苦等回音而亡,解决这个问题的较好办法较好的办法是使用REJECT(除了丢弃数据包之外,还向发送者返回错误信息); iptables -A INPUT
14、-s 192.168.0.1 -j DROP #将来自192.168.0.1的请求全部DROP掉; iptables -A INPUT -s 192.168.0.1 -j REJECT #将来自192.168.0.1的请求全部DROP掉,并向请求者返回错误信息;,4.4处理方式(3),-SNAT 这个target是用来做源网络地址转换的,就是重写包的源IP地址。先在内核里打开ip转发功能,然后再写一个SNAT规则,就可以把所有从本地网络出去的包的源地址改为Internet连接的地址了。 SNAT target的作用就是让所有从本地网出发的包看起来都是从一台机子发出的,这台机子一般就是防火墙。
15、iptables -t nat -A POSTROUTING -o eth0 -j SNAT -to 1.2.3.4 iptables -t nat -A POSTROUTING -s 192.168.0.1/24 -j SNAT -to 1.2.3.4 备注:eth0为外网网卡接口,192.168.0.1/24为内网网段;,4.4处理方式(4),-j DNAT -to IP-IP:port (nat表的PREROUTING链 ) 用来做目的网络地址转换的,就是重写包的目的IP地址。如果一个包被匹配了,那么和它属于同一个流的所有的包都会被自动转换,然后就可以被路由到正确的主机或网络。 ipta
16、bles -t nat -A PREROUTING -d 1.2.3.4 -p tcp -dport 80 -j DNAT -to 192.168.1.1:80 #把所有发往地址1.2.3.4(端口80)的请求都转发到一个LAN使用的私有地址中,即192.168.1.1到 192.168.1.10 iptables -t nat -A PREROUTING -d 1.2.3.4 -p tcp -dport 80 -j DNAT -to 192.168.1.1-192.168.1.10 #把所有发往地址1.2.3.4(端口80)的请求都转发到一段LAN使用的私有地址中,即192.168.1.1到
17、 192.168.1.10 备注:也就是将内网的服务器映射到外网,通俗点就是端口映射;,4.4处理方式(5),-j MASQUERADE 和SNAT target的作用是一样的,区别就是它不需要指定-to-source ,被专门设计用于那些动态获取IP地址的连接的,如果你有固定的IP地址,还是用SNAT target吧。当接口停用时,MASQUERADE不会记住任何连接,这在我们kill掉接口时是有很大好处的。如果我们使用SNAT target,连接跟踪的数据是被保留下来的,而且时间要好几天,这可是要占用很多连接跟踪的内存的。一般情况下,这种处理方式对于拨号上网来说是较好的。即使你有静态的IP
18、,也可以使用MASQUERADE,而不用SNAT 。不过,这不是被赞成的,因为它会带来额外的开销,而且以后还可能引起矛盾。 iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE iptables -t nat -A POSTROUTING -s 192.168.0.1/24 -j MASQUERADE 备注:eth0为外网网卡接口,192.168.0.1/24为内网网段;,4.5规则的匹配方式,规则由第1条开始依次匹配,如果第1条规则不匹配,则匹配第2条规则,如果第2条规则还不匹配则匹配第3条规则,依次论之; 如果数据包被第N条规则所匹配,则
19、数据包的存活将由该规则决定;如果规则规定将数据包丢弃,那么数据包就会被丢弃,不会管后面的规则如何如何; 不论链中有多少个规则,默认规则(Default Policy)永远都在每一个链的最底端,最后被执行;每个链的默认规则各自独立,且只有一种状态,要么是ACCEPT,要么是DROP;,4.6 备注,规则配置文件/etc/sysconfig/iptables iptables-save iptables-restore service iptables save #将目前iptables规则保存到/etc/sysconfig/iptables; chkconfig iptables on chkc
20、onfig -level 35 iptables on,五、iptables模块应用,很 好 ! 很 强 大 !,5.1 iptables模块应用,comment模块 iptables -A FORWARD -s 192.168.0.254 -j DROP -m comment -comment “DataServer“ iptables -A FORWARD -d 192.168.0.254 -j DROP -m comment -comment “DataServer“ #不允许数据库服务器192.168.0.254访问外网/被外网访问; 备注: 1、允许你增加一个备注给任何规则,以提高规
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- iptables 基础 模块 高级 应用
链接地址:https://www.31doc.com/p-2145286.html