当阻止 vps 回源国内后,vps 将不能 ping 通,也不能直接连 ssh,但 ss 服务是可以正常使用的。这样可以减少代理服务器的特征,降低被发现的几率。

本文内的命令仅适用于 Debian 系的 Linux 发行版。

添加 iptables 的 geoip 模块

apt-get install xtables-addons-common xtables-addons-dkms libtext-csv-xs-perl
/usr/lib/xtables-addons/xt_geoip_dl
mkdir /usr/share/xt_geoip
/usr/lib/xtables-addons/xt_geoip_build -D /usr/share/xt_geoip GeoIPCountryWhois.csv GeoIPv6.csv

添加 iptables 的阻止回源国内规则

iptables -A OUTPUT -m geoip --dst-cc CN  -j REJECT

保存和恢复 iptables 规则

iptables 的规则会在 vps 重启后清空,所以需要手动保存和恢复。

保存

iptables-save > /etc/iptables/rules.v4

恢复

iptables-restore < /etc/iptables/rules.v4

自动保存和恢复 iptables 规则的包

从 Ubuntu 10.04 LTS (Lucid) 和 Debian 6.0 (Squeeze) 版本开始,可以通过安装一个名为 “iptables-persistent” 的包,安装后它以守护进程的方式来运行,系统重启后可以自动将保存的内容加载到iptables中。当然前提也是需要先保存规则。

安装

apt-get install iptables-persistent

保存规则

service  iptables-persistent save

在 Debian 7 中安装完后会自动提示是否保存规则。


出现的问题

因为我启用 ss 服务用的是 ss-bash,而 ss-bash 监控流量依赖的是 iptables ,所以这就会导致在添加了阻止回源国内的规则后 ss 连接不上。解决方法:先启动 ss-bash ,添加用户端口,即添加 ss 的 iptables 规则。然后添加阻止回源国内规则。因为 iptables 的规则遵循先后关系,所以会放行 ss 的端口。


via: