Como Configurar um Controlador de Domínio Active Directory (AD) com Samba no Linux

Introdução

O Samba é uma poderosa ferramenta de código aberto que permite configurar um controlador de domínio Active Directory no Linux. Isso possibilita gerenciar usuários, grupos e permissões de máquinas em uma rede, utilizando tecnologias conhecidas do Windows.

Neste tutorial, vamos ensinar, passo a passo, como configurar um servidor Samba como controlador de domínio (AD DC), com explicações detalhadas para cada etapa. Ao final, você terá um ambiente funcional, pronto para gerenciar estações de trabalho e servidores. Aqui vamos usar como exemplo um endereço IP de servidor sendo 192.168.1.100 e o domínio LABSF

Lembre-se que algumas versões de Linux já não trasem mais o comando sudo nativamente, neste caso, considere subir ao nível root com su -l, e desconsidere o sudo nos exemplos abaixo.


Pré-Requisitos

  1. Sistema Operacional:
    • Linux Debian 12 ou similar, atualizado.
  2. Configuração de Rede:
    • IP fixo configurado no servidor.
  3. Pacotes Necessários:
    • Samba, Winbind, Kerberos, e dependências.
  4. Conhecimentos Básicos:
    • Familiaridade com linhas de comando e arquivos de configuração.

Passo 1: Configurar o IP Fixo

Antes de mais nada, configure um endereço IP fixo para o servidor.

Abra o arquivo de configuração de rede: (estou usando o nano como exemplo, mas particularmente prefiro o vim)

sudo nano /etc/network/interfaces

Adicione o seguinte conteúdo:

iface eth0 inet static
    address 192.168.1.100
    netmask 255.255.255.0
    gateway 192.168.1.1
    dns-nameservers 192.168.1.100 8.8.8.8

Reinicie o serviço de rede:

sudo systemctl restart networking

Passo 2: Instalar os Pacotes Necessários

Atualize os repositórios e instale os pacotes necessários para o Samba e Kerberos:

sudo apt update
sudo apt install samba smbclient winbind libpam-winbind krb5-config krb5-user -y

Passo 3: Provisionar o Domínio

Renomeie o arquivo de configuração original do Samba para evitar conflitos:

sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.original

Em seguida, execute o comando de provisionamento do domínio:

sudo samba-tool domain provision

Informe os seguintes detalhes durante o processo:

  • Realm: labsf.local
    O REALM é o domínio em letras maiúsculas, usado pelo Kerberos para identificar o ambiente. Ele deve ser único na rede. Exemplo: LABSF.LOCAL.
  • Domain: LABSF
    Nome do domínio em letras maiúsculas (é a parte antes do .local).
  • DNS Backend: Escolha entre SAMBA_INTERNAL (recomendado para setups simples) ou BIND9_DLZ (se precisar de mais controle sobre o DNS).

Passo 4: Configurar o Kerberos

O Kerberos é o sistema de autenticação usado pelo Samba AD DC. Configure o arquivo do Kerberos para apontar para o servidor local:

Copie o arquivo gerado automaticamente pelo Samba:

sudo cp /var/lib/samba/private/krb5.conf /etc/krb5.conf

Abra o arquivo e verifique que o servidor KDC está definido como localhost. Exemplo:

[libdefaults]
    default_realm = LABSF.LOCAL
    dns_lookup_realm = false
    dns_lookup_kdc = true

[realms]
    LABSF.LOCAL = {
        kdc = localhost
        admin_server = localhost
    }

[domain_realm]
    .labsf.local = LABSF.LOCAL
    labsf.local = LABSF.LOCAL

Passo 5: Configurar o /etc/nsswitch.conf

Edite o arquivo de configuração para integrar Winbind e Systemd:

sudo nano /etc/nsswitch.conf

Atualize as entradas:

passwd:         files winbind systemd
group:          files winbind systemd
shadow:         files systemd
gshadow:        files systemd
hosts:          files dns

Reinicie os serviços necessários:

sudo systemctl restart samba-ad-dc winbind

Passo 6: Ajustar o Resolv.conf

O DNS deve apontar para o servidor AD para que a resolução de nomes funcione corretamente.

Edite o arquivo /etc/resolv.conf:

sudo nano /etc/resolv.conf

Adicione:

nameserver 192.168.1.100
nameserver 8.8.8.8
search labsf.local

Passo 7: Iniciar os Serviços do Samba

Ajuste os serviços para o controlador de domínio:

sudo systemctl stop samba
sudo systemctl stop nmbd
sudo systemctl mask samba
sudo systemctl mask nmbd
sudo systemctl unmask samba-ad-dc
sudo systemctl enable winbind
sudo systemctl enable samba-ad-dc
sudo systemctl start samba-ad-dc
sudo systemctl start winbind

Passo 8: Testar a Configuração

  1. Certifique-se de que o horário do sistema está sincronizado: (opcional)
    sudo timedatectl set-ntp true sudo ntpdate -q localhost
  2. Teste o Kerberos:
    kinit Administrator
  3. Use o smbclient para verificar os compartilhamentos:
    smbclient -L localhost -U Administrator

Passo 9: Logs e Diagnósticos

Verifique os logs para identificar possíveis problemas:

tail -f /var/log/samba/log.samba
tail -f /var/log/syslog

Conclusão

Você agora tem um controlador de domínio Samba AD DC configurado e funcional! Próximos passos:

  • Adicionar estações Windows ao domínio.
  • Configurar permissões e políticas de grupo.

Se você seguiu todos os passos, seu servidor está pronto para gerenciar autenticação e serviços de rede com eficiência.

Rolar para cima