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

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

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

  1. Filter table —— 首先是filter表,而且我们先要配置策略。

    1. Set policies —— 为任何系统内建的链配置策略。通常,我会配置 DROP,对于允许使用的服务或流会在后面明确地给以ACCEPT。这样,我们就能够方便地排除任何我们不想让人们使用的端口。

    2. Create user specified chains —— 在这里创建任何以后会用到的自定义链。假如没有事先建立好,后面是不能使用他们的,所以我们要尽早地建立这些链。

    3. Create content in user specified chains —— 建立自定义链里使用的规则。其实您也能够在后面的某个地方写这些规则,之所以写在这儿,唯一的原因是这样做规则和链会离得近些,便于我们查看。

    4. INPUT chain —— 创建INPUT链的规则。

      Note

      从这里开始,我就是遵循iptables -L的输出格式来创建规则的,这样做的唯一原因就是为了便于阅读,避免混淆。

    5. FORWARD chain —— 为FORWARD链创建规则。

    6. OUTPUT chain —— 为OUTPUT链创建规则。其实,在这里要建的规则很少。

  2. nat table —— 在处理完filter表之后,该配置nat表了。我们这样做是有一定原因的。首先,我们不想太早地打开转发机制(译者注:注意,filter表设定的是过滤机制,而不是转发)和NAT功能,因为他们可能导致数据会在错误的时间(也就是这样的时刻:我们打开了NAT,但过滤规则还没有运行)通过防火墙。更有,我把nat表看作是围绕filter表的一个层。也就是说,filter表是核心, nat表是他外部的一个层,mangle表是第二层。从某些观点来看,这可能有点不对,但也八九不离十了。

    1. Set policies —— 和filter相同,我们先来配置策略。一般说来,缺省的策略,即ACCEPT,就很好。这个表不应该被用来做任何过滤,而且我们也不应该在这儿丢弃任何包,因为对我们假设的网络情况来说,可能会发生一些难以应付的事情。我把策略设为ACCEPT,因为没有什么原因不这样做。

    2. Create user specified chains —— 在这儿创建nat表会用到的自定义链。一般情况下,我没有任何规则要在这儿建立,但我还是保留了这个小节,以防万一罢了。注意,在被系统内建链调用之前一定要建好相应的自定义链。

    3. Create content in user specified chains —— 建立自定义链的规则。

    4. PREROUTING chain —— 要对包做DNAT操作的话,就要用到此链了。大部分脚本不会用到这条链,或是把里面的规则注释掉了,因为我们不想在不了解他的情况下就在防火墙上撕开一个大口子,这会对我们的局域网造成威胁。当然,也有一些脚本默认使用了这条链,因为那些脚本的目的就是提供这样的服务。

    5. POSTROUTING chain —— 假如使用SNAT操作,就要在此建立规则。您可能有一个或多个局域网需要防火墙的保护,而我就是依据这样的情况来写此脚本的,所以这个脚本中使用的 POSTROUTING链是相当实用的。大部分情况下,我们会使用SNAT target,但有些情况,如PPPoE,我们不得不使用MASQUERADE target。

    6. OUTPUT chain —— 不管什么脚本都几乎不会用到这个链。迄今为止,我还没有任何好的理由使用他,假如您有什么理由用他了的话,麻烦您把相应的规则也给我一份,我会把他加到本指南里的。

  3. mangle table —— 最后要做的就是处理mangle表了。通常,我不会使用这个表,因为一般情况下,他不会被任何人要到,除非他们有什么特别的需要,比如为了隐藏一条连接后的多台机子,我们要统一配置TTL或TOS等。在这个脚本里,此表是空白的。但在此指南中还是有个小小的例子说明了mangle表的用处。

    1. Set policies —— 配置策略。这里的情形和nat表几乎完全相同。这里不应该做过滤,也不应该丢弃任何包。在任何脚本里我都不会把mangle表的策略设为其他的值,也不鼓励您这样做。

    2. Create user specified chains —— 建立自定义链。我几乎不会用到这个链,所以没有建立任何规则。保留此小节,只是已备后用。

    3. Create content in user specified chains —— 建立自定义链的规则。

    4. PREROUTING —— 本指南的任何脚本都未在此链建立规则。

    5. INPUT chain —— 本指南的任何脚本都未在此链建立规则。

    6. FORWARD chain —— 本指南的任何脚本都未在此链建立规则。

    7. OUTPUT chain —— 本指南的任何脚本都未在此链建立规则。

    8. POSTROUTING chain —— 本指南的任何脚本都未在此链建立规则。

这应该能够较周详地解释每个脚本的结构是怎样的连同他们为什么要使用这个结构了。

Caution

注意,上面的描述其实还是很简单的,应该被看作一个摘要,他简要地解释了脚本为什么要按照这种松散的结构来写。千万注意,我可没有说过这种结构是唯一的、最好的。

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