设置只能用于 socks5 代理的 ssh 帐户

设置只能用于 socks5 代理的 ssh 帐户

我有一台位于防火墙后面的 Arch Linux 机器。我可以为 ssh 端口打开端口转发。我想创建一个只能用于 socks 代理的用户。

ssh -N -D 5000 user@server -p9000

5000将是用户用于 socks5 代理的本地端口

server:9000是服务器的 ssh 端口(端口转发)

-N表示不应打开终端。我将创建默认 shell 为 的用户/sbin/nologin

现在的问题是用户可以转发本地端口(-L8080:server2:80),我想避免这种情况。

我还希望代理不代理与服务器内部网络中的任何内容的连接。

这是否能轻易实现?

还有其他陷阱需要考虑吗?

答案1

作为贾库杰提到,您可以使用选项来禁止转发。

按所有者限制出站流量

我还希望代理不代理与服务器内部网络中的任何内容的连接。

您可以使用 iptablesowner模块允许规则中的特定组和用户出站OUTPUT到特定位置(例如您的 ssh 网关服务器),但阻止其他所有内容。所有者模块可以根据 gid 或 uid 进行匹配。此方法也常与 Tor 结合使用。

您还可以使用此功能允许特定守护进程访问特定服务。例如,如果使用 ldap,则可以允许 ldap 服务帐户查询您的 ldap 服务器,而不查询其他任何内容。

如果以这种方式使用 iptables,您可能首先要允许(但记录)流量,以便了解哪些流量会被丢弃。

答案2

您可以在 中禁止本地转发sshd_config,例如:

Match User your_user
  AllowTcpForwarding no
  PermitOpen none

它不应该影响动态转发/SOCKS代理。

我还希望代理不代理与服务器内部网络中的任何内容的连接。

这需要在 之外的其他地方进行设置ssh

相关内容