Iptables 指南 1.1.19(中文版)(四)
首先,我们解决的是局域网要能连接到Internet的问题。那我们就要对任何数据包做NAT操作,因为局域网内的机子都没有真实的IP地址。NAT是在PREROUTING链中完成的,这也是脚本最后创建的那个规则所在的链。这意味着我们必须要在FORWARD链中做过滤工作,否则我们就是允许任何外部的机子都能完全访问局域网了。因为我们完全信任局域网,所以允许任何由内向外的数据通过。由于我们假设Internet上的机子都不能够访问局域网内的机子,所以要阻塞任何由外向内的连接,但已建立的或相关的连接除外,因为他们只是用来回应内网对外网的访问,而不是建立对内网的新连接。

由于资金有限,我们的防火墙只提供了有限的几个服务:HTTP、 FTP、SSH和IDENTD。因此,我们要在INPUT链里允许这些协议通过,还要在 OUTPUT链里允许返回的数据通过。我们除了完全信任局域网,也信任loopback和他的IP地址,因此我们要有相应的规则来允许任何来自局域网和loopback的数据通过。但是我们不会允许一些特别的包或包头通过,也不会接受Internet上某一段IP的访问。比如,网段 10.0.0.0/8是为局域网而保留的,一般来说,我们不允许来自他们的包进入,因为这样的包90%都是用来进行欺骗的。但是,在实现这条标准之前,还要注意一个问题,就是有一些ISP在他们的网络里使用的恰恰就是这些地址。 在附录常见问题和解答里有这个问题的进一步说明。
因为我们在防火墙上运行FTP服务,而且想让包经历最少的规则,所以要把处理established和related状态的规则放到INPUT链的顶部。基于同样的原因,我们把这些规则分到子链中。这样,包就能够尽量少地穿越规则,从而节省时间,也能够降低网络的冗余。
在这个脚本里,我们依据不同的协议(如TCP、 UDP或ICMP)把包分到子链中。用来匹配 TCP包的链叫做tcp_packets,他能够匹配任何我们允许通过的TCP端口和子协议(如FTP、HTTP等)。我们还要建立一个名为allowed的子链,以便在真正接受“那些使用有效端口来访问防火墙的TCP包”之前,对他们进行附加的检查。至于ICMP包,自有称作 icmp_packets的链来处理。在决定如何建立这个链时,我考虑到假如我们同意接受ICMP包的类型和代码,就没有必要对他们做附加的检查,所以直接接受他们就行了。最后,UDP包由谁处理呢?当然就是 udp_packets了。假如包是那种允许被接收的类型,就直接放行了。
因为我们的网络很小,所以防火墙也要作为工作站来用。这就需要我们要允许一些特别的协议能和他通信,比如speak freely和ICQ。

现在,我们来考虑考虑OUTPUT链。因为很信任防火墙,所以我们允许几乎任何离开他的包通过,而没有阻塞任何用户和协议。但我们也不想让人利用这台机子进行IP欺骗,因此我们只放行那些从防火墙本身的IP发出的包。为了实现这一点,我们很可能在ACCEPT链中加入这样一条规则:假如包是由防火墙的IP发出的,就放行,否则,他们就会被OUTPUT链的缺省策略DROP掉。
7.2.5. 缺省策略的配置
在开始写其他规则之前,我们先要用下面的语句建立缺省的策略:
iptables [-P ]
每一条链的策略都是用来处理那些在相应的链里没被规则匹配的包。也就是说,假如有一个包没有被规则集中的任何规则匹配,那策略就有用武之地了。
![]() | 要谨慎地配置其他表里的链的策略,因为他们不是用来过滤包的,这就可能引起很怪异的行为发生。 |
7.2.6. 自定义链的配置
现在,您对我们的防火墙应该已有了一个很清楚的印象,心动了吧。心动不如行动,让我们把他变为现实吧。这一节我们就要小心仔细地创建任何自定义链和链内的规则。
如前所述,我们要建立这几条自定义链:icmp_packets、tcp_packets、udp_packets 和allowed,其中allowed链是由tcp_packets链调用的。任何进入$INET_IFACE的ICMP包都会被重定向到icmp_packets链,TCP包是到 tcp_packets链,那UDP包自然就是udp_packets链了,周详的解释都在 INPUT chain里。创建自定义链的命令还记得吗?很简单哦,只要使用选项-N ,再指定链的名字即可(不要忘了,新建的链都是空的),如下:
iptables [-N chain]
在下面的几节里,我们会详尽地介绍上面创建的每一条链,以使您了解他们包含哪些规则、有什么作用。
7.2.6.1. bad_tcp_packets链
这条链包含的规则检查进入包(incoming packet)的包头是否不正常或有没有其他问题,并进行相应地处理。但事实上,我们使用他只是为了过滤掉一些特别的包:没有配置SYN位但又是NEW状态的TCP包,更有那些配置了SYN/ACK但也被认为是NEW状态的TCP包。这条链能够用来检查任何可能的不一致的东西,比如上面的包或XMAS port-scans等。我们还能够为INVALID状态的包增加一条规则的。
假如您想完全了解无SYN位的NEW状态(NEW not SYN),能够去附录常见问题和解答里看看未配置SYN的NEW状态包一节,他介绍了未配置SYN的NEW状态包通过其他规则的情况。在某些情况下能够允许这种包通过,但99%的情况是我们不想让他们通过。因此,我们会先记录这种包,然后再扔掉他们。
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
- 快速学习如何搭建一个赚钱
- 什么是CPA、CPC、CPM、CPO
- 论文:Web安全对策研究
- 新手站长35天自学引路
- 站长资讯网第二版上线
- 网络营销网站功能设计的几
- 女站长的建站理财文章
- 也谈域名备案 -- 撤销已存
- 自己动手做网站 个人站长
- 对第一次做网站的朋友说些
- 传统网站逼得Web2.0没法活
- 被K过的域名如何被百度重
- 如何选择理想IDC服务商十
- 技巧:Vimdiff 使用
- 网络创业经历 靠卖域名来
- 如何提高网站流量之小节
- 王晨昀:个人网站为什么要
- 企业开展网络营销存在的误
- 一个失败者谈地方门户的运
- 域名注册与虚拟主机的选购
- SEO360的搜索引擎优化推广
- 网站运营与网络运营的一字
- 做网站要做出自己的个性—
- 中国网站内容不可逾越的三
- 如何将新网及商务中国的域
- 08年,个人站长赚钱将更加
- 保证能增加RSS订阅量的35
- 企业网站英文版制作几个关
- 龚文祥:互联网运营关键词
- 我的行业垃圾站
- 2008最新申请Google adsen
- 虚拟主机的陷阱
- 网站建设发展的几点中肯建
- 企业如何安全高效使用垃圾
- 计算机文件夹删除不掉怎么
网站运营 建站经验 策划盈利 搜索优化 网站推广 免费资源
网站联盟 联盟新闻 联盟介绍 联盟点评 网赚技巧
行业资讯 业界动态 搜索引擎 网络游戏 门户动态 电子商务 广告传媒
网络编程 Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术 Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷 Internet Explorer
网页制作 FrontPages Dreamweaver Javascript css photoshop fireworks Flash
程序设计 Java技术 C/C++ VB delphi
网络知识 网络协议 网络安全 网络管理 组网方案 Cisco技术
操作系统 Win2000 WinXP Win2003 Mac OS Linux FreeBSD




