始创于2000年 股票代码:831685
咨询热线:0371-60135900 注册有礼 登录
  • 挂牌上市企业
  • 60秒人工响应
  • 99.99%连通率
  • 7*24h人工
  • 故障100倍补偿
您的位置: 网站首页 > 帮助中心>文章内容

Linux防火墙之Netfilter (1)

发布时间:  2012/7/10 18:12:12

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类型的数据包。

 

亿恩科技地址(ADD):郑州市黄河路129号天一大厦608室 邮编(ZIP):450008 传真(FAX):0371-60123888
   联系:亿恩小凡
   QQ:89317007
   电话:0371-63322206
 


本文出自:亿恩科技【www.enkj.com】

服务器租用/服务器托管中国五强!虚拟主机域名注册顶级提供商!15年品质保障!--亿恩科技[ENKJ.COM]

  • 您可能在找
  • 亿恩北京公司:
  • 经营性ICP/ISP证:京B2-20150015
  • 亿恩郑州公司:
  • 经营性ICP/ISP/IDC证:豫B1.B2-20060070
  • 亿恩南昌公司:
  • 经营性ICP/ISP证:赣B2-20080012
  • 服务器/云主机 24小时售后服务电话:0371-60135900
  • 虚拟主机/智能建站 24小时售后服务电话:0371-60135900
  • 专注服务器托管17年
    扫扫关注-微信公众号
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 亿恩科技 版权所有  地址:郑州市高新区翠竹街1号总部企业基地亿恩大厦  法律顾问:河南亚太人律师事务所郝建锋、杜慧月律师   京公网安备41019702002023号
      0
     
     
     
     

    0371-60135900
    7*24小时客服服务热线