您的位置:首页 > 运维架构 > Linux

LINUX iptable应用手册(七)

2008-07-29 11:07 176 查看
第七篇

pkttype过滤条件

以封包目的地地址的分类(广播、群播、直播)为过滤条件《表53》说明本过滤条件的选项。

==========================
诀窍
本过滤条件必须在核心支持CONFIG_IP_NF_,MATCH_PKTTYPE组态时才有效。
==========================

关于IPv4标头的结构,读参阅《图5》。





关于群播地址的讨论,请见RFC 1112,RFC 1122的3.2.1.3和3.3.6小节。

Pool过滤条件


查封包的来源或目的地IP地址是否为「已知地址」之一。初始的已知地址群是透过pools工具程序与/etc/ippool.conf组态档(定义位址群
编号与名称对应关系的档案)来提供,透过POOL目标可动态收集已知地址。使用本过滤条件之前,必须事先准备好/etc/ippool.conf组态档。
《表55》说明本筛选条件的选项。



pool参数可以用「位址群编号」表示,或是/etc/ippool.conf档案裡所列的名称之一。

相关参考:(POOL目标)

POOL目标

将符合条件的来源或目的地位址加入指定的位址群,使其可用於后续的pool过滤条件。位址群的管理工作是透过ippool工具程式与/etc/ippool.conf组态档(定义位址群编号与名称对
应关系的档案)。在开始使用POOL目标之前,必须先準备好/etc/ippool.conf组态档。《表56》說明本目标的选项。



pool参数可以用「位址群编号」表示,或是/etc/ippool.conf档案裡所列的名称之一。

相关参考:《pool过滤条件》

psd(Port Scan Detector)过滤条件


测外界对於本机的通讯端口扫瞄(port
scans)行为;侦测原理如下:监测各通讯端口的连線来源、开始连線时间、持续时间(两次连線之间的间隔时间),将收集到的监测资料与你指定的参数(由
《表57》所述的选项提供)相互比较,辑此分辨port scan与正常连線的行为差異。



范例:

iptables -A INPUT -m psd -j DROP

关於其它侦测可疑行为的方法,请参閱《recent过滤条件》。

QUEUE目标

QUEUE是iptables內建的目标之一,其作用是将符合条件的协定排入一个可供userspace存取的佇列;於userspace的程式可透过libipq函式库来存取排入佇列的封包。使用QUEUE目

之前,必须先载入ip_queue核心模组。/proc/sys/net/ipv4/ip_queue_maxlen档案合有佇列的深度上限,从
/proc/net/ip_queue档案可以观察佇列的状态。如果userspace沒有任何程式接手处理佇列裡的包,QUEUE的效果相当於
DROP。

quota筛选条件

维持条件成立,直到包量超过限额。《表58》說明此过滤条件唯一选项。



举例来說,使用下列两条规则.可在port $PORT收到$QUOTA个位元组之后,就开始丟棄后续收到的封包:

iptables -A INPUT -p tcp - -dport $PORT -m quota
- -quota $QUOTA -j ACCEPT

iptables A INPUT -p tcp - -dport $PORT -j DROP

quota过滤条件沒提供可以重设配额的方法,也不能使用速率限制代替资料量限制。如果需要限制速率,请参考《limit过滤条件》。

random过滤条件

随意使条件成立或不成立,随机率而定。random可用於模拟「不稳定连線」以测试系统的強固性。《表59》說明此过滤条件唯一的选项。



举例来說,如果想要随机丟掉10%左右的外来ping封包:

iptables -A INPUT -p icmp - -icmp-type pinng -m random
-average 10 -j DROP

realm过滤条件

本过滤条件使iptables可以比对「routing realms」(由IP命令定义並使用),以支援进阶的选径应用。《表60》說明此筛选条件唯一的选项。



recent过滤条件

过滤出来源IP位址最近曾出现於某类活动(由选项指定)的所有包。《表61》說明本过滤条件的选项。



举例来說,若想成立一个BADGUY名单,将试图连線到本机port 139 (IMAP协定)的来源位址纳入此名单,并丟棄任何来自这些位址的包,则下列两条规则可帮你达成心愿:

iptable -A PREROUTING -p tcp - -dport imap
-m recent - -name BADGUY --set

iptable -A PREROUTING -m recent - -name BADGUY
-seconds 60 -j DROP

另一种可疑的恶性存取的方法是psd过滤条件。你可以使用 psd与本过滤条件的- -set选项,收集曾经发起port scan的来源位址。

Record-rpc过滤条件

过滤出先前留经透过RPC portmapper服务查询的端口的连线之来源位址。Record-rpc很适合来过滤掉烦人的RPC骚扰。本过滤条件沒有任何附加选项。

一般来说,你不应该接受来自Internet的RPC包,否则,就等於是拿你的NFS或其它PRC-based 服务开玩笑。

这类服务应该开放给足以完全信赖的主机,而这类主机根本不可能来自Internet。

相关参考:/etc/rpc组态档(用於设定RPC portmapper)。

REDIRECT目标

将包的目的地位址改成本机的IP位址之一,借此达到导引(redirect)封包的效果。若封包是本机所產生的,其目的地位址将被改为127.0.0.1(本机绕回介面的位址);若封包是来自某网络介面,则改成第一个系结到该介面的位址,《表62》說明本目标唯一的选项。

================================
诀窍
REDIRECT目标必须在核心支援CONFlG_IP_NF_TARGET_REDIRECT组态时才有效。
================================

REDIRECT目标主要是用於nat表格的PREROUTING与OUTPUT链结。



相关参考:《DNAT目标》提供更细腻的目的地位址操作。

REJECT目标

拒收封包,並传送一个ICMP通知讯息给包来源。一般来说,对於源自外部网络的恶性包,是许应该使用DROP会比较适当。REJECT通常用於应付源自內部网路的包,如此有助於解決(或发现)网络问题。《表63》說明REJECT目标唯一的选项。

===================================
诀窍
REJECT目标必须在核心支援CONFIG_IP_NF_TARGET_REJECT组态时才有效。
===================================

REJECT目标可用於INP
4000
UT、FORWARD和OUTPUT链结。



如果没有指定 - -reject-with选项,预设的type是icmp-port-unreachable。



相关参考:《DROP目标》,直接丟棄包,不回覆任何信息给寄送方。

RETURN目标

RETURN是iptables的內建目标之一,其作用有点类似ACCEPT,但是仅供使用者自订的链结使用。RETURN的用途是将控制权交回calling chain(使用 -j 跳到目前链结的那个串联。

相关参考:《ACCEPT目标》

ROUTE目标

让符合条件的包绕过正常的选径逻辑。而直接以选项提供的指示来決定其去向,包的內容本身不会被修改。ROUTE目标只能用於mangle表格的PREROUTING链结。《表65》說明ROUTE目标的选项。



举例来說。若要从eth2介面送出符合条件的包:

iptable -t mangle -A PREROUTING … -j ROUTE
-iface eth2

SAME目标

SAME的处理流程以像SNAT,但是当你提供一个以上的来源位址时,则尽量让相同目的地位址的连线,都使用相同的来源位址。《表66》說明本目标的选项。



To be continued......
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息