iptables建立规则和链的基本方法

通过向防火墙提供有关对来自某个源、到某个目的地或具有特定协议类型的信息包要做些什么的指令,规则控制信息包的过滤。通过使用 netfilter/iptables 系统提供的特殊命令 iptables,建立这些规则,并将其添加到内核空间的特定信息包过滤表内的链中。关于添加/除去/编辑规则的命令的一般语法如下:

代码如下:

$ iptables [-t table] command [match] [target]

表(table)

[-t table] 选项允许使用标准表之外的任何表。表是包含仅处理特定类型信息包的规则和链的信息包过滤表。有三种可用的表选项:filter、nat 和 mangle。该选项不是必需的,如果未指定,则 filter 用作缺省表。

filter 表用于一般的信息包过滤,它包含 INPUT、OUTPUT 和 FORWARD 链。nat 表用于要转发的信息包,它包含 PREROUTING、OUTPUT 和 POSTROUTING 链。如果信息包及其头内进行了任何更改,则使用 mangle 表。该表包含一些规则来标记用于高级路由的信息包,该表包含 PREROUTING 和 OUTPUT 链。

注:PREROUTING 链由指定信息包一到达防火墙就改变它们的规则所组成,而 POSTROUTING 链由指定正当信息包打算离开防火墙时改变它们的规则所组成。

命令(command)

上面这条命令中具有强制性的 command 部分是 iptables 命令的最重要部分。它告诉 iptables 命令要做什么,例如,插入规则、将规则添加到链的末尾或删除规则。以下是最常用的一些命令:

-A 或 –append:该命令将一条规则附加到链的末尾。

示例:

代码如下:

$ iptables -A INPUT -s 205.168.0.1 -j ACCEPT

该示例命令将一条规则附加到 INPUT 链的末尾,确定来自源地址 205.168.0.1 的信息包可以 ACCEPT。

-D 或 –delete:通过用 -D 指定要匹配的规则或者指定规则在链中的位置编号,该命令从链中删除该规则。下面的示例显示了这两种方法。

示例:

代码如下:

$ iptables -D INPUT –dport 80 -j DROP

$ iptables -D OUTPUT 3

第一条命令从 INPUT 链删除规则,它指定 DROP 前往端口 80 的信息包。第二条命令只是从 OUTPUT 链删除编号为 3 的规则。

-P 或 –policy:该命令设置链的缺省目标,即策略。所有与链中任何规则都不匹配的信息包都将被强制使用此链的策略。

示例:

代码如下:

$ iptables -P INPUT DROP

该命令将 INPUT 链的缺省目标指定为 DROP。这意味着,将丢弃所有与 INPUT 链中任何规则都不匹配的信息包。

-N 或 –new-chain:用命令中所指定的名称创建一个新链。

示例:

代码如下:

$ iptables -N allowed-chain

-F 或 –flush:如果指定链名,该命令删除链中的所有规则,如果未指定链名,该命令删除所有链中的所有规则。此参数用于快速清除。

示例:

代码如下:

$ iptables -F FORWARD

$ iptables -F

-L 或 –list:列出指定链中的所有规则。

示例:

代码如下:

$ iptables -L allowed-chain

匹配(match)

iptables 命令的可选 match 部分指定信息包与规则匹配所应具有的特征(如源和目的地地址、协议等)。匹配分为两大类:通用匹配和特定于协议的匹配。这里,我将研究可用于采用任何协议的信息包的通用匹配。下面是一些重要的且常用的通用匹配及其示例和说明:

-p 或 –protocol:该通用协议匹配用于检查某些特定协议。协议示例有 TCP、UDP、ICMP、用逗号分隔的任何这三种协议的组合列表以及 ALL(用于所有协议)。ALL 是缺省匹配。可以使用 ! 符号,它表示不与该项匹配。

示例:

代码如下:

$ iptables -A INPUT -p TCP, UDP

$ iptables -A INPUT -p ! ICMP

在上述示例中,这两条命令都执行同一任务 — 它们指定所有 TCP 和 UDP 信息包都将与该规则匹配。通过指定 ! ICMP,我们打算允许所有其它协议(在这种情况下是 TCP 和 UDP),而将 ICMP 排除在外。

-s 或 –source:该源匹配用于根据信息包的源 IP 地址来与它们匹配。该匹配还允许对某一范围内的 IP 地址进行匹配,可以使用 ! 符号,表示不与该项匹配。缺省源匹配与所有 IP 地址匹配。

示例:

代码如下:

$ iptables -A OUTPUT -s 192.168.1.1

$ iptables -A OUTPUT -s 192.168.0.0/24

$ iptables -A OUTPUT -s ! 203.16.1.89

第二条命令指定该规则与所有来自 192.168.0.0 到 192.168.0.24 的 IP 地址范围的信息包匹配。第三条命令指定该规则将与除来自源地址 203.16.1.89 外的任何信息包匹配。

-d 或 –destination:该目的地匹配用于根据信息包的目的地 IP 地址来与它们匹配。该匹配还允许对某一范围内 IP 地址进行匹配,可以使用 ! 符号,表示不与该项匹配。

示例:

代码如下:

$ iptables -A INPUT -d 192.168.1.1

$ iptables -A INPUT -d 192.168.0.0/24

$ iptables -A OUTPUT -d ! 203.16.1.89

目标(target)

我们已经知道,目标是由规则指定的操作,对与那些规则匹配的信息包执行这些操作。除了允许用户定义的目标之外,还有许多可用的目标选项。下面是常用的一些目标及其示例和说明:

ACCEPT:当信息包与具有 ACCEPT 目标的规则完全匹配时,会被接受(允许它前往目的地),并且它将停止遍历链(虽然该信息包可能遍历另一个表中的其它链,并且有可能在那里被丢弃)。该目标被指定为 -j ACCEPT。

DROP:当信息包与具有 DROP 目标的规则完全匹配时,会阻塞该信息包,并且不对它做进一步处理。该目标被指定为 -j DROP。

REJECT:该目标的工作方式与 DROP 目标相同,但它比 DROP 好。和 DROP 不同,REJECT 不会在服务器和客户机上留下死套接字。另外,REJECT 将错误消息发回给信息包的发送方。该目标被指定为 -j REJECT。

示例:

代码如下:

$ iptables -A FORWARD -p TCP –dport 22 -j REJECT

RETURN:在规则中设置的 RETURN 目标让与该规则匹配的信息包停止遍历包含该规则的链。如果链是如 INPUT 之类的主链,则使用该链的缺省策略处理信息包。它被指定为 -jump RETURN。示例:

代码如下:

$ iptables -A FORWARD -d 203.16.1.89 -jump RETURN

还有许多用于建立高级规则的其它目标,如 LOG、REDIRECT、MARK、MIRROR 和 MASQUERADE 等。

保存规则

现在,您已经学习了如何建立基本的规则和链以及如何从信息包过滤表中添加或删除它们。但是,您应该记住:用上述方法所建立的规则会被保存到内核中,当重新引导系统时,会丢失这些规则。所以,如果您将没有错误的且有效的规则集添加到信息包过滤表,同时希望在重新引导之后再次使用这些规则,那么必须将该规则集保存在文件中。可以使用 iptables-save 命令来做到这一点:

代码如下:

$ iptables-save > iptables-script

现在,信息包过滤表中的所有规则都被保存在文件 iptables-script 中。无论何时再次引导系统,都可以使用 iptables-restore 命令将规则集从该脚本文件恢复到信息包过滤表,如下所示:

代码如下:

$ iptables-rest

(0)

相关推荐

  • Ubuntu中保存iptables防火墙规则的例子

    buntu下保存iptables规则并开机自动加载的方法: Saving iptables 保存设置 机器重启后,iptables中的配置信息会被清空。您可以将这些配置保存下来,让iptables在启 ...

  • Outlook2013建立规则进行分类邮件的教程

    使用Exchange邮件系统时,本机Outlook收发邮件都会集中放在收件夹里,这样会显得比较乱没有条理.为了便于查看邮件,可以建立规则进行分类邮件,区别邮件来源. 方法一: 1.打开Outlook在 ...

  • excel表格中怎么建立超链接? excel超链接的添加方法

    当你在excel中制作大量的分类数据中可能会用到这个功能,比如有23个省和每个省的单位及学校做成一张表,最方便的就是把第一个表写做总表,其他分别写成浙江.江苏.福建等等,把每个省的数据放在各个省的小表 ...

  • 阿尔法路由器无法启用规则的原因及解决方法

    一、组网环境 用户在阿尔法 A的GE1/0/0端口下使能ACL,希望将流量规则路由到阿尔法 B,在实际使用中,阿尔法 A配置的规则不生效,报文依然按照路由表的最长匹配原则转发。 二、故障分析 1、规则 ...

  • XP下建立宽带连接的2种方法

    方法一: 如何在XP下创建ADSL宽带连接 1 首先保证您电脑网卡驱动程序安装完成,工作正常。 2 进到系统后依次点击开始-----程序------附件-------通讯----新建连接向导, 3 屏 ...

  • linux下面建立GPRS无线MODEM拨号的方法

    linux下面建立GPRS无线MODEM拨号的方法

  • linux如何查看防火墙是否开启?删除iptables规则

    iptables是linux下的防火墙组件服务,相对于windows防火墙而言拥有更加强大的功能,此咗嚛以centos系统为例.关于iptables的一般常见操作,怎么来判断linux系统是否启用了i ...

  • Win2000/XP中多种建立隐藏超级用户的方法

    一、如何在图形界面建立隐藏的超级用户 图形界面下适用本地或开3389终端服务的肉鸡上。上面我提到的那位作者说的方法很好,但是较为复杂,还要用到psu.exe(让程序以系统用户身份运行的程序),如果在肉 ...

  • Spring Data JPA 简单查询--方法定义规则

    一.常用规则速查 1 And 并且 2 Or 或 3 Is,Equals 等于 4 Between 两者之间 5 LessThan 小于 6 LessThanEqual 小于等于 7 GreaterT ...