iptables中的tcp标志:RST SYN和RST以及SYN RST有什么区别?什么时候使用ALL?

Modified on: Fri, 19 Jul 2019 01:40:02 +0800

我正在为虚拟专用服务器开发防火墙,我正在研究的一个问题是端口扫描程序。 TCP标志用于保护。我有2个问题
规则:

-p tcp --tcp-flags SYN,ACK,FIN,RST SYN -j DROP

第一个参数表示检查带有标志SYN的数据包
第二个参数说明确保标志ACK,FIN,RST SYN设置为
如果是这种情况(有匹配),请删除tcp数据包

第一个问题:
我理解RST和RST / ACK的含义,但在第二个参数中使用了RST SYN
RST SYN和RST和SYN RST有什么区别?
3次握手中是否有“SYN RST”标志?

第二个问题是关于

之间的区别

-p tcp --tcp-flags SYN,ACK,FIN,RST SYN -j DROP    

-p tcp --tcp-flags ALL SYN,ACK,FIN,RST SYN -j DROP    

什么时候应该使用?
当我使用ALL时,这是否意味着如果带有syn标志的tcp数据包没有“和”FIN“和”RST SYN标志设置,那么将不会匹配?

最佳答案

此:

-p tcp --tcp-flags SYN,ACK,FIN,RST SYN -j DROP

表示“查看标志syn,ack,fin和rst,并匹配具有SYN设置标志的数据包,以及所有其他未设置的数据包”

tcp-flags的第一个参数是您正在考虑的标志,第二个参数是您要匹配的掩码。如果你正在使用

--tcp-flags SYN,ACK SYN

然后它将匹配[SYN = 1 ACK = 0]的数据包,但它不匹配[SYN = 1,ACK = 1]或[SYN = 0,ACK = 1]或[SYN = 0,ACK = 0]

在上面的规则中,您只匹配SYN数据包。


相关问答

添加新评论