说明
列出某规则链中的所有规则。
命令
-F, --flush
范例
iptables -F INPUT
说明
删除某规则链中的所有规则。
命令
-Z, --zero
范例
iptables -Z INPUT
说明
将封包计数器归零。封包计数器是用来计算同一封包出现次数,是过滤阻断式攻击不可或缺的工具。
命令
-N, --new-chain
范例
iptables -N allowed
说明
定义新的规则链。
命令
-X, --delete-chain
范例
iptables -X allowed
说明
删除某个规则链。
命令
-P, --policy
范例
iptables -P INPUT DROP
说明
定义过滤政策。
也就是未符合过滤条件之封包,预设的处理方式。
命令
-E, --rename-chain
范例
iptables -E allowed disallowed
说明
修改某自订规则链的名称。
常用封包比对参数:
参数
-p, --protocol
范例
iptables -A INPUT -p tcp
说明
比对通讯协议类型是否相符,可以使用
!
运算子进行反向比对,例如:
-p ! tcp
,意思是指除
tcp
以外的其它类型,包含
udp
、
icmp ...
等。如果要比对所有类型,则可以使用
all
关键词,例如:
-p all
。
参数
-s, --src, --source
范例
iptables -A INPUT -s 192.168.1.1
说明
用来比对封包的来源
IP
,可以比对单机或网络,比对网络时请用数字来表示屏蔽,例如:
-s 192.168.0.0/24
,比对
IP
时
可以使用
!
运算子进行反向比对,例如:
-s ! 192.168.0.0/24
。
参数
-d, --dst, --destination
范例
iptables -A INPUT -d 192.168.1.1
说明
用来比对封包的目的地
IP
,设定方式同上。
参数
-i, --in-interface
范例
iptables -A INPUT -i eth0
说明
用来比对封包是从哪片网卡进入,可以使用通配字符
+
来做大范围比对,例如:
-i eth+
表示所有的
ethernet
网卡,也以使用
!
运算子进行反向比对,例如:
-i ! eth0
。
参数
-o, --out-interface
范例
iptables -A FORWARD -o eth0
说明
用来比对封包要从哪片网卡送出,设定方式同上。
参数
--sport, --source-port
范例
iptables -A INPUT -p tcp --sport 22
说明
用来比对封包的来源埠号,可以比对单一埠,或是一个范围,例如:
--sport 22:80
,表示从
22
到
80
埠之间都算是符合条件,如果要比对不连续的多个埠,则必须使用
--multiport
参数,详见后文。比对埠号时,可以使用
!
运算子进行反向比对。
参数
--dport, --destination-port
范例
iptables -A INPUT -p tcp --dport 22
说明
用来比对封包的目的地埠号,设定方式同上。
参数
--tcp-flags
范例
iptables -p tcp --tcp-flags SYN,FIN,ACK SYN
说明
比对
TCP
封包的状态旗号,参数分为两个部分,第一个部分列举出想比对的旗号,第二部分则列举前述旗号中哪些有被设
,未被列举的旗号必须是空的。
TCP
状态旗号包括:
SYN
(同步)、
ACK
(应答)、
FIN
(结束)、
RST
(重设)、
URG
(紧急)
PSH
(强迫推送)
等均可使用于参数中,除此之外还可以使用关键词
ALL
和
NONE
进行比对。比对旗号时,可以使用
!
运算子
行反向比对。
参数
--syn
范例
iptables -p tcp --syn
说明
用来比对是否为要求联机之
TCP
封包,与
iptables -p tcp --tcp-flags SYN,FIN,ACK SYN
的作用完全相同,如果使用
!
运算子,可用来比对非要求联机封包。
参数
-m multiport --source-port
范例
iptables -A INPUT -p tcp -m multiport --source-port 22,53,80,110
说明
用来比对不连续的多个来源埠号,一次最多可以比对
15
个埠,可以使用
!
运算子进行反向比对。
参数
-m multiport --destination-port
范例
iptables -A INPUT -p tcp -m multiport --destination-port 22,53,80,110
说明
用来比对不连续的多个目的地埠号,设定方式同上。
参数
-m multiport --port
范例
iptables -A INPUT -p tcp -m multiport --port 22,53,80,110
说明
这个参数比较特殊,用来比对来源埠号和目的埠号相同的封包,设定方式同上。注意:在本范例中,如果来源端口号为
80
目的地埠号为
110
,这种封包并不算符合条件。
参数
--icmp-type
范例
iptables -A INPUT -p icmp --icmp-type 8
说明
用来比对
ICMP
的类型编号,可以使用代码或数字编号来进行比对。请打
iptables -p icmp --help
来查看有哪些代码可
用。
参数
-m limit --limit
范例
iptables -A INPUT -m limit --limit 3/hour
说明
用来比对某段时间内封包的平均流量,上面的例子是用来比对:每小时平均流量是否超过一次
3
个封包。
除了每小时平均
次外,也可以每秒钟、每分钟或每天平均一次,默认值为每小时平均一次,参数如后:
/second
、
/minute
、
/day
。
除了进行封
数量的比对外,设定这个参数也会在条件达成时,暂停封包的比对动作,以避免因骇客使用洪水攻击法,导致服务被阻断。