Linux:如何禁用特定用户的任何types的远程控制?

如何禁用任何types的远程控制(SSH,X,NFS,SMB,… 还有什么?
对于某个用户

或者,反过来问:如何禁用遥控器
除了某个用户以外的所有用户

有没有办法在一个地方做到这一点?
通过将用户放在某个组中,或者等等

  • SSH使用用户名和密码进行authentication/授权。
  • NFS服务器使用IP地址进行身份validation/授权,使用单个文件时使用的用户ID(使用常规的Unix权限)。 也可以使用其他方法,如Kerberos。 无论如何,这个想法是,安装授权是每台机器完成,而不是每个用户。
  • Samba使用用户名和密码来安装大部分时间( security = user ),我认为CIFS在访问单个文件(如NFS)时也支持使用UID。 用户名和密码通常存储在名为passdb.tdb的文件中,而不是在/etc/shadow ,所以passwd不会更改Samba用户的密码。
  • X使用IP地址进行authentication/授权或cookie。

正如你所看到的,没有简单的方法来启用/禁用特定用户对这些服务的访问。

LE:一些networking服务,包括RPC(由NFS使用)和SSH,使用hosts_access机制( man hosts_access )进行基于主机的authentication/授权。 你需要为此编辑/etc/hosts.allow/etc/hosts.deny 。 与iptables相比,优点是你不需要知道服务的端口,但并不是所有的服务都支持这种机制。 偏执的人会使用:-)

LE2: hosts_access也支持用户名,但AFAIK这是不安全的。

我不确定SMB和NFS,因为我从来没有使用它们。 在我的服务器上,SSH是唯一可用于远程访问的服务,我可以用sshd_config中的AllowUser指令限制他们的访问。 使用最新版本的OpenSSH,可以configuration一个内部的sftp客户端(无需外部依赖)。 这使得用户只能通过sftp访问chroot的目录来设置用户比较容易 – 就像他们需要更新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 

你想看看PAM: http : //www.kernel.org/pub/linux/libs/pam/

干杯

您可以使用此命令轻松禁用用户帐户:

 passwod <username> -l 

并重新启用它:

 passwod <username> -u 

无论这是否完全有效阻止用户的访问取决于您正在运行的服务。 但他们肯定会被阻止login。

具有默认DROP的限制性IPTABLES防火墙可以相当有效地工作(不要忘记为自己和本地主机留下一个漏洞)。 ;-)按端口手动添加“允许”主机的静态IP地址。 没有IP提供任何服务。 注意:这不会阻止允许的主机通过允许的端口。 另外,Cristian Ciuputu提到(up vote … ;-),samba有一个“hosts allow”部分,NFS有一个范围可以导出,X转发可以被禁用,ssh可以被阻止或拒绝。

我不能添加评论,所以… OP实际上试图做什么,阻止用户访问具有远程function的客户端? closures所有的互联网接入? 你真的想要阻止传入访问用于远程访问的端口[ sudo ufw enable ,因为默认是删除所有传入的请求] ??

删除客户端二进制文件上的执行位和/或读取位,例如ssh将阻止用户访问它[ sudo chmod o-rwx /usr/bin/ssh将会阻止任何人,但所有者(root)和组(root)使用它假设他们没有通过sudo使用它的权限],但是如果你离开他们安装权限,他们可以安装一个新的客户端。

这是一个多用户机器。 如果它是串行多个用户(而不是并行),那么你可以有一个防火墙脚本运行在login非专业用户和禁用各种stream量。 但是,那么你的用户可以通过非传统的端口隧道传输。

您可以通过从pendrive或DVD加载单独的操作系统,然后启用对计算机的访问,绕过这些操作。 这又把我们带回到“你究竟在努力实现什么?”这个终极问题上。