美文网首页
tcp-flags --syn

tcp-flags --syn

作者: 王金松 | 来源:发表于2020-12-12 20:26 被阅读0次

    场景: 我对A主机入站规则设置了默认deny,只开放80端口, 但是A在访问B的时候因为需要建立握手,在B向A发送syc,ack包的时候,因为A主机访问B时的端口是随机的,并且A主机入站规则默认是deny,所以syn,ack包到不了A,这个时候我对A设计的入站规则就不能使用了。
    最开始设置的deny

    iptables -A INPUT -p tcp -j REJECT
    

    因为三次握手发送的包都是不一样的,所以我可以单独拦截握手的其中一个环节。因为别人访问我的第一次握手的包的syn。而如果我去访问别人,别人回给我的包是二次握手的syn,ack。所以我在设置入站规则默认deny的时候,可以只对syn进行阻断
    最后设置的规则

    iptables -A INPUT -p tcp --syn -j REJECT
    iptables -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST,URG,PSH SYN -j REJECT
    iptables -A INPUT -p tcp --tcp-flags ALL SYN -j REJECT
    

    上面的三个规则是等价的,随意设置一个就可以
    ALL 代表的SYN,ACK,FIN,RST,URG,PSH

    -p tcp --tcp-flags LIST1 LIST2    
          匹配指定的TCP标记,有两个参数列表,列表内部用逗号为分隔符,两个列表之间用空格分开,
          LIST1用作参数检查,LIST2用作参数匹配。可用标志有:
               SYN( 同步; 表示开始会话请求 ),
               ACK(应答),
               FIN(结束; 结束会话),
               RST(复位;中断一个连接) ,
               PSH(推送; 数据包立即发送),
               URG(紧急 ), 
               ALL(指选定所有的标记),NONE(指未选定任何标记)
    
    

    相关文章

      网友评论

          本文标题:tcp-flags --syn

          本文链接:https://www.haomeiwen.com/subject/mpeygktx.html