按标签归档:iptables


iptables防火墙简单介绍

关于防火墙的简单了解:     iptables防火墙是由Netfilter项目开发。iptables目前已发展成为一个功能强大的防火墙,可与专有的商业防火墙相媲美。     iptables提供能了全面的协议状态跟踪,数据包的应用层检查,速率限制和一个功能强大的机制已制定过滤策略。   关于iptables和Netfilter之间的关系:     Linux提供的所有包过滤和包修改设施的官方项目名称Netfilter,此术语也指linux内核里面的一个框架,可以用于在不同阶段将函数挂接(hook)进网络栈.简单的理解就是,Netfilter提供了一个框架,iptables在它之上建立了防火墙功能。     linux的绝大多数功能都是以模块的形式扩充出来的,Netfilter也是以模块的形式存在于linux中,当linux多了一个Netfilter模块,linux防火墙功能也就多了一项。     其实不仅是Netfilter有模块,iptables也有模块,这些模块就位于/lib64/xtables/(32bit系统在/lib/xtables/)目录下,其中以libxt开头的是iptables模块,这些模块与Netfilter模块是一一相对应的,例如/lib/modules/`uname -r`/kernel/net/netfilter/xt_conntrack.ko模块,在/lib64/xtables/libxt_conntrack.so与之相对应。当下达与xt_conntrack.ko相关的指令时,iptables会根据libxt_conntrack.so模块的指示去检查语法是否正确。并将Netfilter相应模块载入到系统内存,iptables最后将规则写入到规则数据库中。     Netfilter本身并不对数据包进行过滤,它只是允许过滤的数据包的函数挂接的内核中合适的位置。Netfilter项目在内核中还提供了一些基础设施,比如链接跟踪和日志记录,任何iptables策略都可以使用这些设施来执行特定数据包的处理。         有关Netfilter的工作位置:         Netfilter模块存放的目录:             /lib/modules/`uname -r`/kernel/net/ipv4/netfilter/             /lib/modules/`uname -r`/kernel/net/ipv6/netfilter/        以上两个目录中的模块都与协议有关,因此在使用时应该注意相应的协议             /lib/modules/`uname -r/kernel/net/netfilter/        经过Netfilter组织的努力与协议无关的模块就存放在上面的目录,可同时应用于ipv4和ipv6的网络环境        链路层:根据链路层数据包包头的内容在防火墙中依规则进行过滤,例匹配MAC地址        网络层:根据数据包IP包头的内容作为过滤条件,例如:IP包头的长度,协议….        传输层:根据传输层包头的内容进行匹配,例如TCP包头的内容中的来源端端口号,目的端端口号,TCP包头的整体长度….