手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网站运营>建站经验>列表

Iptables 指南 1.1.19(中文版)(四)

来源:互联网 作者:west263.com 时间:2008-04-16
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

假如您正在经历日志满天飞的苦恼,这里有两个额外的规则能够使用,当然,这要看是因为什么引起的了。我们这里的第一条规则会阻塞目的端口是135到139的广播包。大部分Microsoft使用者会用到NetBIOS SMB,而他们就使用这些广播包。这条规则能够阻塞任何位于外网的那些Microsoft Network产生的广播包,我们的日志也就能够简洁一些了。第二条规则也是解决日志问题,但是问题的产生者变了,这回是外网的DHCP查询。假如您的外网是由非交换的以太网组成的,在那里客户机能够通过DHCP 得到IP地址,也就是说,假如外网里会有很多DHCP查询广播包,那就启用这条规则吧。

Note

注意,我把最后这两条规则也注释掉了,因为有些人可能想看看相关的记录。假如您正经历“合法日志过多”的痛苦,就试试丢弃那些包吧。其实,在INPUT链中,就在这两条有关日志的规则之前,更有更多这种类型的规则。


7.2.6.5. 处理ICMP的链

现在,我们该决定能够接受哪些ICMP类型了。在INPUT链中,假如ICMP包是从eth0 (即本例的Internet接口)进入的,我们就要把他重定向到icmp_packets 链(前面提到过),以检查是否是能够接受的类型。现在,我只接受三种ICMP包:ICMP Echo requestsTTL equals 0 during transitTTL equals 0 during reassembly。默认不接受其他任何ICMP类型的原因是,几乎任何其他类型的ICMP包都是RELATED状态的,也就是说他们都会被处理 RELATED状态的规则放行。

Note

假如一个ICMP包是用来回应“已存在的包或流”的,那他就是和那些流相关的,也就是说,他的状态是RELATED。更多的信息在章节状态机制里。

现在来解释一下我为什么只接受上面提到的三种ICMP包。Echo Request用来请求echo reply,这个操作主要被用来ping其他的机子,以确定那些机子是否可用。假如没有这一条规则,其他机子将不能通过ping来确定我们是否可用。注意,有些人倾向于删掉此规则,只是因为他们不想被Internet看到。删掉这个规则将会使任何来自Internet的、对我们防火墙的ping都无效,因为防火墙对他们完全没有回应。

允许超时(Time Exceeded,如TTL equals 0 during transit传输期间生存时间为0和TTL equals 0 during reassembly在数据报组装期间生存时间为0)信息进入,我们就能够追踪从本地到某台主机的路径,或在包的TTL为0时,我们能得到回应信息。比如,在我们追踪到某台主机的路径时,会以 TTL = 1的包开始。当他得到第一个路由时,TTL减为0,我们也会得到第一个路由返回的超时信息。然后是TTL = 2的包,我们就会得到第二个路由器返回的超时信息。如此,直到得到我们的目的主机返回的信息。这样,我们就能够从路径上的每一台主机得到一个回应,从而我们能够看到路径上的每一台主机,也就能够知道路径是断在哪台机子了。

完整的ICMP类型列表在附录ICMP类型里。关于ICMP类型的更多信息和用法,我建议您看看下面的文章:

  • Ralph Walden的The Internet Control Message Protocol

  • J. Postel的RFC 792 - Internet Control Message Protocol

Note

注意,我阻塞了任何我不想接受的ICMP包,这对您的网络来说可能会有问题,但在我这里,一切工作正常。


7.2.7. INPUT链

我写的INPUT链大部分是使用其他链来完成这个艰难的工作的。这样做,我们就无需从iptables 装载太多的规则(译者注:这是针对装载INPUT链的规则说的,因为这时其他规则已装载好了),而且他在较慢的机子上也能够工作得很好,但另一方面,这样的机子在高负载时还是会丢弃很多包(译者注:机子慢,就是不行)。之所以能做到这一点,是因为对于大量不同的包,我们通过检查特定的细节来确定他们的类别,再把这些包发送到相应的自定义链去处理。这样,我们能够分割规则集使之包含很少的规则,每个包要经历的规则也就少了。从而,在过滤包时,防火墙的开销也就小多了。

首先,我们要检查进入的tcp包的形态是否是不正常的或我们不想要的。这个工作是这样完成的,我们把任何的tcp包送到bad_tcp_packets链,由其中的规则进行检查,具体的描述在小节bad_tcp_packets链里。

然后,我们开始处理被信任的网络的数据传输。这包括任何来自“连接内网的网卡”的流量,任何来自和发往loopback的流量(要注意,和loopback相对应的IP地址包括了任何分配给防火墙的地址,其中也包括连接Internet的地址)。我们把处理LAN的流量的规则放在防火墙的上部,因为我们的局域网产生的流量要远远多于Internet连接。这样,规则会更有效率,防火墙就能以较小的开销去匹配包,从而网络阻塞的可能性也就减小了,而且也便于我们查看经过防火墙的包主要是什么类型。

下面的一些规则会处理来自Internet的信息,在接触这些规则之前,有一个相关的规则,我们可用他来减少一些开销。这是个处理状态的规则,他允许任何处于状态ESTABLISHED

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!