我可以通过在文件DenyUsers
中的指令旁边添加用户名来限制某些用户,以防止通过 SSH 服务器登录系统。sshd_config
我可以对 scp 命令执行相同的操作吗?
编辑:
当我尝试在另一台计算机上或同一计算机上的用户运行 scp 时,scp 被阻止。在这种情况下,scp 会被阻止。但是,当我在受限用户的终端中运行命令时,scp 可以工作。也就是说,SSH 服务器不会阻止此出站连接。
是否可以配置 SSH 服务器以阻止此类出站请求?
答案1
文件中没有可用于sshd_config
控制用户是否可以调用ssh
、scp
、sftp
二进制文件(或任何其他二进制文件)进行出站连接的设置。
如果要限制用户调用该二进制文件,则必须更改权限,使他们缺乏对该二进制文件的执行权限。例如,您可以将要访问二进制文件的所有用户放入一个组中,将scp
二进制文件的组更改为该组,并将二进制文件的权限设置为 0750。
一般来说,在通用 Unix 系统上限制出站网络访问会很困难,因为有人可以通过多种方式进行连接。您可以尝试将它们放入受限的图形会话中,而无需访问终端(或“运行应用程序”窗口)像这样,但如果用户有 shell 访问权限,祝你好运。您还可以尝试强制过滤代理,但很难使其与 HTTPS 连接安全地工作。
答案2
您必须阻止用户在系统上创建二进制文件并使用 noexec 运行它(即至少安装/home
、/tmp
、/var/tmp
、/dev/shm
、 和/run/user/*
(这是一件有趣的事情,因为某个 Lennart 不够聪明,也太傲慢,不听别人的) )。
可能有一个 SSH 守护进程正在侦听 22 以外的端口。但是,如果您足以阻止与该端口的连接,那么您可以使用 Netfilter ( iptables
) 阻止与该端口的连接(对于某些用户)。
问题是阻塞是否scp
有用,因为有很多方法可以将数据从系统移出或移入系统......