我在防火墙后面有一台 Arch linux 机器。我可以为 ssh 端口打开一个端口转发。我想创建一个只能用于 socks 代理的用户。
ssh -N -D 5000 user@server -p9000
5000
将是用户用于 socks5 代理的本地端口
server:9000
是服务器的ssh端口(端口转发)
-N
表示不应打开终端。我将使用默认 shell 创建用户/sbin/nologin
。
现在的问题是用户可以转发本地端口(-L8080:server2:80
),我想避免这种情况。
此外,我希望代理不代理与服务器内部网络中任何内容的连接。
这是否容易实现?
我还需要考虑其他陷阱吗?
您可以在 中禁止本地转发
sshd_config
,例如:它不应该影响动态转发/SOCKS 代理。
这需要在其他地方设置,然后在
ssh
.正如Jakuje提到的,您可以使用选项来禁止转发。
按所有者限制出站流量
您可以使用 iptables
owner
模块来允许特定组和用户在OUTPUT
规则中出站到特定位置,例如您的 ssh 网关服务器,然后阻止其他所有内容。所有者模块可以匹配 gid 或 uid。这种方法也常与 Tor 结合使用。您还可以使用它来允许特定的守护进程访问特定的服务。例如,如果使用 ldap,您可以允许 ldap 服务帐户查询您的 ldap 服务器,仅此而已。
如果在这个庄园中使用 iptables,您可能首先要允许(但记录)流量,以便您知道会丢弃什么。