1、iptables -p tcp --tcp-flags SYN,FIN,ACK SYN表示匹配那些SYN标记被配置而FIN和ACK标记没有配置的包,注意各标记之间只有一个逗号而没有空格。
2、--tcp-flags ALL NONE匹配任何标记都未置1的包。
3、iptables -p tcp --tcp-flags ! SYN,FIN,ACK SYN表示匹配那些FIN和ACK标记被配置而SYN标记没有配置的包,注意和例1比较一下。
1、iptables -p tcp --tcp-flags SYN,FIN,ACK SYN表示匹配那些SYN标记被配置而FIN和ACK标记没有配置的包,注意各标记之间只有一个逗号而没有空格。
2、--tcp-flags ALL NONE匹配任何标记都未置1的包。
3、iptables -p tcp --tcp-flags ! SYN,FIN,ACK SYN表示匹配那些FIN和ACK标记被配置而SYN标记没有配置的包,注意和例1比较一下。
UDP matches是在指定--protocol UDP时自动装入的。UDP是一种无连接协议,所以在他打开、关闭连接连同在发送数据时没有多少标记要配置,他也无需任何类型的确认。数据丢失了,就丢失了(不会发送ICMP错误信息的)。这就说明UDP matches要比TCP matches少多了。即使UDP和ICMP是无连接协议,状态机制也能够很好的工作,就象在TCP上相同,这在前面讨论过。
Table 6-6. UDP matches
| Match | --sport, --source-port |
| Example | iptables -A INPUT -p udp --sport 53 |
| Explanation | 基于UDP包的源端口来匹配包,端口的指定形式和TCP matches中的--sport完全相同。 |
| Match | --dport, --destination-port |
| Example | iptables -A INPUT -p udp --dport 53 |
| Explanation | 基于UDP包的目的端口来匹配包,端口的指定形式和TCP matches中的--sport完全相同。 |
ICMP协议也是无连接协议,ICMP包更是短命鬼,比UDP的还短。ICMP协议不是IP协议的下属协议,而是他的辅助者,其主要作用是报告错误和连接控制。ICMP包的头和IP的很相似,但又有很多不同。这个协议最主要的特点是他有很多类型,以应对不同的情况。比如,我们想访问一个无法访问的地址,就会收到一个ICMP host unreachable信息,他的意思是主机无法到达。在附录ICMP类型里有完整的ICMP类型列表。虽然有这么多类型,但只有一个 ICMP matche,这就足够对付他们了。这个matche是在指定--protocol ICMP时自动装入的。注意任何的通用匹配都能够使用,这样我们就能够匹配ICMP包的源、目地址。
Table 6-7. ICMP matches