SSH隧道日志记录?


13

我有一台希望允许我的朋友访问的运行SSH的计算机,但是我不希望他们通过SSH隧道使用我的Internet连接(尽管我想自己这样做)。有没有一种方法可以记录创建SSH隧道的时间以及由哪些(本地)用户创建的日志,或者(如果不能这样做)仅允许某些用户这样做?


您要禁止这些用户访问所有 Internet还是只允许端口转发?
2010年1

1
我只想禁止通过SSH进行端口转发和SOCKS代理。
Frxstrem 2010年

Answers:


10

如果您的朋友能够SSH到您的计算机上,则他们正在使用您的某些带宽,因此不可能完全阻止他们访问您的Internet连接。

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

我从未亲自设置过用户专用的防火墙,但我相信使用IPTables可以实现。另外,请记住,通过在服务器上上传大文件,用户仍然可能会占用大量带宽。如果您特别想避免这种情况,则必须限制每个用户的带宽


9

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

AllowTcpForwarding no

然后在文件末尾放

Match User yourusername
    AllowTcpForwarding yes

这将允许您和只有您自己转移到您的内心内容,但是正如João所说,除非您也禁用外壳程序访问,否则您将无法阻止它们运行自己的程序。


8

请注意,虽然您可以通过sshd禁用TCP转发,但是您还需要进一步限制用户的传出活动。给他们贝壳意味着给他们很多力量。

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

您可能想研究iptables所有者模块(man iptables,搜索所有者)和chroot jails,但这在不破坏外壳经验的情况下确实很难解决。


1

我知道的唯一选择是在系统级别禁用隧道。

编辑/ etc / ssh / sshd_config,然后更改/添加

AllowTcpForwarding no

请注意,虽然具有外壳程序访问权限,但无法阻止用户使用自己的二进制文件来转发连接。


1
这不是可接受的解决方案,因为我必须自己使用SSH隧道(正如我在问题中所说)。
Frxstrem 2010年

那实际上是在应用程序级别禁用它。
chiggsy


0

第一次迭代:

禁用ssh转发。在ssh中

可以为自己启用IPSec,并为服务器启用VPN。IPSec是网络级别的,因此不受SSH应用程序设置的影响。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.