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