防火墙软件Netfilter之包过滤技术如果您不知道什么是IP地址、网络地址、网络掩码、路由或者DNS,那么,请先阅读相关的网络基础书籍。 1.什么是包过滤(Packet Filter)? 包过滤技术就是利用一些软件来查看收到包的头部,然后决定整个包的命运。要么DROP这个包(例如丢弃这个包,就像没有收到一样);要么Accept这个包;或者更复杂的动作。在Linux下,包过滤被编译到内核中。 2.为什么要用包过滤 控制: 能够允许某些类型的包通过,或者不允许某些类型的包通过。例如,包的头部含有目的地址的信息,因此,您可以设置过滤规则禁止网络内部的包到达某些外部的网络地址。举个实例,当你用netscape浏览Dilbert文档时,在它的页面上会出现来自doubleclick.net的烦人广告,让包过滤禁止任何去或者来自doubleclick.net的包就可以解决问题了。 安全: 如何在混乱的Internet和您的有序的网络之间通信?设置了防火墙来把守您的大门是十分必要的。例如,您可以允许任何包出去,但是对著名的“Ping of Death”(来自外部的攻击者)感到焦虑。又例如,您不允许外部telnet到内部的机器(尽管每个用户都有密码)。等等,都可以通过设置规则解决。 警觉: 有时候一台配置不好的内部机器向外面喷涌发包。包过滤能够及时向网络管理员报告此类异常,这样,管理员就能够做出相应的行动,以防不测。 3.Linux包过滤的发展史
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 ----------- 更多相关文章
|
推荐文章
精彩文章
|