
É minha primeira pergunta no fórum, então, por favor, não fique bravo se eu perder informações importantes sobre o meu problema.
Eu uso o Debian 8 e entrei em um domínio do Active Directory (servidor Windows 2012) com SSSD de acordo comeste tutorial.
Tudo funciona bem, consigo fazer login com a conta AD. Além disso, criei um grupo de Active Directory para reunir os usuários que terão permissão para se conectar a este servidor.
Eu permito este grupo com o comando:
realm permit -g [email protected]
Até agora está tudo bem e quando me conecto pela primeira vez no meu servidor Linux com uma conta do Active Directory, o /home/domain/user
é criado.
Porém, quando quero revogar a permissão de conexão ao servidor para um usuário (removo a conta do grupo). Sua pasta /home/domain/user
ainda permanece no servidor e além disso a conta root (ou conta com permissões sudo) pode se conectar ao usuário que não tem mais permissões (com uma mensagem de aviso Access Denied (ignored)
).
Por fim, a única maneira de não permitir su <deleted user>
é remover a conta do AD (mas não consigo remover a conta do AD sempre que revogo as permissões).
Na minha opinião, é uma questão de segurança terrível. É possível remover definitivamente o usuário (e sua pasta) no servidor Linux quando eu revogar as permissões da conta AD?
Você pode me compartilhar informações sobre autenticação entre AD e SSSD?
Por favor, veja abaixo os arquivos de configuração:
Conteúdo de /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
Conteúdo de /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
Antes de trabalhar com SSSD, tentei usar o Winbind, mas tive o mesmo problema.
Obrigado pela sua resposta.
Responder1
Na minha opinião, é uma questão de segurança terrível.
Então, você acha que o fato de sudo
os usuários poderem se conectar a uma conta em um servidor Linux é uma questão de segurança? Tudo o que o sudo
usuário faz com essa conta é registrado de acordo, incluindo o usuário que executou inicialmente sudo
.
O que você poderia fazer é ter um daemon pesquisando o LDAP e sincronizando as contas. Ele nem precisa estar em todas as caixas Linux, desde que possa se conectar às caixas.
EDIT: Outra maneira de avançar é garantir que os caches Kerberos sejam removidos; usar kdestroy
em /etc/bash.bash_logout
. Dessa forma, o único "dano" que um usuário pode causar é local, e ele poderia de qualquer maneira, porque o root pode fazer qualquer coisa local.
Nota: Isso também é bastante semelhante ao Windows, já que o administrador local pode facilmente se tornar o sistema local, e o sistema local pode fazer tudo na caixa, incluindo representar usuários atualmente logados ... e usar kdestroy
no logout emula o comportamento do Windows.
É por isso que sua pergunta foi uma surpresa para mim. Pior, na verdade, a menos que você configure regras de auditoria específicas no Windows, você não verá o sistema local representando usuários, nem quem "atualmente controla esta sessão do sistema local fazendo coisas como jdoe
".