通过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
客户端
ping -s 800 -c 4 target-domain-or-ip