Configurar um servidor Samba AD (Active Directory) no Linux Ubuntu pode parecer uma tarefa complicada, mas com um guia passo a passo, é possível realizar a instalação e configuração de maneira eficiente.
Neste tutorial, vamos abordar a configuração de um servidor Ubuntu para atuar como controlador de domínio utilizando o Samba, um software livre que implementa o protocolo SMB/CIFS, permitindo que máquinas Linux e Windows trabalhem em conjunto.
Requisitos
- Ubuntu Server 22.04 ou 24.04
- Servidor Virtual ou Físico com
- CPU: 2 Núcleos (dependendo do tamanho da sua rede)
- Memória: 4 GB
- HDD/SDD: 50 GB
- Rede: 1 Interface 1000Gbps
Preparação do Ambiente
Durante a instalação, opte por instalar o sistema apenas no modo texto e use o sistema de arquivos XFS, pois ele oferece melhor suporte para ACLs (Access Control Lists), embora o ext4 também seja uma opção viável.
A instalação passo a passo não faz parte do escopo deste guia.
Configuração Inicial do Servidor
Após a instalação, o primeiro passo é definir as configurações básicas do servidor, como o nome da máquina e o Fully Qualified Domain Name (FQDN). Para isso, utilize os seguintes comandos:
hostnamectl set-hostname ad01
Isso define o nome da máquina como “ad01”. Em seguida, edite o arquivo /etc/hosts
para associar o FQDN ao endereço IP da máquina:
sudo vi /etc/hosts
Adicione a linha:
192.168.0.10 ad01.domain.local ad01
Este comando vincula o FQDN ad01.domain.local
ao IP 192.168.0.10
. Verifique se a configuração está correta usando:
hostname -f
ping -c3 ad01.domain.local
Para evitar conflitos com o serviço DNS, desabilite o systemd-resolved
:
sudo systemctl disable --now systemd-resolved
sudo unlink /etc/resolv.conf
Depois, configure o DNS manualmente editando o arquivo /etc/resolv.conf
:
sudo vi /etc/resolv.conf
Adicione as seguintes linhas:
nameserver 192.168.0.10
search domain.local
Por fim, torne o arquivo imutável para evitar modificações acidentais:
sudo chattr +i /etc/resolv.conf
Instalação do Samba AD e Configuração do Kerberos
Agora, instale os pacotes necessários para configurar o Samba AD:
sudo apt-get update
sudo apt-get install acl attr samba samba-dsdb-modules samba-vfs-modules smbclient winbind libpam-winbind libnss-winbind libpam-krb5 krb5-config krb5-user dnsutils chrony net-tools
Durante a instalação, o sistema pedirá informações sobre o Kerberos. Utilize as seguintes configurações:
- Default Kerberos Verion 5 Realm: DOMAIN.LOCAL
- Kerberos Servers for your realm: ad01.domain.local
- Administrative server for your Kerberos realm: ad01.domain.local
Para ajustar a configuração do Kerberos, edite o arquivo /etc/pam.d/common-password
para alterar o minimum_uid
para 2000:
sudo vi /etc/pam.d/common-password
Adicione ou modifique a linha:
password [success=3 default=ignore] pam_krb5.so minimum_uid=2000
Em seguida, configure o arquivo /etc/krb5.conf
:
sudo vi /etc/krb5.conf
O conteúdo deve ser semelhante ao seguinte:
[libdefaults]
default_realm = DOMAIN.LOCAL
dns_lookup_realm = false
dns_lookup_kdc = true
[realms]
DOMAIN.LOCAL = {
default_domain = domain.local
}
[domain_realm]
ad01 = DOMAIN.LOCAL
Provisionamento do Active Directory do Samba AD
Antes de provisionar o AD, desabilite os serviços do Samba que não serão utilizados:
sudo systemctl disable --now smbd nmbd winbind
Faça um backup do arquivo de configurações do Samba
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
Agora, provisione o Active Directory:
sudo samba-tool domain provision
Durante o provisionamento, utilize as seguintes opções:
- On Realm prompte – <Enter>
- On Domian Promp – <Enter>
- On Server Roll – <Enter>
- On DNS Backend – <Enter>
- DNS Forwarding IP – 8.8.8.8 1.1.1.1
- Enter an Admin Password (informe a senha do administrador)
Configuração Final do Samba AD
Após o provisionamento, ajuste o arquivo /etc/samba/smb.conf
para incluir as seguintes configurações:
sudo vi /etc/samba/smb.conf
Adicione ou modifique as seguintes linhas:
[global]
dns forwarder = 8.8.8.8 1.1.1.1
netbios name = AD01
realm = DOMAIN.LOCAL
server role = active directory domain controller
workgroup = DOMAIN
vfs objects = dfs_samba4 acl_xattr
map acl inherit = Yes
inherit permissions = yes
inherit acls = yes
ldap server require strong auth = no
[sysvol]
path = /var/lib/samba/sysvol
read only = No
browseable = No
[netlogon]
path = /var/lib/samba/sysvol/domain.local/scripts
read only = No
browseable = No
Inicie o serviço do Samba AD:
sudo systemctl start samba-ad-dc
Verifique se o serviço do Samba AD está funcionando
sudo systemctl status samba-ad-dc
Sincronização de Hora com Chrony
Para garantir que a hora esteja sincronizada corretamente, ajuste o Chrony:
sudo chown root:_chrony /var/lib/samba/ntp_signd/
sudo chmod 750 /var/lib/samba/ntp_signd/
sudo vi /etc/chrony/chrony.conf
Adicione as seguintes linhas:
bindcmdaddress 192.168.0.10
ntpsigndsocket /var/lib/samba/ntp_signd
Verificação e Testes Finais do Samba AD
Por fim, verifique se o Active Directory está funcionando corretamente. Confira se o domínio e o servidor estão sendo encontrados:
host -t A domain.local
O retorno deve ser:
domain.local has address 192.168.0.10
Verifique se o servidor está sendo encontrado
host -t A ad01.domain.local
O retorno deve ser:
ad01.domain.local has address 192.168.0.10
Verifique o Kerberos:
host -t SRV _kerberos._udp.domain.local
O Retorno deve ser:
_kerberos._udp.domain.local has SRV record 0 100 88 ad01.domain.local.
Verifique o LDAP:
host -t SRV _ldap._tcp.domain.local
O retorno deve ser:
_ldap._tcp.domain.local has SRV record 0 100 389 ad01.domain.local.
Teste a autenticação do administrador:
kinit [email protected]
Será solicitada a senha:
Password for [email protected]: (informe a senha)
Verifique agora se o servidor reconhece as informações dos usuários, executando o comando:
klist
O retorno do comando deverá ser algo semelhante a:
Ticket cache: FILE:/tmp/krb5cc_1000
Default principal: [email protected]
Valid starting Expires Service principal
12/19/2023 08:55:56 12/19/2023 18:55:56 krbtgt/[email protected]
renew until 12/20/2023 08:55:52
Configure o arquivo /etc/nsswitch.conf
para incluir winbind
em passwd
e group
:
sudo vi /etc/nsswitch.conf
Ajuste:
passwd: files systemd winbind
group: files systemd winbind
Verifique se os usuários do domínio são reconhecidos:
getent passwd DOMAIN\\Administrator
O retorno deverá ser:
administrator:*:102500:102513::/home/DOMAIN/administrator:/bin/false
Verifique se os grupos do domínio estão sendo reconhecidos:
getent group "DOMAIN\\Domains Admins"
O retorno deverá ser:
domains admin:x:102512:
Se tudo estiver configurado corretamente, seu Samba AD estará operacional e pronto para ser gerenciado tanto pelo samba-tool
quanto pelas ferramentas RSAT em estações de trabalho participantes do domínio.
Se você tiver mais perguntas sobre Samba AD, sinta-se à vontade para entrar em contatos.