在 的手册页中sshd_config
,对于该AllowTCPForwarding
选项,它指出:
允许Tcp转发
指定是否允许 TCP 转发。默认为“是”。请注意,禁用 TCP 转发不会提高安全性,除非用户也被拒绝 shell 访问,因为他们始终可以安装自己的转发器。
有人可以详细说明一下吗?我不明白有人如何安装自己的转发器来规避 TcpForwarding。是否必须安装某种代理服务器,然后创建到远程代理服务器的隧道?
答案1
嗯,SSH 转发是一种代理服务器。它的工作原理是在一侧接受连接,然后在另一侧建立连接,然后在两者之间转发数据。
您也可以轻松做到这一点。例如,使用 netcat:
nc -l -p 1234 ⇆ ssh user@remote 'nc remote2 80'
其中⇆
代表建立一个双向管。这或多或少应该可以做到(忽略任何缓冲问题)。
它不如内置的那么好,但是当然,只要在您选择的脚本语言上做一点工作,它就可以了。
答案2
具有 shell 访问权限的用户可以轻松地sshd
在非特权端口上使用他/她自己的配置(例如允许 TCP 转发)运行。因此,为常规系统守护进程禁用它没有多大意义,除非您进行了大量其他强化操作。