你了解Linux中的iptables原理?.doc
《你了解Linux中的iptables原理?.doc》由会员分享,可在线阅读,更多相关《你了解Linux中的iptables原理?.doc(6页珍藏版)》请在三一文库上搜索。
1、你了解Linux中的iptables原理?一、netfilter与iptables(1)Netfilter是由Rusty Russell提出的Linux 2.4内核防火墙框架,该框架既简洁又灵活,可实现安全策略应用中的许多功能,如数据包过滤、数据包处理、地址伪装、透明代理、动态网络地址转换(Network Address Translation,NAT),以及基于用户及媒体访问控制(Media Access Control,MAC)地址的过滤和基于状态的过滤、包速率限制等。Iptables/Netfilter的这些规则可以通过灵活组合,形成非常多的功能、涵盖各个方面,这一切都得益于它的优秀设计
2、思想。Netfilter是Linux操作系统核心层内部的一个数据包处理模块,它具有如下功能:网络地址转换(Network Address Translate)数据包内容修改数据包过滤防火墙(2)Netfilter 平台中制定了数据包的五个挂载点(Hook Point,我们可以理解为回调函数点,数据包到达这些位置的时候会主动调用我们的函数,使我们有机会能在数据包路由的时候改变它们的方向、内容),这5个挂载点分别是PRE_ROUTING、INPUT、OUTPUT、FORWARD、POST_ROUTING。(3)Netfilter 所设置的规则是存放在内核内存中的,而 iptables 是一个应用层
3、的应用程序,它通过 Netfilter 放出的接口来对存放在内核内存中的 XXtables(Netfilter的配置表)进行修改。这个XXtables由表tables、链chains、规则rules组成,iptables在应用层负责修改这个规则文件。类似的应用程序还有 firewalld 。二、filter、nat、mangle等规则四表(1)table有filter、nat、mangle等规则表;filter表主要用于对数据包进行过滤,根据具体的规则决定是否放行该数据包(如DROP、ACCEPT、REJECT、LOG)。filter 表对应的内核模块为iptable_filter,包含三个规
4、则链:INPUT链:INPUT针对那些目的地是本地的包FORWARD链:FORWARD过滤所有不是本地产生的并且目的地不是本地(即本机只是负责转发)的OUTPUT链:OUTPUT是用来过滤所有本地生成的包 nat表主要用于修改数据包的IP地址、端口号等信息(网络地址转换,如SNAT、DNAT、MASQUERADE、REDIRECT)。属于一个流的包(因为包的大小限制导致数据可能会被分成多个数据包)只会经过这个表一次。如果第一个包被允许做NAT或Masqueraded,那么余下的包都会自动地被做相同的操作,也就是说,余下的包不会再通过这个表。表对应的内核模块为 iptable_nat,包含三个链
5、PREROUTING链:作用是在包刚刚到达防火墙时改变它的目的地址OUTPUT链:改变本地产生的包的目的地址POSTROUTING链:在包就要离开防火墙之前改变其源地址mangle表主要用于修改数据包的TOS(Type Of Service,服务类型)、TTL(Time To Live,生存周期)指以及为数据包设置Mark标记,以实现Qos(Quality Of Service,服务质量)调整以及策略路由等应用,由于需要相应的路由设备支持,因此应用并不广泛。包含五个规则链PREROUTING,POSTROUTING,INPUT,OUTPUT,FORWARD。raw表是自1.2.9以后版本的ip
6、tables新增的表,主要用于决定数据包是否被状态跟踪机制处理。在匹配数据包时,raw表的规则要优先于其他表。包含两条规则链OUTPUT、PREROUTING(2)iptables中数据包和4种被跟踪连接的4种不同状态:NEW:该包想要开始一个连接(重新连接或将连接重定向)RELATED:该包是属于某个已经建立的连接所建立的新连接。例如:FTP的数据传输连接就是控制连接所 RELATED出来的连接。-icmp-type 0( ping 应答) 就是-icmp-type 8(ping 请求)所RELATED出来的。ESTABLISHED:只要发送并接到应答,一个数据连接从NEW变为ESTABLI
7、SHED,而且该状态会继续匹配这个连接的后续数据包。INVALID:数据包不能被识别属于哪个连接或没有任何状态比如内存溢出,收到不知属于哪个连接的ICMP错误信息,一般应该DROP这个状态的任何数据。三、INPUT、FORWARD等规则五链和规则(1)在处理各种数据包时,根据防火墙规则的不同介入时机,iptables供涉及5种默认规则链,从应用时间点的角度理解这些链:INPUT链:当接收到防火墙本机地址的数据包(入站)时,应用此链中的规则。OUTPUT链:当防火墙本机向外发送数据包(出站)时,应用此链中的规则。FORWARD链:当接收到需要通过防火墙发送给其他地址的数据包(转发)时,应用此链中
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 了解 Linux 中的 iptables 原理
链接地址:https://www.31doc.com/p-3381540.html