🐧 Servidor Linux Ubuntu + Active Directory

Guia prático (pt-PT) — Do zero à configuração de um Controlador de Domínio Samba com AD

✅ Ubuntu Server 22.04 / 24.04 LTS • Samba 4+

📖 Introdução: O que é um servidor Linux com Active Directory?

Active Directory (AD) é um serviço de diretório desenvolvido originalmente pela Microsoft, usado para gestão centralizada de domínios, autenticação e políticas. Com Samba 4 no Ubuntu, podemos implementar um Controlador de Domínio (DC) compatível com AD, sem custos de licenciamento Windows Server, ideal para ambientes mistos ou 100% Linux.

🎯 Objectivo deste guia: Instalar o Ubuntu Server, configurar endereço IP fixo, instalar o Samba, provisionar um domínio (ex: empresa.local), adicionar utilizadores, e preparar o servidor para que computadores Windows/Linux se possam juntar ao domínio.

✅ Pré‑requisitos (hardware/rede)

  • Máquina física ou virtual (VM) com pelo menos 2 GB de RAM (recomendado 4 GB) e 20 GB de disco.
  • Processador de 64 bits (x86_64).
  • ISO da última versão LTS do Ubuntu Server → ubuntu.com/download/server.
  • Rede estável com um router que permita IP fixo (ou configuração manual).
  • Conhecimentos básicos de terminal Linux (ajuda incluída).
⚠️ Aviso: O servidor de domínio deve ter um nome de host e IP fixo. Evite usar domínios .local em redes com mDNS (Apple/Roku), mas para laboratório funciona. Use algo como intra.exemplo.pt quando possível. Este guia utiliza srvad.exemplo.pt.
💡 Vantagens: Autenticação centralizada, gestão de permissões, partilha de ficheiros com kerberos, DNS integrado, tudo com software livre.

🖥️ Passo 1: Instalação do Ubuntu Server

Grava a ISO num pendrive (com Rufus ou BalenaEtcher) ou monta numa VM.

🔧 Durante a instalação (pontos críticos):

  • Idioma: Português (Portugal) ou Inglês (recomendado para maior compatibilidade).
  • Layout do teclado: PT ou PT-latin1.
  • Opção de instalação: "Ubuntu Server" (sem interface gráfica).
  • Rede: Podes configurar IP dinâmico temporariamente, mas vamos definir IP fixo no passo 2.
  • Configuração de proxy: deixar vazio (excepto se usares proxy).
  • Mirror: manter o padrão (archive.ubuntu.com).
  • Armazenamento: usar "Guided – usar disco inteiro" (LVM opcional).
  • Perfil: "Servidor padrão" (sem snaps extras).
  • SSH: Marcar "Instalar servidor OpenSSH" → para acesso remoto.
  • Software adicional: Nenhum por agora (fazemos após boot).
Após reinicialização, faz login com o utilizador criado.
📌 Dica: Mantém o nome do host temporário, depois alteramos via sudo hostnamectl set-hostname srvad.exemplo.pt.

⚙️ Passo 2: Configurar rede estática e atualizações

O AD precisa de um IP invariável. Vamos editar o ficheiro Netplan (Ubuntu 18.04+).

🔍 Identifique a interface de rede:

ip a

Geralmente eth0, ens33 ou enp0s3.

✏️ Editar configuração Netplan:

sudo nano /etc/netplan/00-installer-config.yaml

Exemplo de configuração com IP fixo (substitui pelos teus dados):

network: version: 2 ethernets: ens33: # substituir pela tua interface dhcp4: no addresses: - 192.168.1.100/24 # IP fixo do servidor AD routes: - to: default via: 192.168.1.1 # gateway do router nameservers: addresses: [127.0.0.1, 8.8.8.8] # depois o próprio servidor será DNS search: [exemplo.pt]
sudo netplan apply # aplica as alterações

📦 Atualizar sistema e definir hostname:

sudo apt update && sudo apt upgrade -y sudo hostnamectl set-hostname srvad.exemplo.pt echo "127.0.1.1 srvad.exemplo.pt srvad" | sudo tee -a /etc/hosts
✔️ Reinicie o serviço de rede: sudo systemctl restart systemd-networkd e confirme ping para o gateway.

🔐 Passo 3: Instalar pacotes Samba e dependências

Vamos instalar o Samba 4, ACLs, Kerberos e ferramentas de DNS.

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

Durante a instalação do Kerberos, surge configuração: introduza o nome do domínio em MAIÚSCULAS. Exemplo: EXEMPLO.PT. O servidor padrão será srvad.exemplo.pt. Para o domínio administrativo: EXEMPLO.PT.

🧩 Nota importante: Vamos usar o Samba no modo "domain controller", por isso vamos parar os serviços padrão e provisionar um domínio de raiz.
sudo systemctl stop smbd nmbd winbind sudo systemctl disable smbd nmbd winbind sudo systemctl mask smbd nmbd winbind
⚠️ Parar serviços antigos evita conflitos. O Samba como DC gerirá os seus próprios serviços (samba-ad-dc).

🌐 Passo 4: Provisionar um novo domínio (samba-tool)

Comando mágico que cria a estrutura AD, base de dados, DNS, etc.

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

Respostas sugeridas (adapte ao seu cenário):

  • Realm: EXEMPLO.PT (em maiúsculas)
  • Domain: EXEMPLO (parte NETBIOS do domínio)
  • Server Role: dc (domain controller)
  • DNS backend: SAMBA_INTERNAL (recomendado para iniciantes)
  • DNS forwarder: IP do router ou 8.8.8.8 (resolução externa)
  • Administrator password: defina uma password forte (guarde bem!)

Ou use método não interativo (exemplo):

sudo samba-tool domain provision --realm=EXEMPLO.PT --domain=EXEMPLO --adminpass='S3nh@F0rt3$2025' --server-role=dc --dns-backend=SAMBA_INTERNAL --use-rfc2307

🔁 Ativar serviço do Samba AD DC:

sudo mv /etc/krb5.conf /etc/krb5.conf.orig sudo cp /var/lib/samba/private/krb5.conf /etc/krb5.conf sudo systemctl unmask samba-ad-dc sudo systemctl enable samba-ad-dc sudo systemctl start samba-ad-dc
✔️ Verifique o estado: sudo systemctl status samba-ad-dc – deve estar ativo (running).
sudo smbclient -L localhost -N # testa listagem básica kinit administrator@EXEMPLO.PT # testa kerberos (digite a pass) klist # vê bilhetes

👥 Passo 5: Administração do AD (utilizadores, grupos, DNS)

A partir do próprio servidor, podemos usar ferramentas de linha de comando do Samba.

➕ Criar uma unidade organizacional (OU) e um utilizador:

sudo samba-tool ou create "OU=Colaboradores" sudo samba-tool user create antonio.silva --given-name=Antonio --surname=Silva --must-change-at-next-login

📌 Adicionar utilizador a grupo "Domain Admins":

sudo samba-tool group addmembers "Domain Admins" antonio.silva

🌐 Gerir entradas DNS:

sudo samba-tool dns add srvad.exemplo.pt exemplo.pt cliente1 A 192.168.1.120 -U administrator sudo samba-tool dns query srvad.exemplo.pt exemplo.pt cliente1 A -U administrator
📂 Partilhas de pastas (opcional): Pode editar /var/lib/samba/sysvol ou criar novas partilhas usando samba-tool shares. Ex: sudo samba-tool share add 'partilha' /srv/share --comment "Ficheiros".

Para listar todos os utilizadores:

sudo samba-tool user list

🧪 Passo 6: Testar Autenticação e juntar um cliente ao domínio

🔎 Verificar resolução DNS do domínio a partir do cliente:

Certifique-se que o cliente usa o IP do servidor AD como servidor DNS primário.

nslookup exemplo.pt 192.168.1.100 # deve apontar para o DC ping srvad.exemplo.pt

🪟 Cliente Windows (10/11/Server):

  • Configurar IPv4: DNS primário = IP do servidor Ubuntu AD.
  • Em "Sistema" → "Renomear este PC" → "Domínio": digite exemplo.pt.
  • Credenciais: administrator + password definida no provisionamento.
  • Reiniciar: autenticação com utilizador do domínio (ex: EXEMPLO\antonio.silva).

🐧 Cliente Linux (Ubuntu Desktop):

sudo apt install realmd sssd sssd-tools libnss-sss libpam-sss adcli sudo realm discover exemplo.pt sudo realm join exemplo.pt -U administrator
✔ Após join, pode fazer login com antonio.silva@exemplo.pt e a respectiva palavra-passe.
Lembre-se: sincronização de horário (NTP) é crucial para Kerberos. Configure NTP no servidor e clientes.

📚 Passo 7: Boas práticas, manutenção e segurança

🔁 Cópias de segurança (backup) do AD:
sudo samba-tool domain backup offline --backup-file=/backups/samba-ad-backup-$(date +%F).tar
Guarde também /var/lib/samba/private/ e /etc/samba/.
🧰 Monitorização: Veja logs em /var/log/samba/. Teste saúde do domínio:
sudo samba-tool domain level show
sudo samba-tool fsmo show

✅ Lista de verificação pós-instalação

  • Firewall: permitir tráfego AD/dns/kerberos (portas 53, 88, 135, 139, 389, 445, 464, 636, 3268-3269).
  • Agendar backups automáticos (cron).
  • Certifique-se de que o servidor tem horário correto (instalar chrony).
  • Para ambiente de produção, utilize um segundo DC para redundância.
  • Evite usar domínios .local se houver conflitos com mDNS.
📘 Referência oficial: Samba Wiki - Domain Controller | Ubuntu Community Docs.
🎉 Então já tem um servidor Linux Ubuntu a funcionar como Active Directory! Com esta base, pode gerir utilizadores, partilhas, políticas e autenticação para toda a rede.