Sistemas Operativos · Samba · Active Directory · Open Source · PME

Duarte Spínola · 23 de Junho de 2026

Samba AD: Controlador de Domínio Open Source para PME em 2026

O Microsoft Active Directory é o standard de facto para gestão de identidades em PME — mas as licenças Windows Server CAL + Active Directory nem sempre cabem no orçamento. O Samba AD DC oferece um controlador de domínio compatível com AD (LDAP, Kerberos, GPO, DNS) rodando em Linux, sem custos de licenciamento Microsoft. Este artigo configura um Samba AD DC desde zero, junta máquinas Windows, configura GPOs e DNS, e compara com Windows Server AD (Samba Wiki).

Neste artigo

  1. Entender Samba AD e Compatibilidade com Microsoft AD
  2. Pré-requisitos e Instalação
  3. Passo 1 — Provisionar Domínio Samba AD
  4. Passo 2 — Configurar DNS e DHCP
  5. Passo 3 — Juntar Máquinas Windows ao Domínio
  6. Passo 4 — Criar Utilizadores e Grupos
  7. Passo 5 — Configurar GPOs
  8. Passo 6 — Réplica AD DC para Alta Disponibilidade
  9. Samba AD vs Windows Server AD — Comparação
  10. Erros Comuns
  11. Checklist Rápido de Verificação

1. Entender Samba AD e Compatibilidade com Microsoft AD

O Samba AD DC implementa o protocolo Active Directory da Microsoft em Linux. Não é uma imitação — implementa os mesmos protocolos (LDAP, Kerberos, DNS, SMB, RPC) que um Windows Server DC. Máquinas Windows juntam-se ao domínio Samba como se fosse um domínio Microsoft nativo.

Analogia: Samba AD é como um telemóvel Android a fazer chamadas numa rede que foi construída para iPhone. A rede (AD) não sabe nem precisa de saber que o dispositivo (DC) não é Apple — os protocolos são standards.

Feature Samba AD DC Windows Server AD
LDAP Sim (compatível) Sim (nativo)
Kerberos Sim (Heimdal) Sim (MIT)
GPO Sim Sim
DNS Sim (internal ou BIND) Sim (DNS Server role)
SMB/CIFS Sim (Samba) Sim (nativo)
Sysvol Sim Sim
Trust domains Limitado Completo
Exchange support Não Sim
Azure AD Connect Não suportado Sim
Schema extensions Limitado Completo
Custo Gratuito (OSS) Licença Windows Server + CAL
Requisito hardware Linux, 1GB RAM Windows Server, 2GB+ RAM

O Samba AD é ideal para PME que precisa de domínio mas não quer pagar licenças Microsoft Server. A principal limitação: não suporta Exchange nem Entra ID Connect. Se a PME usa Microsoft 365 com Entra ID Connect, precisa de Windows Server AD (Samba AD DC).

2. Pré-requisitos e Instalação

Requisito Detalhe
Servidor Linux Ubuntu 22.04+, Debian 12+ (recomendado)
RAM 1 GB mínima (2 GB para 50+ utilizadores)
IP estático Obrigatório (DC não pode usar DHCP)
Hostname FQDN (ex: dc1.empresa.pt)
DNS O servidor deve resolver o seu próprio FQDN

Configurar hostname e IP estático:

sudo hostnamectl set-hostname dc1.empresa.pt

Garantir que /etc/hosts tem o IP correcto:

sudo tee /etc/hosts > /dev/null << 'EOF' 127.0.0.1 localhost 192.168.1.10 dc1.empresa.pt dc1 EOF

O que cada linha faz:

  • 127.0.0.1 localhost — loopback standard
  • 192.168.1.10 dc1.empresa.pt dc1 — IP estático do DC com FQDN. CRÍTICO: o IP tem de ser o real do servidor

Remover referências ao resolvconf/systemd-resolved (Samba AD gere o seu próprio DNS):

sudo systemctl disable systemd-resolved
sudo systemctl stop systemd-resolved

Instalar Samba e ferramentas:

sudo apt update
sudo apt install samba smbclient winbind libpam-winbind libnss-winbind krb5-user dnsutils

O que cada pacote faz:

  • samba — o servidor Samba com suporte AD DC
  • smbclient — cliente SMB para testar partilhas
  • winbind — integração com NSS/PAM para autenticação Linux via AD
  • krb5-user — utilitários Kerberos (kinit, klist)
  • dnsutils — dig, nslookup para testar DNS

Se krb5-user pedir realm durante instalação, introduzir EMPRESA.PT (uppercase).

3. Passo 1 — Provisionar Domínio Samba AD

Remover config Samba existente (se houver):

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

Provisionar o domínio:

sudo samba-tool domain provision –use-rfc2307 –interactive

Responder aos prompts:

Prompt Resposta Notas
Realm EMPRESA.PT Uppercase. Realm Kerberos
Domain EMPRESA NetBIOS name (curto)
Server Role dc Controlador de domínio
DNS backend SAMBA_INTERNAL DNS integrado no Samba
Administrator password *** Mínimo 8 caracteres, complexa

O que cada parâmetro faz:

  • --use-rfc2307 — activa suporte a atributos POSIX (uid/gid) no LDAP. Necessário para autenticação Linux via AD
  • --interactive — modo interactivo para configurar realm, domain, DNS

⚠️ Atenção

A password do Administrator tem de cumprir a política complexa: 8+ caracteres, uppercase, lowercase, números, símbolos. Se não cumprir, o provision falha.

Configurar Kerberos:

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

Iniciar Samba AD DC:

sudo systemctl stop smbd nmbd winbind
sudo systemctl disable smbd nmbd winbind
sudo systemctl enable samba-ad-dc
sudo systemctl start samba-ad-dc

O Samba AD DC usa o serviço samba-ad-dc, não smbd/nmbd/winbind separados. Desactivar os serviços antigos para evitar conflitos de porta.

Verificar que o domínio funciona:

# Testar Kerberos
kinit [email protected]
klist

# Testar LDAP
ldapsearch -x -H ldap://dc1.empresa.pt -b “DC=empresa,DC=pt” -D “[email protected]” -W | head -20

4. Passo 2 — Configurar DNS e DHCP

O Samba AD tem DNS interno. Configurar o servidor para usar o seu próprio DNS:

sudo tee /etc/resolv.conf > /dev/null << 'EOF' nameserver 192.168.1.10 nameserver 8.8.8.8 search empresa.pt EOF

O que cada linha faz:

  • nameserver 192.168.1.10 — o DC como DNS primário (resolverá nomes AD + encaminha externos)
  • nameserver 8.8.8.8 — fallback DNS (Google) para resolução externa
  • search empresa.pt — permite procurar dc1 em vez de dc1.empresa.pt

Configurar forwarder DNS no Samba para resolver domínios externos:

sudo samba-tool dns add dc1.empresa.pt empresa.pt @ NS dc1.empresa.pt

Testar resolução DNS:

dig dc1.empresa.pt
dig _ldap._tcp.empresa.pt SRV

O registo SRV _ldap._tcp é o que as máquinas Windows usam para encontrar o DC. Se não resolver, o domínio não funciona.

Para DHCP, configurar o router/switch para distribuir o IP do DC (192.168.1.10) como DNS server para todas as máquinas da rede.

5. Passo 3 — Juntar Máquinas Windows ao Domínio

Numa máquina Windows 10/11:

  1. Settings > System > About > Advanced system settings
  2. Computer Name tab > Change
  3. Seleccionar “Domain” e introduzir EMPRESA.PT
  4. Quando pedir credenciais, usar administrator e a password definida no provision
  5. Reiniciar

Após reinício, o ecrã de login mostra EMPRESA\utilizador. Fazer login com uma conta AD.

ℹ️ Nota: A máquina Windows precisa de usar o DC como DNS server. Se a máquina usa o DNS do router (8.8.8.8), não vai conseguir encontrar o domínio. Verificar em Settings > Network > DNS server.

Verificar no Samba DC:

sudo samba-tool computer list

Deve mostrar a máquina Windows recém-juntada.

6. Passo 4 — Criar Utilizadores e Grupos

Criar um utilizador:

sudo samba-tool user create joao.silva \
–given-name=”João” \
–surname=”Silva” \
–mail=”[email protected]” \
–script-path=”login.bat”

O que cada parâmetro faz:

  • --given-name / --surname — nome próprio e apelido (LDAP attributes)
  • --mail — email do utilizador
  • --script-path — script de login que corre quando o utilizador faz logon (mapear partilhas, etc.)

Criar grupos:

sudo samba-tool group add “TI”
sudo samba-tool group add “Comercial”
sudo samba-tool group add “Direccao”

Adicionar utilizador a grupo:

sudo samba-tool group addmembers “TI” joao.silva

Definir password:

sudo samba-tool user setpassword joao.silva –newpassword=”NovaPass123!”

Listar utilizadores:

sudo samba-tool user list

7. Passo 5 — Configurar GPOs

O Samba AD suporta GPOs (Group Policy Objects) armazenados em SysVol. Criar GPOs via samba-tool:

sudo samba-tool gpo create “{6B2B1A4C-1234-5678-9ABC-DEF012345678}” “Política de Segurança Base”

Para editar GPOs, usar Group Policy Management Editor numa máquina Windows (ferramenta RSAT):

  1. Instalar RSAT: Settings > Apps > Optional features > Add "RSAT: Group Policy Management Tools"
  2. Abrir GPMC, ligar ao domínio Samba
  3. Editar GPO com as definições pretendidas

⚠️ Atenção

Nem todas as GPO settings do Windows Server são suportadas pelo Samba AD. Settings que dependam de features Windows Server específicas (DirectAccess, Always On VPN, Windows Hello for Business) podem não aplicar correctamente. Testar cada GPO numa OU de teste antes de aplicar ao domínio inteiro.

Exemplos de GPOs que funcionam bem com Samba AD:

  • Password policy (comprimento mínimo, complexidade, expiração)
  • Lockout policy (tentativas antes de bloquear)
  • Map network drive (mapear partilha SMB)
  • Desktop wallpaper
  • Remove Windows Store apps
  • Disable USB storage

8. Passo 6 — Réplica AD DC para Alta Disponibilidade

Para HA, adicionar um segundo DC. Num segundo servidor Linux:

sudo hostnamectl set-hostname dc2.empresa.pt
# Configurar /etc/hosts e /etc/resolv.conf como dc1
sudo apt install samba krb5-user dnsutils

# Juntar como DC adicional ao domínio existente
sudo samba-tool domain join empresa.pt DC \
–username=administrator \
–password=’*‘ \
–dns-backend=SAMBA_INTERNAL

sudo systemctl enable samba-ad-dc
sudo systemctl start samba-ad-dc

O que cada parâmetro faz:

  • domain join empresa.pt DC — junta-se como controlador de domínio (não membro)
  • --dns-backend=SAMBA_INTERNAL — mesmo DNS backend do DC primário

Verificar replicação:

sudo samba-tool drs showrepl

O output deve mostrar replicação inbound e outbound entre dc1 e dc2 sem erros (Samba DC replication).

9. Samba AD vs Windows Server AD — Comparação

Critério Samba AD DC Windows Server AD
Custo (PME 25 users) €0 ~€500 (Server licença) + €200 (CALs)
Custo hardware Linux, 1GB RAM Windows Server, 2GB+ RAM
Exchange Não suportado Nativo
Entra ID Connect Não Sim
GPO completeness 85% das settings 100%
Trust domains Limitado Completo
Schema extensions Manual (ldif) Via MS tools
Replicação Sim (DRS) Sim (nativo)
Suporte comercial Comunidade + paid Samba Microsoft Support
Maturidade Muito maduro (20+ anos) Standard
Ideal para PME sem Exchange/M365 PME com Exchange/M365

Recomendação para PME: Samba AD se não usas Exchange nem precisas de Entra ID Connect. Windows Server AD se tens Microsoft 365 com hybrid sync ou Exchange on-premises. Para PME com 25 utilizadores e Google Workspace (não M365), Samba AD é suficiente e poupa ~€700 em licenças.

10. Erros Comuns

Problema Causa Solução
kinit falha DNS não resolve _ldap._tcp SRV Verificar dig _ldap._tcp.empresa.pt SRV — tem de apontar para o DC
Máquina Windows não junta DNS errado na máquina Windows Configurar DC como DNS server na máquina Windows
samba-tool user create falha Password não cumpre política Password: 8+ chars, uppercase, lowercase, números, símbolos
GPO não aplica SysVol replication falhou Verificar samba-tool drs showrepl e permissões SysVol
Login lento (30s+) DNS com forwarder lento ou sem reverse zone Configurar forwarder rápido e criar reverse zone
samba-ad-dc não arranca smbd/nmbd ainda a correr systemctl stop smbd nmbd winbind && systemctl disable smbd nmbd winbind
Réplica não replica DNS do dc2 não aponta para dc1 /etc/resolv.conf com nameserver IP_DC1
Utilizador não consegue logon Conta desactivada ou password expirada samba-tool user enable joao.silva ou setpassword

11. Checklist Rápido de Verificação

  • [ ] Hostname FQDN configurado (hostname -f mostra dc1.empresa.pt)
  • [ ] IP estático (não DHCP)
  • [ ] /etc/hosts com IP correcto e FQDN
  • [ ] Samba AD DC provisionado e a correr (systemctl status samba-ad-dc)
  • [ ] Kerberos funciona (kinit [email protected] + klist)
  • [ ] DNS resolve _ldap._tcp.empresa.pt SRV
  • [ ] Máquina Windows juntou ao domínio
  • [ ] Utilizadores e grupos criados
  • [ ] GPOs aplicam (ver com gpresult /r numa máquina Windows)
  • [ ] Réplica DC configurada (se HA) — samba-tool drs showrepl sem erros

Artigos Relacionados

Este artigo foi útil?

Duarte Spínola

Deixe um Comentário