Active Directory: Configurando Samba AD com Linux Ubuntu

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.

Preparação do Ambiente

Primeiramente, é necessário realizar o download do Ubuntu Server, que pode ser feito através do link oficial Ubuntu Server Download. Recomenda-se utilizar as versões 22.04 ou 24.04 do Ubuntu Server para garantir compatibilidade e suporte atualizado. 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.

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 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

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 administrator@DOMAIN.LOCAL
Password for administrator@DOMAIN.LOCAL: (informe a senha)

$ klist
Ticket cache: FILE:/tmp/krb5cc_1000
Default principal: administrator@DOMAIN.LOCAL
Valid starting       Expires              Service principal
12/19/2023 08:55:56  12/19/2023 18:55:56  krbtgt/DOMAIN.LOCAL@DOMAIN.LOCAL
        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.

Referências

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Rolar para cima