这是我在论坛上的第一个问题,所以如果我错过了有关我的问题的重要信息,请不要生气。
我使用 Debian 8,并根据 SSSD 加入了 Active Directory 域(Windows server 2012)本教程。
一切正常,我可以使用 AD 帐户登录。此外,我创建了一个 Active Directory 组来收集允许连接到该服务器的用户。
我允许该组使用以下命令:
realm permit -g [email protected]
到目前为止,一切正常,当我第一次使用 Active Directory 帐户连接 Linux 服务器时,/home/domain/user
就会创建该文件。
但是,当我想要撤销一个用户连接到服务器的权限时(因此我从组中删除该帐户)。它的文件夹/home/domain/user
仍然保留在服务器上,而且 root 帐户(或具有 sudo 权限的帐户)可以连接到不再具有权限的用户(带有警告消息Access Denied (ignored)
)。
最后,唯一不允许的方法su <deleted user>
是删除 AD 帐户(但我不能每次撤销权限时都删除 AD 帐户)。
在我看来,这是一个可怕的安全问题。当我撤销AD帐户权限时,是否可以明确删除Linux服务器上的用户(及其文件夹)?
您能分享一下有关 AD 和 SSSD 之间身份验证的信息吗?
请参阅下面的配置文件:
内容/etc/nsswitch.conf
:
passwd: compat sss
group: compat sss
shadow: compat sss
gshadow: files
hosts: files dns
networks: files
protocols: db files
services: db files sss
ethers: db files
rpc: db files
netgroup: nis sss
sudoers: files sss
内容/etc/sssd/sssd.conf
:
[sssd]
domains = mydomain.com
config_file_version = 2
services = nss, pam
[domain/mydomain.com]
ad_domain = mydomain.com
krb5_realm = MYREALM.COM
realmd_tags = manages-system joined-with-samba
cache_credentials = True
id_provider = ad
krb5_store_password_if_offline = True
default_shell = /bin/bash
ldap_id_mapping = True
use_fully_qualified_names = True
fallback_homedir = /home/%d/%u
access_provider = simple
simple_allow_groups = MyGroupAllowed
在使用 SSSD 之前,我尝试使用 Winbind,但遇到了同样的问题。
感谢您的回答。
答案1
在我看来,这是一个可怕的安全问题。
sudo
那么,您认为用户可以连接到 Linux 服务器上的帐户这一事实是一个安全问题吗?用户使用该帐户执行的所有操作sudo
都会相应记录,包括最初执行的用户sudo
。
您可以做的是让守护程序轮询 LDAP 并同步帐户。它甚至不必安装在每个 Linux 机器上,只要它可以连接到这些机器即可。
编辑:前进的另一种方法是确保删除 Kerberos 缓存;用于。kdestroy
/etc/bash.bash_logout
这样,用户可以做的唯一“伤害”是本地的,而且他无论如何都可以,因为 root 可以在本地做任何事情。
注意:这也与 Windows 非常相似,因为本地管理员可以轻松成为本地系统,并且本地系统可以执行本地系统上的所有操作,包括模拟当前登录的用户......并kdestroy
在注销时使用模拟 Windows 行为。
这就是为什么你的问题让我感到惊讶。实际上,更糟糕的是,除非您在 Windows 上设置特定的审核规则,否则您不会看到本地系统模拟用户,也不会看到谁“当前控制此本地系统会话执行某些操作jdoe
”。