使用 iptables 丢弃运营商的TCP/IP连接劫持包.
注意:目前仍在实验阶段,无法保证不会对正常的连接产生破坏.
- 保存
iptables-save-rule.conf
到本地, 修改{you WAN}
为你的wan介面.例ppp0
- 运行
iptables-restore
来恢复iptables
规则.
注意 :此操作会重置iptables
所有表.
##需求
- Module
bpf
- Module
u32
- Module
connmark
- Module
mark
connmark
的标志位需要0x7FF
长度来记录MSS值,还有0xFF
来记录TTL值.默认记录位置为0x07FF00FF
.mark
的标志位需要0x1
长度.默认记录位置为0x00000001
.
##工作原理
- 对每条
TCP
连接在握手时的SYN+ACK
包的TTL
值和MSS
协商值. - 并使用
TCP flags
标志为ACK|ACK&&PSH
,且TCP Data
长度为0或长度为MSS
协商值的包对保存的TTL
值更新. - 其余包在不符合
TTL
值时将被DROP
.