深入浅出Netfilter/iptables防火墙框架(基础篇)

发表于:2011-7-14 10:39

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:李洋    来源:51Testing软件测试网采编

  Linux系统管理员们都接触过Netfilter/iptables,这是Linux系统自带的免费防火墙,功能十分强大。在接下来的这个《深入浅出Netfilter/iptables防火墙框架》系列中,安全/Linux专家李洋将对Netfilter/iptables进行详尽的、条理的介绍。本文是基础篇,先介绍Netfilter/iptables框架的原理。

  1、Netfilter/iptables框架简介

  Netfilter/iptables可以对流入和流出的信息进行细化控制,且可以在一台低配置机器上很好地运行,被认为是Linux中实现包过滤功能的第四代应用程序。Netfilter/iptables包含在Linux 2.4以后的内核中,可以实现防火墙、NAT(网络地址翻译)和数据包的分割等功能。netfilter工作在内核内部,而iptables则是让用户定义规则集的表结构。Netfilter/iptables从ipchains和ipwadfm(IP防火墙管理)演化而来,功能更加强大。

  这里所说的iptables是ipchains的后继工具,但具有更强的可扩展性。内核模块可以注册一个新的规则表(table),并要求数据包流经指定的规则表。这种数据包选择用于实现数据报过滤(filter表),网络地址转换(NAT表)及数据报处理(mangle表)。Linux 2.4内核及其以上版本提供的这三种数据报处理功能都基于netfilter的钩子函数和IP表,都是相互间独立的模块,完美地集成到了由netfilter提供的框架中,如图1所示。netfilter主要提供了如下三项功能:

  1)包过滤:filter表格不会对数据报进行修改,而只对数据报进行过滤。iptables优于ipchains的一个方面就是它更为小巧和快速。它是通过钩子函数NF_IP_LOCAL_IN、NF_IP_FORWARD及NF_IP_LOCAL_OUT接入netfilter框架的。

  2)NAT:NAT表格监听三个netfilter钩子函数:NF_IP_PRE_ROUTING、NF_IP_POST_ROUTING及NF_IP_LOCAL_OUT。NF_IP_PRE_ROUTING实现对需要转发数据报的源地址进行地址转换,而NF_IP_POST_ROUTING则对需要转发的数据报目的地址进行地址转换。对于本地数据报目的地址的转换,则由NF_IP_LOCAL_OUT来实现。

  3)数据报处理:mangle表格在NF_IP_PRE_ROUTING和NF_IP_LOCAL_OUT钩子中进行注册。使用mangle表,可以实现对数据报的修改或给数据报附上一些外带数据。当前mangle表支持修改TOS位及设置skb的nfmard字段。

图1 Netfilter/Iptables框架结构示意图

  根据实际情况,灵活运用Netfilter/iptables框架,生成相应的防火墙规则可以方便、高效地阻断部分网络攻击以及非法数据报(参见图2所示的工作原理)。然而,由于配置了防火墙,可能引起诸如FTP、QQ、MSN等协议和软件无法使用或者某些功能无法正常使用,也有可能引起RPC(远程过程调用)无法执行,这需要用户根据实际情况来配置相应的服务代理程序来开启这些服务。需要特别提醒注意的是,防火墙也可能被内部攻击,其并不是万能的,还需要综合使用其他防护手段。内部人员由于无法通过Telnet浏览邮件或使用FTP向外发送信息,个别人会对防火墙不满进而可能对其进行攻击和破坏。而且,攻击的目标常常是防火墙或防火墙运行的操作系统,这极大地危害了防火墙系统甚至是关键信息系统的安全。

图2 Netfilter/Iptables框架工作原理示意

31/3123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号