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
- Entender Samba AD e Compatibilidade com Microsoft AD
- Pré-requisitos e Instalação
- Passo 1 — Provisionar Domínio Samba AD
- Passo 2 — Configurar DNS e DHCP
- Passo 3 — Juntar Máquinas Windows ao Domínio
- Passo 4 — Criar Utilizadores e Grupos
- Passo 5 — Configurar GPOs
- Passo 6 — Réplica AD DC para Alta Disponibilidade
- Samba AD vs Windows Server AD — Comparação
- Erros Comuns
- 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:
Garantir que /etc/hosts tem o IP correcto:
O que cada linha faz:
127.0.0.1 localhost— loopback standard192.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 stop systemd-resolved
Instalar Samba e ferramentas:
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 DCsmbclient— cliente SMB para testar partilhaswinbind— integração com NSS/PAM para autenticação Linux via ADkrb5-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):
Provisionar o domínio:
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:
Iniciar Samba AD DC:
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:
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:
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 externasearch empresa.pt— permite procurardc1em vez dedc1.empresa.pt
Configurar forwarder DNS no Samba para resolver domínios externos:
Testar resolução DNS:
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:
- Settings > System > About > Advanced system settings
- Computer Name tab > Change
- Seleccionar “Domain” e introduzir
EMPRESA.PT - Quando pedir credenciais, usar
administratore a password definida no provision - 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:
Deve mostrar a máquina Windows recém-juntada.
6. Passo 4 — Criar Utilizadores e Grupos
Criar um utilizador:
–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 “Comercial”
sudo samba-tool group add “Direccao”
Adicionar utilizador a grupo:
Definir password:
Listar utilizadores:
7. Passo 5 — Configurar GPOs
O Samba AD suporta GPOs (Group Policy Objects) armazenados em SysVol. Criar GPOs via samba-tool:
Para editar GPOs, usar Group Policy Management Editor numa máquina Windows (ferramenta RSAT):
- Instalar RSAT:
Settings > Apps > Optional features > Add "RSAT: Group Policy Management Tools" - Abrir GPMC, ligar ao domínio Samba
- 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:
# 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:
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 -fmostradc1.empresa.pt) - [ ] IP estático (não DHCP)
- [ ]
/etc/hostscom 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 /rnuma máquina Windows) - [ ] Réplica DC configurada (se HA) —
samba-tool drs showreplsem erros
Artigos Relacionados
- BitLocker + Entra ID Join 2026 — Alternativa cloud-only ao domínio on-premises
- Linux Server Hardening Checklist 2026 — Hardening do servidor que corre Samba AD
- ISO 27001 para PME: Anexo A 2026 — Samba AD ajuda com controlos A.9 (access control)
- Ansible: Automatização de PME em 2026 — Gerir contas AD via Ansible + samba-tool
- NIS2: Implementação em 90 Dias — Gestão de identidades como controlo NIS2
