扩展模块的使用帮助:
CentOS 7,8: man iptables-extensions
CentOS 6: man iptables
iptables 在使用-p选项指明了特定的协议时,无需再用-m选项指明扩展模块的扩展机制,不需要手动加
载扩展模块
tcp 协议的扩展选项
[!] --source-port, --sport port[:port]:匹配报文源端口,可为端口连续范围
[!] --destination-port,--dport port[:port]:匹配报文目标端口,可为连续范围
[!] --tcp-flags mask comp
mask 需检查的标志位列表,用,分隔 , 例如 SYN,ACK,FIN,RST
comp 在mask列表中必须为1的标志位列表,无指定则必须为0,用,分隔tcp协议的扩展选项
范例:
--tcp-flags SYN,ACK,FIN,RST SYN 表示要检查的标志位为SYN,ACK,FIN,RST四个,其中SYN必
须为1,余下的必须为0,第一次握手
--tcp-flags SYN,ACK,FIN,RST SYN,ACK 第二次握手
#错误包
--tcp-flags ALL ALL
--tcp_flags ALL NONE
[!] --syn:用于匹配第一次握手, 相当于:–tcp-flags SYN,ACK,FIN,RST SYN
udp 协议的扩展选项
[!] --source-port, --sport port[:port]:匹配报文的源端口或端口范围
[!] --destination-port,--dport port[:port]:匹配报文的目标端口或端口范围
icmp 协议的扩展选项
[!] --icmp-type {type[/code]|typename}
type/code
0/0 echo-reply icmp应答
8/0 echo-request icmp请求
范例:限制某个固定IP不能ssh端口远程连接,21:23是区间
[root@localhost ~]# iptables -A INPUT -s 172.31.0.7 -p tcp --dport 21:23 -j REJECT
范例:限制某个固定IP,icmp请求就拒绝
[root@localhost ~]# iptables -A INPUT -s 172.31.0.7 -p icmp --icmp-type 8 -j REJECT
隐式扩展
# 在序号3插入一条允许固定ip访问80端口
[root@localhost ~]# iptables -I INPUT 3 -s 172.31.0.7 -p tcp --dport 80 -j ACCEPT
范例:实现了本机能ping通某个ip,但是对方不能ping通本机
[root@localhost ~]