Frxstrem Asked: 2010-12-11 11:34:46 +0800 CST2010-12-11 11:34:46 +0800 CST 2010-12-11 11:34:46 +0800 CST SSH隧道记录? 772 我有一台运行 SSH 的计算机,我想让我的朋友访问它,但我不希望他们通过 SSH 隧道使用我的互联网连接(尽管我自己也想这样做)。有没有办法记录何时创建 SSH 隧道以及由哪些(本地)用户创建,或者,如果不可能,只允许某些用户这样做? server ssh tunnel 6 个回答 Voted Best Answer Olivier Lalonde 2010-12-13T08:59:46+08:002010-12-13T08:59:46+08:00 如果您的朋友能够通过 SSH 连接到您的计算机,那么他们正在使用您的一些带宽,因此不可能完全阻止他们访问您的 Internet 连接。 话虽如此,一种解决方案是限制您的朋友对您的连接可以做什么。您可以设置防火墙,将您朋友的 IP 列入白名单,并将其他所有内容列入黑名单。这样,您的朋友可以通过 SSH 连接到您的计算机,但从那里无法访问除他们自己的 IP 之外的任何其他 IP。 我自己从未设置过用户特定的防火墙,但我相信可以使用IPTables来实现。另外,请记住,您的用户仍然可能通过在您的服务器上上传大文件来消耗大量带宽。如果您特别想防止这种情况,则必须限制每个用户的带宽。 user10117 2011-02-03T13:19:46+08:002011-02-03T13:19:46+08:00 您要确保 /etc/ssh/sshd_config 包含 AllowTcpForwarding no 然后在文件的末尾放 Match User yourusername AllowTcpForwarding yes 这将允许您并且只有您可以将端口转发到您心中的内容,但正如 João 所说,除非您也禁用 shell 访问,否则您将无法阻止他们运行自己的程序。 SpamapS 2010-12-13T08:39:51+08:002010-12-13T08:39:51+08:00 请注意,虽然您可以通过 sshd 禁用 TCP 转发,但您需要进一步限制用户的传出活动。给他们一个外壳意味着给他们很大的权力。 例如,如果他们可以 scp 文件到服务器并在 /home 中执行文件,他们可以简单地上传 pppd 二进制文件,并使用它通过 SSH 运行 PPP。如果您允许传入连接,他们可以/usr/sbin/sshd -p 9999 -f special_sshd_config通过该 sshd 运行和使用您的服务器。 您可能想查看 iptables 所有者模块(man iptables,搜索所有者)和 chroot 监狱,但这真的很难在不破坏他们的 shell 体验的情况下解决。 João Pinto 2010-12-11T11:52:42+08:002010-12-11T11:52:42+08:00 我知道的唯一选择是在系统级别禁用隧道。 编辑 /etc/ssh/sshd_config,并更改/添加 AllowTcpForwarding no 请注意,虽然拥有 shell 访问权限,但无法阻止用户使用自己的二进制文件来转发连接。 sendmoreinfo 2011-10-15T13:50:30+08:002011-10-15T13:50:30+08:00 这也被问到服务器故障https://serverfault.com/questions/181660/how-do-i-log-ssh-port-forwards并且有一个补丁:http ://blog.rootshell.be/2009/ 03/01/继续关注 ssh 转发/ chiggsy 2010-12-13T17:32:35+08:002010-12-13T17:32:35+08:00 第一次迭代: 为他们禁用 ssh 转发。在 ssh 您为自己启用 IPSec 并为您的服务器启用 VPN。IPSec 是网络级别的,因此不受 SSH 应用程序设置的影响。
如果您的朋友能够通过 SSH 连接到您的计算机,那么他们正在使用您的一些带宽,因此不可能完全阻止他们访问您的 Internet 连接。
话虽如此,一种解决方案是限制您的朋友对您的连接可以做什么。您可以设置防火墙,将您朋友的 IP 列入白名单,并将其他所有内容列入黑名单。这样,您的朋友可以通过 SSH 连接到您的计算机,但从那里无法访问除他们自己的 IP 之外的任何其他 IP。
我自己从未设置过用户特定的防火墙,但我相信可以使用IPTables来实现。另外,请记住,您的用户仍然可能通过在您的服务器上上传大文件来消耗大量带宽。如果您特别想防止这种情况,则必须限制每个用户的带宽。
您要确保 /etc/ssh/sshd_config 包含
然后在文件的末尾放
这将允许您并且只有您可以将端口转发到您心中的内容,但正如 João 所说,除非您也禁用 shell 访问,否则您将无法阻止他们运行自己的程序。
请注意,虽然您可以通过 sshd 禁用 TCP 转发,但您需要进一步限制用户的传出活动。给他们一个外壳意味着给他们很大的权力。
例如,如果他们可以 scp 文件到服务器并在 /home 中执行文件,他们可以简单地上传 pppd 二进制文件,并使用它通过 SSH 运行 PPP。如果您允许传入连接,他们可以
/usr/sbin/sshd -p 9999 -f special_sshd_config
通过该 sshd 运行和使用您的服务器。您可能想查看 iptables 所有者模块(man iptables,搜索所有者)和 chroot 监狱,但这真的很难在不破坏他们的 shell 体验的情况下解决。
我知道的唯一选择是在系统级别禁用隧道。
编辑 /etc/ssh/sshd_config,并更改/添加
请注意,虽然拥有 shell 访问权限,但无法阻止用户使用自己的二进制文件来转发连接。
这也被问到服务器故障https://serverfault.com/questions/181660/how-do-i-log-ssh-port-forwards并且有一个补丁:http ://blog.rootshell.be/2009/ 03/01/继续关注 ssh 转发/
第一次迭代:
为他们禁用 ssh 转发。在 ssh
您为自己启用 IPSec 并为您的服务器启用 VPN。IPSec 是网络级别的,因此不受 SSH 应用程序设置的影响。