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
- Sistema Operacional:
- Linux Debian 12 ou similar, atualizado.
- Configuração de Rede:
- IP fixo configurado no servidor.
- Pacotes Necessários:
- Samba, Winbind, Kerberos, e dependências.
- 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) ouBIND9_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
- Certifique-se de que o horário do sistema está sincronizado: (opcional)
sudo timedatectl set-ntp true sudo ntpdate -q localhost
- Teste o Kerberos:
kinit Administrator
- 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.