Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->系统管理 ->正文

防火墙软件Netfilter之包过滤技术

来源:Linux-cn.com 作者:Webmaster 时间:2007-05-05 点击: [收藏] [投稿]

  如果您不知道什么是IP地址、网络地址、网络掩码、路由或者DNS,那么,请先阅读相关的网络基础书籍。

1.什么是包过滤(Packet Filter)?

  包过滤技术就是利用一些软件来查看收到包的头部,然后决定整个包的命运。要么DROP这个包(例如丢弃这个包,就像没有收到一样);要么Accept这个包;或者更复杂的动作。在Linux下,包过滤被编译到内核中。

2.为什么要用包过滤

  控制:

  能够允许某些类型的包通过,或者不允许某些类型的包通过。例如,包的头部含有目的地址的信息,因此,您可以设置过滤规则禁止网络内部的包到达某些外部的网络地址。举个实例,当你用netscape浏览Dilbert文档时,在它的页面上会出现来自doubleclick.net的烦人广告,让包过滤禁止任何去或者来自doubleclick.net的包就可以解决问题了。

  安全:

  如何在混乱的Internet和您的有序的网络之间通信?设置了防火墙来把守您的大门是十分必要的。例如,您可以允许任何包出去,但是对著名的“Ping of Death”(来自外部的攻击者)感到焦虑。又例如,您不允许外部telnet到内部的机器(尽管每个用户都有密码)。等等,都可以通过设置规则解决。

  警觉:

  有时候一台配置不好的内部机器向外面喷涌发包。包过滤能够及时向网络管理员报告此类异常,这样,管理员就能够做出相应的行动,以防不测。

3.Linux包过滤的发展史

  • Ipfw              1994, coming from BSD, 内核2.0,工具ipfwadm
  • Ipchains  1998, based on the ipfw, 内核 2.2,工具ipchains
  • Netfilter  1999, based on the ipchains, 内核2.3.15~2.4, 工具iptables(包过滤源代码直接嵌入在内核中,工具iptables作为一个模块,可以嵌入,也可以不)

4.Iptables

  新一代的工具,比ipchains和ipfwadm更加强大,对IPv6的支持更好。

5.Iptables快速指南

  大多数人只有一个单独的PPP连接到Internet,但是不想任何人访问他们的内部网络或者放火墙,可以如下设置:

  ## Insert connection-tracking modules (not needed if built into kernel).
  # insmod ip_conntrack
  # insmod ip_conntrack_ftp
    
  ## Create chain which blocks new connections, except if coming from inside.
  # iptables -N block
  # iptables -A block -m state --state ESTABLISHED,RELATED -j ACCEPT
  # iptables -A block -m state --state NEW -i ! ppp0 -j ACCEPT
  # iptables -A block -j DROP
    
  ## Jump to that chain from INPUT and FORWARD chains.
  # iptables -A INPUT -j block
  # iptables -A FORWARD -j block

6.包如何通过netfilter

  内核在过滤表中维持了3个规则列表,这些列表叫做firewall chains。这3个chains分别叫做INPUT, OUTPUT 和FORWARD。如下图:

  Incoming               /---------        Outgoing

   ----------->[Routing ]--->|FORWARD|------------->

            [Decision]     \_____/          ^

                 |                        |

                 v                      ____

                ___                    /    

               /                     |OUTPUT|

              |INPUT|                  \____/

               \___/                      ^

                 |                        |

                 -----> Local Process -----------


 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:防火墙软件Netfilter之NAT技术   下一篇:网络安全漏洞检测

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号