Trabalhando em uma empresa e apareceu uma demanda para implementar e configurar o samba active directory no debian linux ?
Acredite isso é normal, devido a fatores como segurança e licenças, cada vez mais empresas buscam substituir o active directory rodando em um windows server pelo samba4 com linux instalado, como o Debian.
E para atender a essa demanda este guia prático detalha como configurar o samba na função de active directory domain controller em um servidor que tem o Debian instalado.
Informações técnicas do servidor e domínio
As informações técnicas do servidor usadas no tutorial:
Sistema Operacional: Debian versão 13
Endereço IP: 10.10.20.5/24
Hostname: server
Nome NetBIOS do servidor: server # o mesmo que o hostname, deve ter no máximo 15 caracteres (preferencialmente alfanuméricos).
O endereço IP já foi configurado no servidor, mas o hostname ainda será configurado.
As informações técnicas do domínio usadas no tutorial durante o processo de configuração são:
Nome do domínio: dlncloud.lan
Nome NetBIOS do domínio: dlncloud
AVISO
O endereço IP do servidor deve ser configurado previamente, a configuração não será enainda no tutorial.
As informações técnicas do domínio como: Nome do Domínio, Nome NetBIOS do Domínio.
Todas essas informações serão usadas ao longo do tutorial, por isso é importante defini-las agora.
Preparando sistema operacional para instalar o serviço samba
Antes de instalar e configurar o samba na função AD DC é necessário verificar se o sistema de arquivos onde será armazenado o samba tem suporte a ACLs e atributos estendidos.
O Samba quando configurado como Active Directory Domain Controller (AD DC) precisa de suporte a ACLs (Listas de Controle de Acesso) e atributos estendidos (Extended Attributes) no sistema de arquivos subjacente (como ext4, btrfs ou XFS) para emular as permissões de arquivos do Windows NTFS.
Como os compartilhamentos sysvol e netlogon ficam em um subdiretório dentro de /var, tem a necessidade de checar qual é o sistema de arquivos que está montado em /var:
df -hT /var
Veja que a coluna type mostra que o tipo de sistema de arquivos é ext4.
Para verificar se o suporte a ACLs e atributos estendidos do ext4 no kernel linux em uso foi compilado, execute o comando:
egrep -i 'ext4_fs_posix_acl|ext4_fs_security' /boot/config-$(uname -r)Na saída do comando tem que aparecer os códigos: CONFIG_EXT4_FS_POSIX_ACL=y e CONFIG_EXT4_FS_SECURITY=y
Para saber se o suporte a ACLs foi compilado para xfs no kernel linux em uso execute o comando:
egrep -i 'xfs_posix_acl' /boot/config-$(uname -r)Na saída do comando tem que aparecer o código: CONFIG_XFS_POSIX_ACL=y
Para saber se o suporte a ACLs foi compilado para btrfs no kernel linux em uso execute o comando:
egrep -i 'btrfs_fs_posix_acl' /boot/config-$(uname -r)Na saída do comando tem que aparecer o código: CONFIG_BTRFS_FS_POSIX_ACL=y
Tanto o sistema de arquivos xfs quanto o btrfs já tem o suporte a atributos estendidos habilitados por padrão.
IMPORTANTE
Se a saída do comando não retornar o(s) valore(s) destacado(s) em vermelho significa que o sistema de arquivos não tem suporte nem ACLs e/ou atributos estendidos, nesse caso é necessário para prosseguir instalar um kernel linux compilado com o suporte a ACLs e Atributos Estendidos para o sistema de arquivos em uso.
Recomendo a leitura da documentação do samba para mais informações sobre a necessidade de ter ACLs e atributos estendidos para o samba.
Atualizar sistema operacional
Antes de instalar o samba atualize o sistema operacional.
apt update -y
apt upgrade -ySe durante a execução do comando apt upgrade algum pacote como por exemplo o systemd ou o kernel linux foi atualizado, recomendo que reinicie o servidor.
rebootInstalação do serviço samba no servidor
O debian linux tem em seus repositórios pacotes do samba que foram compilados com a função de active directory domain controller, por essa razão o samba será implementado usando os pacotes.
Instale o samba e alguns outros pacotes necessários:
apt install vim gzip tar samba winbind krb5-user ldb-tools python3-cryptography -yConfigurando samba para iniciar durante o boot
Quando o samba é configurado como um controlador de domínio do active directory o daemon samba inicia os daemons: smbd e winbindd.
Esses serviços além do nmbd precisam ser parados, o serviço samba também precisa está parado antes de criar o domínio.
systemctl stop smbd.service nmbd.service winbind.service samba.serviceTambém configure o sistema para não iniciar nenhum dos daemons durante o boot:
systemctl mask smbd.service nmbd.service winbind.serviceConfigurar samba active directory no debian
Altere o hostname (também será o nome NetBIOS) que o servidor usará, ele deve ter no máximo 15 caracteres.
hostnamectl hostname serverTambém é necessário alterar o arquivo /etc/hosts, o principal motivo para altera-lo é definir o FQDN (nome de domínio totalmente qualificado) do próprio servidor Samba AD DC.
vim /etc/hostsSubstitua a linha que contém o IP 127.0.1.1 pelo código abaixo. Caso não exista essa linha somente inclua a linha abaixo:
10.10.20.5 server.dlncloud.lan server
AVISO
Lembre-se de substituir: O IP 10.10.20.5 pelo IP do seu servidor.
E também altere “server” pelo hostname do servidor e substituir “dlncloud.lan” pelo nome do domínio correto.
Essa entrada garante que o servidor possa resolver corretamente seu FQDN e o hostname para o IP do próprio servidor samba AD DC.
Criando domínio
Durante a criação do domínio o próprio samba vai gerar um novo /etc/samba/smb.conf que é o arquivo de configuração do samba.
Assim o arquivo /etc/samba/smb.conf existente precisa ser renomeado ou removido.
mv -v /etc/samba/smb.conf /etc/samba/smb.conf.oldAgora sim, execute o comando para configurar samba active directory no debian criando o domínio:
samba-tool domain provision --domain=dlncloud --realm=DLNCLOUD.LANExplicação das opções:
domain: É uma operação sobre o domínio.
provision: Define que a operação é criar um domínio.
--domain: Define o nome NetBIOS do domínio.
--realm: Configura o nome do reino kerberos que também é o nome completo do domínio. O nome deve inserido em CAIXA ALTA.
Ao fim da execução do comando você verá informações similares a imagem abaixo:

Após a criação do domínio redefina a senha do usuário administrator(usuário administrador do domínio):
samba-tool user setpassword administratorO samba gerou um arquivo krb5.conf personalizado, esse arquivo deve substituir o /etc/krb5.conf do sistema. Copie o arquivo gerado pelo samba para /etc.
cp -bf /var/lib/samba/private/krb5.conf /etcInicie o serviço do samba:
systemctl unmask samba-ad-dc.service
systemctl enable --now samba-ad-dc.serviceVocê acabou de configurar samba active directory no debian, mas ainda existem algumas configurações importantes a serem feitas.
Configuração do serviço NTP
O Active Directory faz uso do protocolo Kerberos, que requer uma sincronização de data e hora quase perfeita entre os controladores de domínios e também com os computadores clientes ingressados no domínio para que autenticação seja feita com sucesso.
O samba não tem um serviço NTP, logo é necessário instalar um serviço ntp para garantir a sincronização entre os relógios dos diferentes dispositivos na rede.
O serviço NTP que será instalado e usado é o chrony, para instalá-lo no Debian execute os comandos:
apt purge systemd-timesyncd -y
apt install chrony -yAdicione a configuração abaixo no arquivo /etc/chrony/conf.d/samba.conf para permitir acesso de hosts da rede ao serviço NTP e para o samba se comunicar com o daemon chrony através do arquivo de socket.
echo "allow 10.10.20.0/24
allow 127.0.0.1
ntpsigndsocket /var/lib/samba/ntp_signd" > /etc/chrony/conf.d/samba.confSubstitua o endereço de rede 10.10.20/24 pelo endereço IP da rede do servidor que está instalando o samba.
Também altere as permissões do diretório que armazena o arquivo de socket do samba para o chrony ter acesso:
chgrp _chrony /var/lib/samba/ntp_signd/
chmod 750 /var/lib/samba/ntp_signd/Reinicie o serviço chrony:
systemctl restart chronyd.serviceAjustes finais após configurar samba active directory no debian
O Samba AD DC precisa resolver nomes do domínio para replicar o banco de dados do AD para outros servidores controladores de domínio, também para fins de autenticação e para que outros serviços do AD funcionem.
Por isso o sistema operacional deve usar o endereço IP do próprio servidor samba como servidor DNS.
Configurando o novo endereço DNS usado pelo sistema
No debian as configurações de rede são definidas no arquivo /etc/network/interfaces. Para que as configurações de dns desse arquivo seja armazena em /etc/resolv.conf primeiro instale o pacote resolvconf.
apt install resolvconf -yE em seguida adicione a configuração dns-nameservers apontando para o IP 127.0.0.1 na configuração da placa de rede no arquivo /etc/network/interfaces. No exemplo do tutorial a placa de rede é a enp0s3, no seu caso pode ser uma placa diferente.
vim /etc/network/interfaces
Para efetivar as alterações reinicie a unit networking.service.
systemctl restart networking.serviceConfigurando um DNS Forwarder para o samba
O DNS interno do samba não resolve nomes para outros domínios, logo os clientes ingressados no domínio não podem resolver nomes para outros domínios e consequentemente nem para internet.
Para contornar essa situação configure um encaminhador dns para samba. Edite o arquivo de configuração /etc/samba/smb.conf.
vim /etc/samba/smb.confE adicione na seção global a configuração a seguir, substituindo 8.8.8.8 pelo endereço do servidor DNS que resolverá nomes de outros domínios:
dns forwarder = 8.8.8.8
Salve as alterações e em seguida reinicie o samba:
systemctl restart samba-ad-dc.serviceTópicos relacionados
Precisando configurar o samba como um AD DC em um servidor que tem instalado um sistema baseado no RHEL(Red Hat Enterprise Linux) ?
Nesse caso recomendo a leitura de um dos guias a seguir para sistemas linux enterprise:
| Distros baseadas no RHEL | Guias Técnicos |
|---|---|
| Rocky Linux | Como configurar o Samba como um AD DC no Rocky Linux |
| AlmaLinux | Como configurar o Samba como um AD DC no AlmaLinux |
Quer aprender a ingressar no domínio uma estação de trabalho linux ? Então recomendo a leitura dos tutoriais da lista a seguir:
| Distros Linux | Tutoriais Completos |
|---|---|
| Ubuntu Linux | Ingressar no domínio AD máquina que tem ubuntu instalado |
| Linux Mint | Ingressar no domínio AD máquina que tem linux mint instalado |
Aprenda mais sobre samba active directory no linux
Acabou de configurar o samba AD DC e está precisando:
- Aprofundar seus conhecimentos no serviço samba e active directory ?
- Aprender como criar backups e restaurar backups ?
- Gerenciar o servidor e fazer tarefas administrativas ?
Fique tranquilo(a) pois com o curso servidor linux samba AD você vai aprender isso e muito mais.

E usando o cupom BLOGSAMBA10 você ganha 10% de desconto.
Conclusão
Foi ensinado nesse tutorial um passo a passo de como configurar samba active directory no debian de forma prática e com detalhes técnicos.
Agora a empresa ou organização que trabalha não precisa pagar licenças para essa implementação do samba, e além disso, você terá um servidor com estabilidade rodando por muito tempo.
Espero que o conhecimento tenha ajudado e caso tenha alguma dúvida ou quer fazer alguma sugestão deixe seu comentário.

