快速业务通道

浅谈Linux防火墙:iptables (1)

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-08

策略说明:

我的基本策略是默认为拒绝,然后对外与开放所需端口,对内部透明,对其他集群的ping透明以便于测试各集群间的连通性.当然,如白名单机器,还需要对其他集群的服务器开放监听端口.

防火墙链与表说明:

我不让TCP包去经历ICMPUDPTCP规则的洗礼,而是简单地匹配所有的TCP包,然后让它去一个自定义链中旅行.这种方法并不比让它经历所有的规则开销大.下图可以解释在Netfilter中,外来的包是如何被处理的

Incoming

INPUT

Local

Process

INPUT

Outcoming

我们完全信任局域网,因此不能阻塞任何从局域网发出的数据传输,但Internet是不被信任的,我们想阻塞从Internet向我们的局域网发起的连接.还有一个要优先考虑的事,我们只允许那些被明确说明为可以接受的数据通过.为了做到这一点,我们就要把缺省策略设为DROP.这样,那些没有被明确标识为允许进入的数据就都被阻塞了.下图是此防火墙策略的一次入站数据的过滤次序.

Incoming

INPUT

POLICY:DORP

Icmp_packets

tcp_packets

udp_packets

Localhost

Localnet

ESTABLISHED

RELATED

我们的防火墙只提供了有限的几个服务:FOXYSERVERSQUID等.因此,我们要在INPUT链里允许这些协议通过,还要在 OUTPUT链里允许返回的数据通过.我们除了完全信任局域网,也信任loopback和它的IP地址,因此我们要有相应的规则来允许所有来自局域网和loopback的数据通过.但是我们不会允许一些特殊的包或包头通过,也不会接受Internet上某一段IP的访问.

如果中间件与手机发生了长连接业务,我们则想让包经历最少的规则,要把处理establishedrelated状态的规则放到INPUT链的顶部.基于同样的原因,我们把这些规则分到子链中.这样,包就可以尽量少地穿越规则,从而节省时间,也可以降低网络的冗余.

在这个脚本里,我们依据不同的协议(如TCP UDPICMP)把包分到子链中.用来匹配 TCP包的链叫做tcp_packets,它可以匹配所有我们允许通过的FOXYSERVER端口和子协议(如HTTP等).我们还要建立一个名为allowed的子链,以便在真正接受“那些使用有效端口来访问防火墙的TCP包”之前,对它们进行附加的检查.至于ICMP包,自有称作 icmp_packets的链来处理.在决定如何建立这个链时,我考虑到如果我们同意接受ICMP包的类型和代码,就没有必要对它们做附加的检查,直接接受它们就行了.,UDP包由谁处理呢?当然就是 udp_packets了.如果包是那种允许被接收的类型,就直接放行了.ACCEPT everything from x.x.x.x (wan)

现在,我们来考虑考虑OUTPUT链.很信任防火墙,我们允许几乎所有离开它的包通过,而没有阻塞任何用户和协议.但我们也不想让人利用这台机子进行IP欺骗,因此我们只放行那些从防火墙本身的IP发出的包.为了实现这一点,我们会在ACCEPT链中加入这样一条规则:如果包是由防火墙的IP发出的,就放行,否则,它们就会被OUTPUT链的缺省策略DROP掉.

本文出自 “沧月” 博客,请务必保留此出处http://kc1985.blog.51cto.com/2407758/507943

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多
你可能对下面的文章感兴趣
上一篇: bash: useradd :command not found下一篇: linux 查看与更改系统时间

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号