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

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

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


6.1. 基础

我们已解释了什么是规则,在内核看来,规则就是决定如何处理一个包的语句。假如一个包符合任何的条件(就是符合matche语句),我们就运行target或jump指令。书写规则的语法格式是:

iptables [-t table] command [match] [target/jump]

对于这个句法没什么可说的,但注意target指令必须在最后。为了易读,我们一般用这种语法。总之,您将见到的大部分规则都是按这种语法写的。因此,假如您看到别人写的规则,您很可能会发现用的也是这种语法,当然就很容易理解那些规则了。

假如您不想用标准的表,就要在[table]处指定表名。一般情况下没有必要指定使用的表,因为iptables 默认使用filter表来执行任何的命令。也没有必要非得在这里指定表名,实际上几乎可在规则的任何地方。当然,把表名在开始处已是约定俗成的标准。

尽管命令总是放在开头,或是直接放在表名后面,我们也要考虑考虑到底放在哪儿易读。command告诉程式该做什么,比如:插入一个规则,还是在链的末尾增加一个规则,还是删除一个规则,下面会仔细地介绍。

match细致地描述了包的某个特点,以使这个包区别于其他任何的包。在这里,我们能够指定包的来源IP 地址,网络接口,端口,协议类型,或其他什么。下面我们将会看到许多不同的match。

最后是数据包的目标所在。若数据包符合任何的match,内核就用target来处理他,或说把包发往 target。比如,我们能够让内核把包发送到当前表中的其他链(可能是我们自己建立的),或只是丢弃这个包而没有什么处理,或向发送者返回某个特别的应答。下面有周详的讨论。


6.2. Tables

选项-t用来指定使用哪个表,他能够是下面介绍的表中的任何一个,默认的是 filter表。注意,下面的介绍只是章节表和链的摘要。

Table 6-1. Tables

Table (表名)Explanation (注释)
natnat表的主要用处是网络地址转换,即Network Address Translation,缩写为NAT。做过NAT操作的数据包的地址就被改变了,当然这种改变是根据我们的规则进行的。属于一个流的包只会经过这个表一次。假如第一个包被允许做NAT或Masqueraded,那么余下的包都会自动地被做相同的操作。也就是说,余下的包不会再通过这个表,一个一个的被NAT,而是自动地完成。这就是我们为什么不应该在这个表中做任何过滤的主要原因,对这一点,后面会有更加周详的讨论。PREROUTING 链的作用是在包刚刚到达防火墙时改变他的目的地址,假如需要的话。OUTPUT链改变本地产生的包的目的地址。POSTROUTING链在包就要离开防火墙之前改变其源地址。
mangle这个表主要用来mangle数据包。我们能够改变不同的包及包头的内容,比如 TTLTOSMARK。注意MARK并没有真正地改变数据包,他只是在内核空间为包设了一个标记。防火墙内的其他的规则或程式(如tc)能够使用这种标记对包进行过滤或高级路由。这个表有五个内建的链: PREROUTINGPOSTROUTING OUTPUTINPUT FORWARDPREROUTING在包进入防火墙之后、路由判断之前改变包,POSTROUTING是在任何路由判断之后。 OUTPUT在确定包的目的之前更改数据包。INPUT在包被路由到本地之后,但在用户空间的程式看到他之前改变包。FORWARD在最初的路由判断之后、最后一次更改包的目的之前mangle包。注意,mangle表不能做任何NAT,他只是改变数据包的 TTLTOSMARK,而不是其源目地址。NAT是在nat表中操作的。
filterfilter表是专门过滤包的,内建三个链,能够毫无问题地对包进行DROPLOGACCEPTREJECT等操作。FORWARD 链过滤任何不是本地产生的并且目的地不是本地(所谓本地就是防火墙了)的包,而 INPUT恰恰针对那些目的地是本地的包。OUTPUT 是用来过滤任何本地生成的包的。

上面介绍了三个不同的表的最基本的内容。您应该知道他们的使用目的完全不同,还要清楚每一条链的使用。假如您不了解,就可能会在防火墙上留下漏洞,给人以可乘之机。在章节表和链 中,我们已周详地讨论了这些必备的的表和链。假如您没有完全理解包是怎样通过这些表、链的话,我建议您回过头去再仔细看看。


6.3. Commands

在这一节里,我们将要介绍任何的command连同他们的用途。command指定iptables 对我们提交的规则要做什么样的操作。这些操作可能是在某个表里增加或删除一些东西,或做点儿其他什么。以下是iptables可用的command(要注意,如不做说明,默认表的是 filter表。):

Table 6-2. Commands

Command-A, --append
Exampleiptables -A INPUT ...

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