我有一个防火墙后面的arch linux机器。 我可以打开ssh端口的端口转发。 我想创build一个只能用于袜子代理的用户。
ssh -N -D 5000 user@server -p9000
5000将是用户使用socks5代理的本地端口
server:9000是server:9000的ssh端口(端口转发)
-N意味着一个terminal不应该被打开。 我将创build一个默认shell为/sbin/nologin 。
现在问题是用户可以转发本地端口( -L8080:server2:80 ),我想避免这种情况。
另外我希望代理服务器的内部networking没有代理连接任何东西。
这是否容易实现?
我还有其他的陷阱吗?
正如Jakuje所说,你可以使用选项来禁止转发。
所有者限制出站stream量
另外我希望代理服务器的内部networking没有代理连接任何东西。
你可以通过iptables owner模块来允许OUTPUT规则中的特定组和用户出站到特定的位置,比如你的ssh网关服务器,但是会阻塞其他的一切。 所有者模块可以在gid或uid上匹配。 这种方法也常与Tor结合使用。
您也可以使用它来允许特定的守护程序到达特定的服务。 例如,如果使用ldap,则可以允许ldap服务帐户查询您的ldap服务器,而不是别的。
如果在这个庄园使用iptables,你可能首先要允许(但logging)stream量,以便知道什么会被丢弃。
您可以在sshd_config禁止本地转发,例如:
Match User your_user AllowTcpForwarding no PermitOpen none
它不应该影响dynamic转发/ SOCKS代理。
另外我希望代理服务器的内部networking没有代理连接任何东西。
这需要在ssh其他地方设置。