SSH 隧道日志记录?

SSH 隧道日志记录?

我有一台运行 SSH 的计算机,我想让我的朋友访问它,但我不想让他们通过 SSH 隧道使用我的互联网连接(虽然我自己想这样做)。有没有办法记录 SSH 隧道的创建时间以及由哪些(本地)用户创建,或者,如果这不可能,只允许某些用户这样做?

答案1

如果您的朋友能够通过 SSH 访问您的计算机,那么他们就会使用您的部分带宽,因此不可能完全阻止他们访问您的 Internet 连接。

话虽如此,一种解决方案是限制您的朋友可以使用您的连接做什么。您可以设置防火墙,将朋友的 IP 列入白名单,将其他所有 IP 列入黑名单。这样,您的朋友可以通过 SSH 连接到您的计算机,但从那里,他们无法访问除他们自己的 IP 之外的任何其他 IP。

我从来没有设置过用户特定的防火墙我相信这是可以实现的IP表。另外,请记住,您的用户仍然可能通过在您的服务器上上传大文件来占用大量带宽。如果您特别想防止这种情况发生,您必须限制带宽每个用户

答案2

您要确保 /etc/ssh/sshd_config 包含

AllowTcpForwarding no

然后在文件末尾输入

Match User yourusername
    AllowTcpForwarding yes

这将允许您(且只允许您)根据自己的心意进行端口转发,但正如 João 所说,除非您也禁用 shell 访问,否则您将无法阻止他们运行自己的程序。

答案3

请注意,虽然您可以通过 sshd 禁用 TCP 转发,但您需要采取更多措施来限制用户的传出活动。为他们提供 shell 意味着赋予他们很多权力。

例如,如果他们可以将文件 scp 到服务器并执行 /home 中的文件,他们只需上传 pppd 二进制文件,然后使用它通过 SSH 运行 PPP。如果您允许传入连接,他们只需通过/usr/sbin/sshd -p 9999 -f special_sshd_config该 sshd 运行和使用您的服务器即可。

您可能需要查看 iptables 所有者模块(man iptables,搜索所有者)和 chroot jails,但如果不破坏他们的 shell 体验,这个问题真的很难解决。

答案4

相关内容