如何阻止某些用户和出站连接的 scp 命令

如何阻止某些用户和出站连接的 scp 命令

我可以通过在文件DenyUsers中的指令旁边添加用户名来限制某些用户,以防止通过 SSH 服务器登录系统。sshd_config

我可以对 scp 命令执行相同的操作吗?

编辑:

当我尝试在另一台计算机上或同一计算机上的用户运行 scp 时,scp 被阻止。在这种情况下,scp 会被阻止。但是,当我在受限用户的终端中运行命令时,scp 可以工作。也就是说,SSH 服务器不会阻止此出站连接。

是否可以配置 SSH 服务器以阻止此类出站请求?

答案1

文件中没有可用于sshd_config控制用户是否可以调用sshscpsftp二进制文件(或任何其他二进制文件)进行出站连接的设置。

如果要限制用户调用该二进制文件,则必须更改权限,使他们缺乏对该二进制文件的执行权限。例如,您可以将要访问二进制文件的所有用户放入一个组中,将scp二进制文件的组更改为该组,并将二进制文件的权限设置为 0750。

一般来说,在通用 Unix 系统上限制出站网络访问会很困难,因为有人可以通过多种方式进行连接。您可以尝试将它们放入受限的图形会话中,而无需访问终端(或“运行应用程序”窗口)像这样,但如果用户有 shell 访问权限,祝你好运。您还可以尝试强制过滤代理,但很难使其与 HTTPS 连接安全地工作。

答案2

您必须阻止用户在系统上创建二进制文件并使用 noexec 运行它(即至少安装/home/tmp/var/tmp/dev/shm、 和/run/user/*(这是一件有趣的事情,因为某个 Lennart 不够聪明,也太傲慢,不听别人的) )。

可能有一个 SSH 守护进程正在侦听 22 以外的端口。但是,如果您足以阻止与该端口的连接,那么您可以使用 Netfilter ( iptables) 阻止与该端口的连接(对于某些用户)。

问题是阻塞是否scp有用,因为有很多方法可以将数据从系统移出或移入系统......

相关内容