3)匹配(match)
iptables命令的可选match部分指定信息包与规则匹配所应具有的特征(如源和目的地地址、协议等)。匹配分为两大类:通用匹配和特定于协议的匹配。这里,将研究可用于采用任何协议的信息包的通用匹配。下面是一些重要的且常用的通用匹配及其说明,如表2所示。
表2 通用匹配说明
通用匹配 |
说 明 |
-p或--protocol |
该通用协议匹配用于检查某些特定协议。协议示例有TCP、UDP、ICMP、用逗号分隔的任何这三种协议的组合列表以及ALL(用于所有协议)。ALL是默认匹配。可以使用!符号表示不与该项匹配 |
-s 或 --source |
该源匹配用于根据信息包的源IP地址来与它们匹配。该匹配还允许对某一范围内的IP地址进行匹配,可以使用!符号,表示不与该项匹配。默认源匹配与所有IP地址匹配 |
-d 或 --destination |
该目的地匹配用于根据信息包的目的地IP地址来与它们匹配。该匹配还允许对某一范围内IP地址进行匹配,可以使用!符号表示不与该项匹配 |
--sport |
指定匹配规则的源端口或端口范围 |
--dport |
指定匹配规则的目的端口或端口范围 |
-i |
匹配单独的网络接口或某种类型的接口设置过滤规则 |
4)目标(target)
前面已经讲过,目标是由规则指定的操作,对与那些规则匹配的信息包执行这些操作。除了允许用户定义的目标之外,还有许多可用的目标选项。下面是常用的一些目标及其示例和说明,如表3所示。
表3 目标项说明
目 标 项 |
说 明 |
ACCEPT |
当信息包与具有ACCEPT目标的规则完全匹配时,会被接受(允许它前往目的地) |
DROP |
当信息包与具有DROP目标的规则完全匹配时,会阻塞该信息包,并且不对它做进一步处理。该目标被指定为-j DROP |
REJECT |
该目标的工作方式与DROP目标相同,但它比DROP好。和DROP不同,REJECT不会在服务器和客户机上留下死套接字。另外,REJECT将错误消息发回给信息包的发送方。该目标被指定为-j REJECT |
RETURN |
在规则中设置的RETURN目标让与该规则匹配的信息包停止遍历包含该规则的链。如果链是如INPUT之类的主链,则使用该链的默认策略处理信息包。它被指定为-jump RETURN |
LOG |
表示将包的有关信息记录入日志 |
TOS |
表示改写数据包的TOS值 |