Como autenticar um usuário Linux usando o Microsoft Active Directory

Como autenticar um usuário Linux usando o Microsoft Active Directory
O Active Directory (AD) é o serviço de diretório da Microsoft e é amplamente usado para consolidar a autenticação Windows e Linux em uma rede híbrida que é executada em ambos os sistemas operacionais.

Sobre o que vamos falar?

Neste artigo, veremos como autenticar um usuário do Linux usando o Microsoft Active Directory. Para este tutorial, usamos o Windows 2016 Server e o Ubuntu 20.04 OS.

Pré -requisitos:

  1. Não entraremos em detalhes sobre o Active Directory, incluindo sua funcionalidade, configuração e manutenção. Para este guia, assumiremos que você sabe como configurar um domínio do Active Directory e você terá acesso às credenciais necessárias.
  2. O controlador de domínio, o Windows Server 2016 neste caso, é configurado como um resolvedor de DNS primário e autoritário para o domínio.
  3. O tempo é configurado corretamente e sincroniza nos dois sistemas. Pode ser realizado por meio de serviços como Chrony ou NTP.
  4. Para o nosso tutorial, usamos a MyCompany.domínio local.

Configurando o nome do host do cliente

Primeiro, configuramos o nome do host do Ubuntu para apontar para o domínio do Active Directory. Por exemplo, vamos tomar isso como myubuntu.minha compania.local. Agora, modifique o arquivo do nome do host da seguinte forma:

$ sudo eco myubuntu.minha compania.Local> /etc /hostname

Observação: Não podemos usar o nome do host como localhost, pois ele aponta para 127.0.0.1.

Modificando o arquivo /etc /hosts

Agora, abra o arquivo /etc /hosts e especifique o endereço IP do nosso cliente com seu nome de host específico do controlador de domínio:

Modificando o /etc /resolv.arquivo conf

A consulta DNS deve primeiro atingir o controlador de domínio em nossa máquina cliente. Isso pode ser realizado usando a resolução.arquivo conf. No entanto, este arquivo é atualizado automaticamente quando você reinicia o cliente. Consequentemente, todas as suas edições manuais desaparecerão.

Curiosamente, podemos resolver esse comportamento usando o pacote Resolvconf. Vá para este link para corrigir a resolução.conflitão conf.

A pesquisa de resolução.O arquivo conf em nosso caso é o seguinte:

Sincronização do tempo

Os sistemas UNIX e Linux dependem do Protocolo de Time de Rede (NTP) para suas necessidades de sincronização de tempo. Quando se trata do Ubuntu, está centrado no servidor NTP padrão em ntp.Ubuntu.com. Se você deseja que sua máquina Ubuntu sincronize perfeitamente com o controlador do Active Directory, você não pode confiar em uma fonte de tempo externa. Então, o que você precisa fazer é configurar sua máquina Ubuntu para utilizar o controlador do Active Directory como seu servidor NTP. Você pode realizar esta tarefa instalando e configurando um serviço como NTP ou Chrony.

Observação: Antes de podermos continuar a próxima etapa para adicionar nosso cliente do Sistema Ubuntu ao domínio do Active Directory, teste a conectividade da rede entre eles. Podemos fazer isso pingando o nome do domínio e o nome do DNS do Active Directory:

$ ping mycompany.local
$ ping win-2rifamt88gr.minha compania.local

Ter um DNS confiável e a resolução do nome do host é crucial.

Instalando o pacote realMD

Agora, instalamos o pacote realMD e determinamos se já fazemos parte do domínio do Active Directory. Não devemos ter nenhum domínio, já que o RealMD não foi instalado anteriormente:

$ sudo apt install realmd

Agora, execute o seguinte comando:

$ Lista de Realm

Aqui, um resultado vazio indica que o host não está vinculado ao serviço de domínio do Active Directory ainda.

Descobrindo o domínio

Seguindo em frente, agora descobrimos nosso domínio de destino usando o seguinte comando:

$ realm descobre mycompany.local

Substitua a MyCompany.Local com seu nome de domínio. A saída deve ser algo como o seguinte:

MINHA COMPANIA.LOCAL
Tipo: Kerberos
Nome do Reino: MyCompany.LOCAL
Nome de domínio: MyCompany.local
Configurado: Kerberos-membro
Software de servidor: ativo-diretório
Software de cliente: SSSD
Package necessária: tools SSSD
Package requerir: SSSD
Package requerir: libnss-sss
Package necessária: libpam-sss
Package necessária: adcli
Package necessária: Samba-Common-Bin
Formatos de login: %[email protected]
Login-Policy: Allow-Realm-Logins

Notavelmente, a saída especifica os pacotes necessários para ingressar no domínio. Além disso, isso verifica os pacotes mais adequados a serem instalados com SSSD.

Instalando os pacotes e juntando -se ao domínio

Vamos instalar os pacotes anteriores:

$ sudo apt install sssd sssd-tools libnss-sss libpam-sss adcli samba-common-bin

Agora, para ingressar no domínio AD (Active Directory) e configurar o SSSD, usamos o comando do Realm novamente:

$ sudo reino junte -se à MyCompany.local

Digite a senha do administrador quando solicitado. Além disso, você pode especificar outra conta usando o sinalizador -u:

Se você executar o comando Lista Realm novamente, verá a saída da seguinte forma:

Não precisamos tocar a configuração do SSSD, pois isso já é gerenciado pela ferramenta Realm.

Criando o diretório doméstico

Uma coisa que precisamos fazer a nós mesmos é definir o diretório inicial para os usuários de anúncios efetuarem login em nossa máquina cliente. Isso pode ser feito com o seguinte comando:

$ sudo pam-auth-update-Mkhomedir

Da mesma forma, podemos recuperar os detalhes desses usuários de anúncios usando o seguinte comando:

$ getent passwd [email protected]

Também podemos especificar os outros usuários com seu nome completo. Por exemplo:

$ getent passwd [email protected]

Registrar com as contas dos usuários de anúncios

Finalmente, podemos fazer login com a conta dos usuários do anúncio:

$ sudo login

Isso pede que você insira os detalhes do usuário do anúncio: seu nome de usuário e senhas. Ao fazer login com sucesso, você verá a seguinte tela:

Notavelmente, o diretório doméstico é criado automaticamente aqui:

Conclusão

Agora aprendemos a adicionar um cliente host Linux a um servidor Windows. Pode -se obter os benefícios de ambos os sistemas, integrando o Linux a um domínio do Active Directory existente. Se você estiver tendo mais de cinco sistemas, considere gerenciá -los com um serviço de diretório.