Máquina Linux em um domínio do Windows AD usando sssd e krb5

Havia uma necessidade de inserir uma máquina Ubuntu em um domínio do Windows. Para esses fins, Samba e Winbind são geralmente usados. Mas uma alternativa é possível com o sssd, um breve guia para isso abaixo.

Por exemplo, usaremos:

Domínio = contoso.com
Controlador de domínio = dc.contoso.com

Inicie o terminal Ubuntu:

1. Alterne para root

sudo -i 

2. Instale os pacotes necessários

 apt install sssd heimdal-clients msktutil 

3. Editamos o arquivo /etc/krb5.conf, as abas são usadas como recuos

 [libdefaults] default_realm = CONTOSO.COM [realms] CONTOSO.COM = { kdc = DC admin_server = dc.contoso.com default_domain = contoso.com } [login] krb4_convert = true krb4_get_tickets = false [domain_realm] .contoso.com = CONTOSO.COM contoso.com = CONTOSO.COM 

4. Edite o arquivo / etc / hosts, especifique o FQDN para este host:

 127.0.0.1 localhost 127.0.1.1 <hostname>.contoso.com <hostname> 

5. Tentamos obter um tíquete Kerberos em nome do administrador do domínio:

 root@ubuntu:~# kinit YourDomainAdmin YourDomainAdmin@CONTOSO.COM's Password: 

Verificamos:

 root@ubuntu:~# klist Credentials cache: FILE:/tmp/krb5cc_0 Principal: YourDomainAdmin@CONTOSO.COM Issued Expires Principal Dec 1 15:08:27 2018 Dec 2 01:08:22 2018 krbtgt/CONTOSO.COM@CONTOSO.COM 

Se o ticket for recebido com sucesso, agora os principais Kerberos podem ser gerados para este host, o registro é importante:

 msktutil -c -b 'CN=YourComputersOU' -s HOST/HOSTNAME.contoso.com -k /etc/sssd/HOSTNAME.keytab --computer-name HOSTNAME --upn HOSTNAME$ --server dc.contoso.com —user-creds-only msktutil -c -b 'CN=YourComputersOU' -s HOST/HOSTNAME -k /etc/sssd/HOSTNAME.keytab --computer-name HOSTNAME --upn HOSTNAME$ --server dc.contoso.com --user-creds-only 

Agora nosso host deve aparecer na lista de computadores no diretório Nesse caso, exclua o tíquete Kerberos recebido:

 kdestroy 

6. Crie o arquivo /etc/sssd/sssd.conf com o seguinte conteúdo:

 [sssd] services = nss, pam config_file_version = 2 domains = contoso.com [nss] entry_negative_timeout = 0 debug_level = 3 [pam] debug_level = 3 [domain/contoso.com] debug_level = 3 ad_domain = contoso.com ad_server = dc.contoso.com enumerate = false id_provider = ad auth_provider = ad chpass_provider = ad access_provider = simple simple_allow_groups = users #   ,  .   —       . ldap_schema = ad ldap_id_mapping = true fallback_homedir = /home/%u default_shell = /bin/bash ldap_sasl_mech = gssapi ldap_sasl_authid = <HOSTNAME>$ ldap_krb5_init_creds = true krb5_keytab = /etc/sssd/<HOSTNAME>.keytab 

A descrição dos parâmetros do arquivo de configuração sssd pode ser encontrada aqui

Defina permissões para o arquivo sssd.conf:

 chmod 600 /etc/sssd/sssd.conf 

Reinicie o serviço SSSD

 service sssd restart 

7. Editando configurações do PAM

Solução ruim:

edite o arquivo /etc/pam.d/common-session, após a linha

 session required pam_unix.so 

adicionar linha

 session required pam_mkhomedir.so skel=/etc/skel umask=0022 

Boa solução:

substituir os parâmetros pelas configurações do sistema PAM, chame

 pam-auth-update 

e verifique os itens sss auth e makehomdir . Isso adicionará automaticamente
a linha acima na sessão comum e não será substituída ao atualizar o sistema.

Agora podemos fazer login na máquina para usuários do domínio que têm permissão para fazer login.

PS: Você pode conceder o direito de usar grupos de domínio sudo. Usando o visudo, edite o arquivo / etc / sudoers, ou melhor, como recomendam maxzhurkin e iluvar , crie um novo arquivo em /etc/sudoers.d/ e edite-o

 visudo -f /etc/sudoers.d/_ 

adicione o grupo necessário - por exemplo, Administradores de Domínio (se houver espaços no nome do grupo - eles devem ser escapados):

 %Domain\ Admins ALL=(ALL) ALL 


PSS: Obrigado, obrigado pela informação sobre o reino. É muito conveniente - se configurações específicas não forem necessárias, a inserção de uma máquina em um domínio exige, de fato, três comandos:
1. Instale os pacotes necessários:
 sudo apt install realmd samba-common-bin samba-libs sssd-tools krb5-user adcli 

2. Verifique se nosso domínio está visível na rede:
 realm discover contoso.com 

3. Digite a máquina no domínio:
 sudo realm --verbose join contoso.com -U YourDomainAdmin --install=/ 

4. Editando configurações do PAM
 sudo pam-auth-update 

Uma vantagem adicional dessa opção é a autorização de ponta a ponta nos recursos de arquivo do domínio.

Para não especificar um domínio além do logon, você pode adicionar um sufixo padrão. No arquivo /etc/sssd/sssd.conf, no bloco [sssd], adicione a linha:
 default_domain_suffix = contoso.com 

Source: https://habr.com/ru/post/pt437546/


All Articles