通过ping packet size来防封锁防探测

date
Feb 10, 2022
slug
tip-ping-packet-size-as-password
status
Published
summary
小技巧 科学上网 只有ping length对了的ip才能正确链接端口
tags
tip
type
Post
URL

Problem & Summary

    Soltion

    # flush to delete all the existing rules
    iptables -F
    
    # whitelist 特定ip
    iptables -A INPUT -s 206.190.239.1 -j ACCEPT
    iptables -A OUTPUT -d 206.190.239.1 -j ACCEPT
    
    # 259200 = 3600*24*3 = 3 days
    # 300 = 60*5 = 5 mins
    iptab_timeout_sec=100
    iptab_length_pass=800
    # 具体length的值为你要设置的ping值+28,比如你设置密码为1000字节,那么命令行参数length就为1028
    # 增加了防止ping暴力探测字节密码,请务必注意默认屏蔽了65字节到1500字节的ping,只要ping了其中一个非指定字节,默认封IP $iptab_timeout_sec秒,测试时请给自己留个白名单ip以免把自己挡在服务器外
    
    iptables -A INPUT -p icmp --icmp-type 8 -m length --length 93:$(($iptab_length_pass+28-1)) -m recent --set --name fuckgfw --rsource -j DROP
    iptables -A INPUT -p icmp --icmp-type 8 -m length --length $(($iptab_length_pass+28+1)):1528 -m recent --set --name fuckgfw --rsource -j DROP
    iptables -A INPUT -p icmp --icmp-type 8 -m length --length $(($iptab_length_pass+28)) -m recent --rcheck --seconds $iptab_timeout_sec --name fuckgfw --rsource -j DROP
    iptables -A INPUT -p tcp --dport 1:65535 --syn -m recent --rcheck --seconds $iptab_timeout_sec --name fuckgfw --rsource -j DROP
    iptables -A INPUT -p udp --dport 1:65535 -m recent --rcheck --seconds $iptab_timeout_sec --name fuckgfw --rsource -j DROP
    iptables -A INPUT -p icmp --icmp-type 8 -m length --length $(($iptab_length_pass+28)) -m recent --set --name v2port --rsource -j ACCEPT
    iptables -A INPUT -p tcp --dport 443 --syn -m recent --rcheck --seconds 3600 --name v2port --rsource -j ACCEPT
    iptables -A INPUT -p udp --dport 443 -m recent --rcheck --seconds 3600 --name v2port --rsource -j ACCEPT
    iptables -A INPUT -p tcp --dport 8443 --syn -m recent --rcheck --seconds 3600 --name v2port --rsource -j ACCEPT
    iptables -A INPUT -p udp --dport 8443 -m recent --rcheck --seconds 3600 --name v2port --rsource -j ACCEPT
    
    
    
    # save rules
    mkdir /etc/iptables
    apt install -y iptables-persistent
    iptables-save > /etc/iptables/rules.v4 # 这样才能用persistent
    
    
    # 将来恢复(如有iptables-persistent 就不需要了)
    # iptables-restore < /etc/iptables/rules.v4
    
    # 查看防火墙规则是否生效
    iptables -L -n
    notion image

    客户端

    ping -s 800 -c 4 target-domain-or-ip
    notion image

    Screenshots

    notion image

    © Ying Bun 2021 - 2024