防止 SSH 端口转发穿透防火墙

网络上很多文章在描述如何利用 SSH 的端口转发功能穿透防火墙,访问防火墙后面的服务。这里我们说说如何防止这样的行为。

通过 sshd_config
这种方法只适用于已知需要转发的端口并且数量不大,例如只让用户能够转发 127.0.0.1:8000 和 127.0.0.1:9000。在 /etc/ssh/sshd_config 中增加

PermitOpen 127.0.0.1:8000
PermitOpen 127.0.0.1:9000

通过 iptables
这种方法适用于只限制某基些主机端口对,例如做代理服务时希望禁止用户(fwd 组)转发 127.0.0.1 的所有端口,其它的都能转发。

sudo iptables -I OUTPUT -m owner --gid-owner fwd -o lo -j DROP

这里是禁止了 fwd 组用户的数据包从 lo 接口外出,iptables 可以 match 出用户(–uid-owner)、组(–gid-owner)、进程(–pid-owner)、命令(–cmd-owner),具体看 man iptables。

Over!

One thought on “防止 SSH 端口转发穿透防火墙”

Leave a Reply to Bubuto Cancel reply

Your email address will not be published. Required fields are marked *