Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103695522
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: LINUX

2008-05-08 10:26:54

 

LINUX iptable应用手册


第七篇


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目标可用於INPUT、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......

请继续看第八篇...

出处:南方Linux
阅读(327) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~