Existem "31" servidores configurados a partir da mesma imagem RedOS (baseado em CentOS 7). Eles são inseridos no domínio LDAP samba e configurados para autorização via ssh com base em grupos de usuários ldap. Para este efeito foram alterados:
criado como root
echo "Domain admins" > /etc/ssh/access_groups.conf && chmod 600 /etc/ssh/access_groups.conf
modificado /etc/pam.d/sshd
____missed default____
account required pam_nologin.so
account sufficient pam_localuser.so
account required pam_listfile.so onerr=fail item=group sense=allow file=/etc/ssh/access_groups.conf
account include password-auth
_______ missed default____
visudo /etc/sudoers.d/01-domain-users
#sudo admin users LDAP auth
"%mydomain.local\Domain admins" ALL=(ALL) NOPASSWD:ALL
systemctl reiniciar sshd
Esta configuração foi aplicada com sucesso a cerca de 30 servidores e está funcionando. No servidor 31 a configuração não funciona. Ao tentar fazer login, o lado do cliente exibe conexão fechada pelo servidor.
debug3: failed to open file:C:/dev/tty error:3
debug1: read_passphrase: can't open /dev/tty: No such file or directory
t1_rushao@ruyansvap38's password:
debug3: send packet: type 50
debug2: we sent a password packet, wait for reply
Connection closed by 10.65.201.61 port 22
No lado do servidor
sshd[18238]: pam_sss(sshd:auth): authentication success; logname= uid=0 euid=0 tty=ssh ruser= rhost=10.65.90.176 user=t1_rushao
sshd[18238]: pam_listfile(sshd:account): Refused user t1_rushao for service sshd
sshd[18238]: Failed password for t1_rushao from 10.65.90.176 port 59786 ssh2
sshd[18238]: fatal: Access denied for user t1_rushao by PAM account configuration [preauth]
Se eu comentar "conta necessária pam_listfile.so...", posso me conectar via ssh como usuário de domínio, mas o sudo também não funciona. Ao mesmo tempo,
id t1_rushao
uid=1006007868(t1_rushao) gid=1006000513(domain users) groups=1006000513(domain users),1006000512(domain admins)
O serviço sssd está funcionando, a autorização dos usuários do domínio no servidor também parece estar funcionando, tentei o kinit, net ads join várias vezes. /etc/security/access.conf é completamente comentado por padrão.
Fiquei sem ideias de por que essa configuração não funciona pessoalmente neste servidor. Entendo que o problema está em algum lugar nos grupos de domínio, o sistema não consegue combinar os grupos de usuários com as configurações, mas por quê?
Possível problema de maiúsculas e minúsculas: o
id
comando relata o grupo comodomain admins
todo em letras minúsculas, mas você/etc/ssh/access_groups.conf
e/etc/sudoers.d/01-domain-users
ambos têm o grupo especificadoDomain admins
com letras maiúsculas iniciais.Os sistemas Unix/Linux geralmente diferenciam maiúsculas de minúsculas e não encontro razão para acreditar que isso
pam_listfile.so
seria uma exceção a esta regra. Eu sei que issosudo
definitivamente diferencia maiúsculas de minúsculas.Tente alterar o nome do grupo em ambos
access_groups.conf
e na configuração do sudoers para letras minúsculas, para corresponder ao caso exato relatado porid
.A configuração de
sssd
(/etc/sssd/sssd.conf
e quaisquer/etc/sssd/conf.d/*.conf
arquivos) pode ter algumas diferenças na configuração, por exemplofull_name_format
, do domíniouse_fully_qualified_names
oucase_sensitive
nas configurações.Obviamente, seus servidores em funcionamento devem ter
case_sensitive = false
, o que parece não ser o padrão do sssd - talvez o servidor que não funciona esteja faltando algumas dessas configurações?telcom , exatamente! Realmente funcionou. No último servidor,
sssd.conf
difere dos demais com apenas uma linha adicional.re_expression = (?P<name>[a-z0-9._-]+)
Em outros servidores não existe tal linha. E em todos os servidores tem a configuração sssd.conf
case_sensitive = False
Fiz a análise e esse arquivo é configurado automaticamente pelo
join-to-domain
pacote de scripts da equipe de desenvolvimento do RedOS que adiciona servidores ao domínio LDAP. Há poucos dias foi lançada uma nova versão do script, e neste servidor (que foi criado há alguns dias) a configuração do sssd é diferente das demais.Como resultado, 2 condições coincidiram ao mesmo tempo:
Domain admins
separadas por um espaço, e a configuração sssd tornou-se sensível a maiúsculas e minúsculas. Eu testei em grupos de nomes simples e verifiquei nomes de grupos configurados em letras minúsculas e funciona com eles. Desativeire_expression
e tudo funcionou comDomain admins
configurações de grupo e que não diferenciam maiúsculas de minúsculas. Será necessário perguntar aos desenvolvedores por que isso foi feito.