Linux防火墙之Netfilter推荐

Netfilter简介

Linux下的包过滤防火墙,可以运行在2.4,2.6内核上;集成在内核中,不是系统的一个守护进程;对OSI模型中2,3,4层进行处理;只能对数据包头进行处理;可以用iptables命令来进行规则的配置;代替了ipchains;可以从http://www.netfilter.org查到更多资源。

基本的Netfilter编译选项

为了运行iptables,需要在内核配置期间,选择以下一些选项,不管你用make config或其他命令。在内核配置文件中要启用一些较重要的选项包括Netfilter连接跟踪、日志记录和包过滤。(请记住iptables通过用由Netfilter提供的内核中框架来建立一个策略)。在Network Packet Filtering Framework(Netfilter)中还有两个额外的配置选项――Core Netfilter Configuration(核心Netfilter配置)和IP:Netfilter Configuration(IP:Netfilter配置)。

核心Netfilter配置

核心Netfilter配置选项中包含的一些得要选项都应该被启用: Comment match support(comment匹配支持); FTP support(FTP协议支持); Length match support(数据包长度匹配支持); Limit match support(Limit匹配支持); MAC address match support(MAC地址匹配支持); MARK target support(MARK目标支持); Netfilter connection tracking support(Netfilter连接跟踪支持); Netfilter LOG over NFNETLINK interface(Netfilter通过NFNETLINK接口记录日志); Netfilter netlink interface(Netfilter netlink接口);Netfilter Xtables support(Netfilter Xtables支持); State match support(state匹配支持); String match support(string匹配支持);

IP:Netfilter配置

ECN target support(ECN目标支持); Full NAT(完整NAT支持); IP address range match support(ip地址范围匹配支持); IP tables support(IP tables支持,filtering/masq/NAT需要);IPv4 connection tracking support(IPv4连接跟踪支持,NAT需要);LOG target support(LOG目标支持); MASQUERAD target support(MASQUERAD目标支持); Owner match support(owner匹配支持); Packet filtering(包过滤支持); Packet mangling(包修改支持,常用于改变包的路由); Raw table support(RAW表支持,NOTRACK/TRACE需要); Recent match support(recent匹配支持); REJECT target support(REJECT目标支持); TOS match support(TOS匹配支持); TOS target support(TOS目标支持); TTL match support(TTL匹配支持); TTL target support(TTL目标支持); ULOG target support(ULOG目标支持);

Netfilter工作的位置

Netfilter是以模块的方式存在于Linux中,每当Linux多一个Netfilter的模块就代表着Linux防火墙的功能多了一项,当然其功能也随之增加。其中/lib/modules/2.6.18-164.el5/kernel/net/ipv4/netfilter目录下所存放的模块只能工作在IPv4的网络环境下;如下图所示:

/lib/modules/2.6.18-164.el5/kernel/net/ipv6/netfilter目录下所存放的模块只能工作在IPv6的网络环境下,如下图所示:

以上的两个目录的模块有个共同的特性, 都与 协议 有关, 因此,在使用这些模块时,必须特别留意哪些模块只能使用在哪个协议下。Linux自2.6.14版本开始, 其内含的Netfilter模块在设计上有了重大的改变,Netfilter组织希望模块与 协议 无关,所以就目前情况看来已有部份模块可以达到这样的要求其路径为/lib/modules/2.6.18-164.el5/kernel/net/netfilter如下图所示:

Netfilter的命令结构

了解了Netfilter的结构后应该清楚以上的模块只是提供了某些过滤匹配的功能而已,如果我们希望Netfilter能为我们做些事,那我们就需给Netfilter执行 规则 ,有了规则后,Netfilter才会知道哪些封包是可以被接受的,哪些封包是必须除掉的, 又有哪些封包是必须以特殊方式来处理的。而给予Netfilter规则的方式则是将规则填入到一块有结构性的内存中,这样,Netfilter就会依照防火墙管理人员所给的命令来执行。该内存就是俗称的表,表是防火墙的最大集合,包含链和规则;表包括filter table过滤表;nat用于地址转换;mangle俗称矫正表和RAW表。链则是规则的集合。匹配:满足的条件,如源地址,端口等。方法:对条件做出处理,accept,drop等。

Filter表是Netfilter内最为重要的机制,其任务为执行数据包的过滤动作,也就是防火墙的功能;包含INPUT、OUTPUT和FORWARD链,用于处理输入、输出和转发包。filter表是缺省的表。 NAT(Network Address Translation)也是防火墙上一个不可或缺的重要机制,它的功能类似于IP分享器,只是相应功能更加强大。用于处理网络地址翻译。(包含与masquerading 相关的功能);包含PREROUTING(路由前);POSTROUTING(路由后)OUTPUT 输出(很少用到)共3个链。 Mangle表用于处理特殊包的矫正,包含两个链PREROUTING (路由前),POSTROUTING(路由后)。在流量控制和Qos应用中,经常会用到mangle表。RAW表负责加快数据包穿越防火墙机制的速度,借此提高防火墙的性能。

Netfilter的Filter机制

Filter作为Netfilter中的防火墙分类,首先需明确 数据包的分类 ,以下图所示,假设在计算机上装有两片网卡,并且在计算机上分别执行Httpd及Firefox两个程序。

INPUT类型:所谓INPUT类型是指网络上其它主机送给本机处理(Local Process)的数据包,例如当网络上的其它使用都来访问本的的HTTPD服务时就会产生这种类型的数据包。 OUTPUT类型:如果是本机Process所产生的数据包,即为OUTPUT类型的数据包。例如,当使用者在本机上启用Firefox去访问网络上的其它主机时就会产生这种类型的封包。 FORWARD类型:如果数据包对本机而言只是 路过 ,那么这就属于FORWARD类型的数据包。当本机执行Router的角色就会有FORWARD类型的数据包。

INPUT链:当我们需要保护本机的HTTPD这个Process时,我们应该选择INPUT类型的数据包。例如,我们可以在INPUT链中描述: 如果进来的数据包是要到本机的TCP Port 80,而且数据包是由192.168.2.1主机送来的,就将该数据包丢弃掉 ,这样就可以达到保护Httpd这个Process的目的。所以,INPUT链是用来存放过滤INPUT类型数据包的规则的,也就是说,INPUT链是用于 保护 本机的机制。

OUTPUT链:如果我们要限制使用者不得在 本机 上以Firefox来浏览www.163.com网站,那么需要限制OUTPUT类型的数据包。那么在OUTPUT链中的描述为: 如果数据包是本机Process所产生的,并且数据包是送往www.163.com的TCP Port 80时,就将该数据包丢弃掉。 所以,OUTPUT链是用来存放过滤OUTPUT类型数据包的规则的,也就是说,OUTPUT链是用于 限制 本机应用程序的连接机制。

FORWARD链:如下图所示,如果图中防火墙用来保护WEB Server,那么就应该限制FORWARD类型的数据包,因此可以在FORWARD链中这样描述: 如果数据包是由192.168.2.10主机送出,并且数据包是要送到WEB Server的TCP Port 80端口,那么就将该数据包丢弃掉。 所以FORWARD链是用来存放过滤FORWARD类型的数据包的规则,也就是说,FORWARD链是用来保护防火墙后面的主机。

规则的匹配

规则按照顺序匹配;当第一个规则匹配后(DROP,ACCEPT,REJECT),通常会退出链。规则也可以多次匹配,比如LOG规则在前面,后面的ACCEPT也会匹配,如果检测不到匹配的规则,那么默认的链策略会生效。设置防火墙策略有两个基本原则:默认禁止一切,明确地允许被选择的数据包通过。(建议);默认开放一切,明确地禁止被选择的数据包通过。如下图所示:

困难是人的教科书。

Linux防火墙之Netfilter推荐

相关文章:

你感兴趣的文章:

标签云: