如何禁用任何类型的远程控制(SSH,X,NFS,SMB,...还有什么?)
对于特定用户?
或者反过来问:如何禁用远程控制
除特定用户外的所有用户?
有没有办法在一个地方完成这一切?
(通过将用户放入某个组,或者)
答案1
- SSH使用用户名和密码进行身份验证/授权。
- 这NFS 服务器使用 IP 地址进行安装身份验证/授权,并在使用单个文件时使用用户 ID(使用常规 Unix 权限)。它还可以使用其他方法,如 Kerberos。无论如何,这个想法是安装授权是按机器而不是按用户进行的。
- 桑巴大多数情况下使用用户名和密码进行挂载 (
security = user
),我认为 CIFS 也支持在访问单个文件时使用 UID,就像 NFS 一样。用户名和密码通常存储在名为 的文件中passdb.tdb
,而不是 中/etc/shadow
,因此passwd
不会更改 Samba 用户的密码。 - X使用 IP 地址进行身份验证/授权或 cookie。
如您所见,没有简单的方法可以为特定用户启用/禁用对这些服务的访问。
LE:一些网络服务,包括 RPC(由 NFS 使用)和 SSH,使用hosts_access基于主机的身份验证/授权机制 ( man hosts_access
)。您需要为此编辑/etc/hosts.allow
和/etc/hosts.deny
。与 iptables 相比,其优点是您不需要知道服务的端口,但并非所有服务都支持此机制。偏执的人会同时使用两者 :-)
LE2:hosts_access也支持用户名,但据我所知这是不安全的。
答案2
我不太确定 SMB 和 NFS,因为我从来没用过它们。在我的服务器上,SSH 是唯一可用于远程访问的服务,我可以使用 sshd_config 中的 AllowUser 指令来限制它们的访问。最新版本的 OpenSSH 有一个可以配置的内部 sftp 客户端(没有外部依赖项)。这使得设置仅对 chroot 目录具有 sftp 访问权限的用户变得相对容易——例如当他们需要更新 Web 内容等时。
Subsystem sftp internal-sftp
MatchUser Joe
ForceCommand internal-sftp
ChrootDirectory /var/www
the chroot dir and all above it must be:
* owned by root
* not group or other writable
答案3
您想了解 PAM:http://www.kernel.org/pub/linux/libs/pam/
干杯
答案4
带有默认 DROP 的限制性 IPTABLES 防火墙会非常有效(不要忘记为您自己和本地主机留一个漏洞)。;-) 手动逐个端口添加“允许”主机的静态 IP。没有 IP 不提供服务。注意:这不会阻止允许主机的允许端口隧道。此外,正如 Cristian Ciuputu 提到的(赞成票... ;-),samba 有一个“允许主机”部分,NFS 有一个您导出到的范围,可以禁用 X 转发,并且可以阻止或拒绝 ssh。