Samba4
Aparência
Samba4 AC/DC
Provisionamento
Fixar IP
Cópia de segurança do arquivo
cp /etc/netplan/*.yaml /etc/netplan/*.yaml.bckp
Edite o arquivo ".yaml" em "/etc/netplan" conforme abaixo:
network:
version: 2
ethernets:
enp0s3:
dhcp4: false
adresses: [192.168.0.100/24]
routes:
- to: default
via: 192.168.0.1
nameservers:
adresses:
- 8.8.8.8
- 1.1.1.1
Ajuste no /etc/hosts
Edite o arquivo
vim /etc/hosts
ajuste como o trecho abaixo
127.0.0.1 localhost.localdomain localhost 127.0.1.1 dominio.dominio.local ad1 192.168.18.10 ad1.dominio.local ad1
Ajuste no /etc/hostname
Edite o arquivo /etc/hostname
hostnamectl set-hostname AD1.DOMINIO.LOCAL
Ajuste date e hora
timedatectl set-timezone America/Sao_Paulo
Para verificar a hora
date
Instala as dependências
apt install autoconf apt install bind9utils apt install bison apt install debhelper apt install dnsutils apt install docbook-xml apt install docbook-xsl apt install flex apt install gdb apt install libjansson-dev apt install libacl1-dev apt install libaio-dev apt install libarchive-dev apt install libattr1-dev apt install libblkid-dev apt install libbsd-dev apt install libcap-dev apt install libcups2-dev apt install libgnutls28-dev apt install libgpgme11-dev apt install libjson-perl apt install libldap2-dev apt install libncurses5-dev apt install libpam0g-dev apt install libparse-yapp-perl apt install libpopt-dev apt install libreadline-dev apt install nettle-dev apt install perl apt install perl-modules apt install pkg-config apt install python-all-dev apt install python-crypto apt install python-dbg apt install python-dev apt install python-dnspython apt install python3-dnspython apt install python-gpg apt install python3-gpg apt install python-markdown apt install python3-markdown apt install python3-dev apt install xsltproc apt install zlib1g-dev apt install liblmdb-dev apt install lmdb-utils apt install libsystemd-dev
Reinicia
reboot now
Instala mais o samba e suas dependências
apt install samba apt install krb5-user apt install winbind apt install libnss-winbind apt install smbclient apt install ldap-utils apt install acl apt install attr apt install ntp
Configurar o Kerberos
Configuring Kerberos Authentication
default kerberos Realm: DOMINIO.LOCAL
Kerberos Server for your realm: 127.0.0.1
Administrative Server for your Kerberos realm: 127.0.0.1
Parar alguns serviços
systemctl stop smbd.service systemctl stop nmbd.service systemctl stop winbind.service
Remover o smb.conf
mv /etc/samba/smb.conf /etc/samba/smb.conf.bckp
Provisionamento
samba-tool domain provision --use-rfc2307 --interactive
Em um certo momento do provisionamento, será perguntado algumas informações, confirme como abaixo:
Realm [ ]: DOMINIO.LOCAL Domain[ ]: DOMINIO Server Role [dc]: dc DNS Backend [SAMBA_INTERNAL]: SAMBA_INTERNAL DNS Forwarder IP address[127.0.0.53]: 8.8.8.8 Administrator password: *************
Iniciar os serviços que foram parados anteriormente:
/etc/init.d/samba-ad-dc restart systemctl unmask samba-ad-dc.service systemctl enable samba-ad-dc.service systemctl restart samba-ad-dc.service systemctl status samba-ad-dc.service
Desativar o systemd-resolved
systemctl disable systemd-resolved.service systemctl stop systemd-resolved.service
Editar o arquivo /etc/resolv.conf
vim /etc/resolv.conf
Inclua o trecho abaixo:
nameserver 192.168.0.1 domain dominio.local search dominio.local
Exportar o krb5.conf
cp -vb /var/lib/samba/private/krb5.conf /etc/krb5.conf
Reinicia
reboot now
Realização de testes
smbclient -L localhost -U Administrator
Verificar se o serviço de DNS está funcionando fazendo as resoluções:
host -t A dominio.local host -t SRV _ldap._tcp.dominio.local host -t SRV _kerberos._udp.dominio.local
Verificar o funcionamento do KERBEROS
kinit [email protected] klist
Verifica o nivel da árvore
samba-tool domain level show
Colocar no Domínio
Linux Desktop
Para inserir seu Ubuntu Desktop (ou qualquer outro com base no Ubuntu) no domínio DOMINIO.LOCAL, execute o passo a passo pelo terminal.
Requisitos:
- Nome DNS resolvido corretamente (/etc/resolv.conf)
- Usuário do domínio com permissão para adicionar máquinas (ex: Administrador)
- Hora sincronizada com o AD
- Hostname da máquina configurado corretamente
🔧 1. Configure hostname e resolv.conf
A. Defina o hostname:
sudo hostnamectl set-hostname xubuntu.dominio.local
B. Edite o /etc/hosts:
sudo nano /etc/hosts
Adicione (ou edite) a linha correspondente:
192.168.0.123 xubuntu.dominio.local xubuntu
C. Configure o DNS para apontar para o Samba AD:
sudo nano /etc/systemd/resolved.conf
Altere (ou descomente e edite) as linhas:
DNS=192.168.0.10
Domains=dominio.local
Salve, e reinicie o serviço de DNS:
sudo systemctl restart systemd-resolved
🕓 2. Configure o timezone e sincronize o relógio (importante!)
sudo timedatectl set-timezone America/Sao_Paulo
sudo apt install chrony -y
Edite /etc/chrony/chrony.conf e adicione no início:
server 192.168.0.10 iburst
Depois:
sudo systemctl restart chrony
chronyc tracking
📦 3. Instalar os pacotes necessários
sudo apt update
sudo apt install realmd sssd sssd-tools adcli samba-common-bin packagekit libnss-sss libpam-sss krb5-user -y
Durante a instalação do krb5-user, insira:
Realm: DOMINIO.LOCAL
Servidor KDC: dominio.local
Servidor Admin: dominio.local
🔐 4. Testar autenticação no domínio (Kerberos)
kinit [email protected]
Você será solicitado a inserir a senha. Se tudo estiver certo, você pode verificar com:
klist
🏁 5. Ingressar a máquina no domínio
sudo realm join --user=administrador DOMINIO.LOCAL
Se houver erro de DNS ou tempo, volte aos passos anteriores.
🔍 6. Verifique se foi ingressado corretamente
realm list
Você deve ver algo como:
realm-name: DOMINIO.LOCAL
configured: kerberos-member
👥 7. Permitir usuários do domínio
Para permitir todos os usuários:
sudo realm permit --all
Ou apenas um grupo:
sudo realm permit --groups "DOMINIO\Domain Users"
👤 8. Login de usuários do domínio (no LightDM ou terminal)
Você pode logar com:
[email protected]
Para que usuários do domínio tenham diretórios home:
sudo pam-auth-update
E marque: "Create home directory on login"
🧪 9. Testar no terminal
Tente rodar:
id [email protected]
Você deve ver as informações do usuário, com grupos do domínio.
💡 DICA: Evite digitar o domínio no login
Edite /etc/sssd/sssd.conf (se não existir, crie com cuidado):
[sssd]
domains = dominio.local
config_file_version = 2
services = nss, pam
[domain/dominio.local]
id_provider = ad
override_homedir = /home/%u
default_shell = /bin/bash
Depois:
sudo chmod 600 /etc/sssd/sssd.conf
sudo systemctl restart sssd