第一步,首先确定你的系统已经安装Iptables.打开SSH终端,输入
whereis iptables
如果能看到如下类似信息,则已经安装了该软件,
iptables: /sbin/iptables /usr/share/iptables /usr/share/man/man8/iptables.8.gz
如果没有,则
apt-get install iptables
第二步
第二步:查看Iptables目前的配置信息
可以使用如下命令查看
iptables -L
如果你是第一次安装配置iptables,你可能会看到如下结果:
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
第三步:配置Iptables
配置Iptables
登陆SSH ,一个一个输入如下命令(该命令由V2EX ime整理 )
123456789101112 iptables -A FORWARD -m string --string "BitTorrent" --algo bm --to 65535 -j DROPiptables -A FORWARD -m string --string "BitTorrent protocol" --algo bm --to 65535 -j DROPiptables -A FORWARD -m string --string "peer_id=" --algo bm --to 65535 -j DROPiptables -A FORWARD -m string --string ".torrent" --algo bm --to 65535 -j DROPiptables -A FORWARD -m string --string "announce.php?passkey=" --algo bm --to 65535 -j DROPiptables -A FORWARD -m string --string "torrent" --algo bm --to 65535 -j DROPiptables -A FORWARD -m string --string "announce" --algo bm --to 65535 -j DROPiptables -A FORWARD -m string --string "info_hash" --algo bm --to 65535 -j DROPiptables -A FORWARD -m string --string "get_peers" --algo bm -j DROPiptables -A FORWARD -m string --string "announce_peer" --algo bm -j DROPiptables -A FORWARD -m string --string "find_node" --algo bm -j DROPiptables -A FORWARD -m string --algo bm --hex-string "|13426974546f7272656e742070726f746f636f6c|" -j DROP
意思就是不封端口而是阻止传输的过程。
实测有用,基本上屏蔽了bt,不过偶尔还是有些文件有几k的速度,但至少降速99.9%了吧。。
至于有人提到的用IPP2P或L7-filter ,暂时就没有折腾了
附上一个屏蔽邮件的规则:
1 iptables -A OUTPUT -p tcp -m multiport --dports 218,220,465,587,993,995,1109,24554,60177,60179 -m state --state NEW,ESTABLISHED -j REJECT --reject-with icmp-port-unreachable
1 iptables -A OUTPUT -p tcp -m multiport --dports 24,25,50,57,105,106,109,110,143,158,209 -m state --state NEW,ESTABLISHED -j REJECT --reject-with icmp-port-unreachable
这个规则是把所有与“邮”字有关的端口都封了。
最后iptables-save > /root/iptables.rules
重新加载规则
iptables-restore < /root/iptables.rules
第四步:保存生效的配置,让系统重启的时候自动加载有效配置
编辑创建如下文件:
vim /etc/network/if-pre-up.d/iptables
添加如下内容:
#!/bin/bash
/sbin/iptables-restore < /root/iptables.rules
最后,设置可执行仅限
chmod +x /etc/network/if-pre-up.d/iptables
大功告成。
本文部分步骤来自“zxsdw.com”博客
只留下80和443端口,然后把所有流量转到某个端口(如3328),然后装nginx,添加3328端口的虚拟机,想怎么过滤就怎么过滤,想截取信息也没问题