Samba4: mudanças entre as edições
Sem resumo de edição Etiqueta: wikieditor |
Sem resumo de edição |
||
| Linha 211: | Linha 211: | ||
samba-tool domain level show | samba-tool domain level show | ||
= SAMBA AD (Compilado) = | |||
== Preparação == | |||
=== Definir hostname correto (FQDN) | |||
O hostname precisa ser um nome completo (FQDN). | |||
hostnamectl set-hostname ad20.fourtrust.local | |||
E valide: | |||
hostname -f | |||
=== Ajustar /etc/hosts === | |||
vim /etc/hosts | |||
Deixe assim (ajuste IP e domínio): | |||
<pre> | |||
127.0.0.1 localhost | |||
192.168.0.10 ad20.fourtrust.local ad20 | |||
</pre> | |||
=== IP fixo (OBRIGATÓRIO) === | |||
AD não funciona com DHCP. | |||
Configure no Netplan: | |||
<pre> | |||
vim /etc/netplan/*.yaml | |||
<pre> | |||
Exemplo: | |||
network: | |||
version: 2 | |||
ethernets: | |||
eth0: | |||
dhcp4: no | |||
addresses: | |||
- 192.168.0.100/24 | |||
gateway4: 192.168.0.1 | |||
nameservers: | |||
addresses: | |||
- 127.0.0.1 | |||
- 8.8.8.8 | |||
</pre> | |||
Depois: | |||
netplan try | |||
netplan apply | |||
=== Resolver DNS local === | |||
Antes de provisionar, o sistema já deve usar ele mesmo como DNS: | |||
Verifique o link simbólico atual | |||
ls -l /etc/resolv.conf | |||
Desabilite o systemd-resolved | |||
sudo systemctl disable --now systemd-resolved | |||
Edite: | |||
vim /etc/resolv.conf | |||
Deixe: | |||
nameserver 127.0.0.1 | |||
search fourtrust.local | |||
=== Sincronização de horário (CRÍTICO pro Kerberos) === | |||
Kerberos quebra se o horário estiver errado. | |||
Setar "Time Zone" para America - São Paulo. | |||
timedatectl set-timezone America/Sao_Paulo | |||
Validando: | |||
timedatectl | |||
<pre> | |||
Local time: Wed 2026-05-06 10:58:01 -03 | |||
Universal time: Wed 2026-05-06 13:58:01 UTC | |||
RTC time: Wed 2026-05-06 13:58:02 | |||
Time zone: America/Sao_Paulo (-03, -0300) | |||
System clock synchronized: yes | |||
NTP service: active | |||
RTC in local TZ: no | |||
</pre> | |||
=== Remover conflitos (IMPORTANTÍSSIMO) === | |||
Pare qualquer serviço que conflita com o Samba AD: | |||
systemctl stop smbd nmbd winbind | |||
systemctl disable smbd nmbd winbind | |||
Se instalou pacotes via apt antes, considere remover: | |||
apt remove samba samba-common-bin -y | |||
=== Limpar configurações antigas === | |||
Se já tentou antes: | |||
rm -rf /usr/local/samba/etc/smb.conf | |||
rm -rf /usr/local/samba/private/* | |||
rm -rf /usr/local/samba/var/* | |||
=== Teste básico antes do provision === | |||
Teste resolução: | |||
hostname -f | |||
ping ad20.fourtrust.local | |||
== Instalação == | |||
=== Baixa os arquivos === | |||
wget https://download.samba.org/pub/samba/samba-latest.tar.gz | |||
=== Descompacta === | |||
tar -xvf sambaxxxx.tar.gz | |||
=== Instala dependencias === | |||
Navegue até a pasta onde está o script que instala as dependências: | |||
sambaxxx/bootstrap/generated-dists/ubuntuxx/bootstrap.sh | |||
roda o script como sudo | |||
sudo ./bootstrap.sh | |||
=== Compila === | |||
Dentro da pasta do samba: | |||
./configure | |||
make | |||
make install | |||
== Provision == | |||
Tem que resolver para o IP local. | |||
samba-tool domain provision --use-rfc2307 --interactive | |||
Pós provisionamento | |||
ln -sf /var/lib/samba/private/krb5.conf /etc/krb5.conf | |||
=== Pós provisionamento === | |||
==== Mudar o PATH ==== | |||
Edite: | |||
sudo vim /etc/profile | |||
Adicione no FINAL do arquivo e salve-o: | |||
export PATH=$PATH:/usr/local/samba/bin:/usr/local/samba/sbin | |||
Depois recarregue: | |||
source /etc/profile | |||
Validando: | |||
which samba | |||
which samba-tool | |||
which smbclient | |||
Deve retornar algo como: | |||
/usr/local/samba/sbin/samba | |||
/usr/local/samba/bin/samba-tool | |||
==== Staus do Samba ==== | |||
systemctl status samba-ad-dc | |||
systemctl start samba-ad-dc | |||
systemctl enable samba-ad-dc | |||
==== Testar o domínio ==== | |||
/usr/local/samba/bin/samba-tool domain level show | |||
Esperado: | |||
Domain and forest function level for domain 'DC=rjgsnet,DC=local' | |||
Forest function level: (Windows) 2008 R2 | |||
Domain function level: (Windows) 2008 R2 | |||
Lowest function level of a DC: (Windows) 2008 R2 | |||
==== Testar autenticação local ==== | |||
/usr/local/samba/bin/smbclient -L localhost -U Administrator | |||
Vai pedir senha do <code>Administrator</code> | |||
Esperado: | |||
<pre> | |||
Password for [RJGSNET\Administrator]: | |||
Sharename Type Comment | |||
--------- ---- ------- | |||
sysvol Disk | |||
netlogon Disk | |||
IPC$ IPC IPC Service (Samba 4.24.1) | |||
SMB1 disabled -- no workgroup available | |||
</pre> | |||
==== Testar DNS ==== | |||
host -t A rjgsnet.local | |||
Esperando: | |||
rjgsnet.local has address 192.168.0.100 | |||
ou: | |||
/usr/local/samba/bin/samba-tool dns query localhost rjgsnet.local @ ALL | |||
Esperando: | |||
<pre> | |||
Password for [[email protected]]: | |||
Name=, Records=4, Children=0 | |||
SOA: serial=1, refresh=900, retry=600, expire=86400, minttl=3600, ns=rjgs.rjgsnet.local., email=hostmaster.rjgsnet.local. (flags=600000f0, serial=1, ttl=3600) | |||
NS: rjgs.rjgsnet.local. (flags=600000f0, serial=1, ttl=900) | |||
A: 192.168.0.100 (flags=600000f0, serial=1, ttl=900) | |||
AAAA: 2804:014c:7983:9179:9a4b:e1ff:fe12:7d6f (flags=600000f0, serial=1, ttl=900) | |||
Name=_msdcs, Records=0, Children=0 | |||
Name=_sites, Records=0, Children=1 | |||
Name=_tcp, Records=0, Children=4 | |||
Name=_udp, Records=0, Children=2 | |||
Name=DomainDnsZones, Records=0, Children=2 | |||
Name=ForestDnsZones, Records=0, Children=2 | |||
Name=rjgs, Records=2, Children=0 | |||
A: 192.168.0.100 (flags=f0, serial=1, ttl=900) | |||
AAAA: 2804:014c:7983:9179:9a4b:e1ff:fe12:7d6f (flags=f0, serial=1, ttl=900) | |||
</pre> | |||
==== Testar Kerberos ==== | |||
kinit Administrator | |||
Esperado: | |||
Password for [email protected]: | |||
Warning: Your password will expire in 41 days on Sun 21 Jun 2026 12:41:52 AM -03 | |||
Depois: | |||
klist | |||
Esperado: | |||
<pre> | |||
Ticket cache: FILE:/tmp/krb5cc_0 | |||
Default principal: [email protected] | |||
Valid starting Expires Service principal | |||
05/10/2026 01:14:47 05/10/2026 11:14:47 krbtgt/[email protected] | |||
renew until 05/11/2026 01:14:40 | |||
</pre> | |||
==== Testar usuários ==== | |||
/usr/local/samba/bin/samba-tool user list | |||
Esperado: Deve listar os usuários iniciais | |||
Administrator | |||
Guest | |||
krbtgt | |||
== Iniciar com o boot == | |||
Criar o arquivo do serviço | |||
vim /etc/systemd/system/samba-ad-dc.service | |||
Cole o conteúdo e salve: | |||
<pre> | |||
[Unit] | |||
Description=Samba Active Directory Domain Controller | |||
After=network.target network-online.target | |||
Wants=network-online.target | |||
[Service] | |||
Type=forking | |||
PIDFile=/usr/local/samba/var/run/samba.pid | |||
ExecStart=/usr/local/samba/sbin/samba --daemon | |||
ExecReload=/bin/kill -HUP $MAINPID | |||
ExecStop=/bin/kill -TERM $MAINPID | |||
LimitNOFILE=16384 | |||
Restart=on-failure | |||
RestartSec=5 | |||
[Install] | |||
WantedBy=multi-user.target | |||
</pre> | |||
Recarregue o systemd | |||
systemctl daemon-reload | |||
Habilite no boot | |||
systemctl enable samba-ad-dc | |||
== Desabilitar a complexidade da senha == | |||
samba-tool domain passwordsettings set --complexity=off | |||
Esperado: | |||
Password complexity deactivated! | |||
All changes applied successfully! | |||
Diminuir a complexidade para 4 caracteres | |||
samba-tool domain passwordsettings set --min-pwd-length=4 | |||
== Fonte == | |||
* https://wiki.samba.org/index.php/Installing_Samba | |||
== Colocar no Domínio == | == Colocar no Domínio == | ||
Edição das 01h59min de 10 de maio de 2026
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
SAMBA AD (Compilado)
Preparação
=== Definir hostname correto (FQDN)
O hostname precisa ser um nome completo (FQDN).
hostnamectl set-hostname ad20.fourtrust.local
E valide:
hostname -f
Ajustar /etc/hosts
vim /etc/hosts
Deixe assim (ajuste IP e domínio):
127.0.0.1 localhost 192.168.0.10 ad20.fourtrust.local ad20
IP fixo (OBRIGATÓRIO)
AD não funciona com DHCP.
Configure no Netplan:
vim /etc/netplan/*.yaml
<pre>
Exemplo:
network:
version: 2
ethernets:
eth0:
dhcp4: no
addresses:
- 192.168.0.100/24
gateway4: 192.168.0.1
nameservers:
addresses:
- 127.0.0.1
- 8.8.8.8
Depois:
netplan try netplan apply
Resolver DNS local
Antes de provisionar, o sistema já deve usar ele mesmo como DNS:
Verifique o link simbólico atual
ls -l /etc/resolv.conf
Desabilite o systemd-resolved
sudo systemctl disable --now systemd-resolved
Edite:
vim /etc/resolv.conf
Deixe:
nameserver 127.0.0.1 search fourtrust.local
Sincronização de horário (CRÍTICO pro Kerberos)
Kerberos quebra se o horário estiver errado.
Setar "Time Zone" para America - São Paulo.
timedatectl set-timezone America/Sao_Paulo
Validando:
timedatectl
Local time: Wed 2026-05-06 10:58:01 -03
Universal time: Wed 2026-05-06 13:58:01 UTC
RTC time: Wed 2026-05-06 13:58:02
Time zone: America/Sao_Paulo (-03, -0300)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
Remover conflitos (IMPORTANTÍSSIMO)
Pare qualquer serviço que conflita com o Samba AD:
systemctl stop smbd nmbd winbind systemctl disable smbd nmbd winbind
Se instalou pacotes via apt antes, considere remover:
apt remove samba samba-common-bin -y
Limpar configurações antigas
Se já tentou antes:
rm -rf /usr/local/samba/etc/smb.conf rm -rf /usr/local/samba/private/* rm -rf /usr/local/samba/var/*
Teste básico antes do provision
Teste resolução:
hostname -f ping ad20.fourtrust.local
Instalação
Baixa os arquivos
wget https://download.samba.org/pub/samba/samba-latest.tar.gz
Descompacta
tar -xvf sambaxxxx.tar.gz
Instala dependencias
Navegue até a pasta onde está o script que instala as dependências:
sambaxxx/bootstrap/generated-dists/ubuntuxx/bootstrap.sh
roda o script como sudo
sudo ./bootstrap.sh
Compila
Dentro da pasta do samba:
./configure make make install
Provision
Tem que resolver para o IP local.
samba-tool domain provision --use-rfc2307 --interactive
Pós provisionamento
ln -sf /var/lib/samba/private/krb5.conf /etc/krb5.conf
Pós provisionamento
Mudar o PATH
Edite:
sudo vim /etc/profile
Adicione no FINAL do arquivo e salve-o:
export PATH=$PATH:/usr/local/samba/bin:/usr/local/samba/sbin
Depois recarregue:
source /etc/profile
Validando:
which samba which samba-tool which smbclient
Deve retornar algo como:
/usr/local/samba/sbin/samba /usr/local/samba/bin/samba-tool
Staus do Samba
systemctl status samba-ad-dc systemctl start samba-ad-dc systemctl enable samba-ad-dc
Testar o domínio
/usr/local/samba/bin/samba-tool domain level show
Esperado:
Domain and forest function level for domain 'DC=rjgsnet,DC=local' Forest function level: (Windows) 2008 R2 Domain function level: (Windows) 2008 R2 Lowest function level of a DC: (Windows) 2008 R2
Testar autenticação local
/usr/local/samba/bin/smbclient -L localhost -U Administrator
Vai pedir senha do Administrator
Esperado:
Password for [RJGSNET\Administrator]:
Sharename Type Comment
--------- ---- -------
sysvol Disk
netlogon Disk
IPC$ IPC IPC Service (Samba 4.24.1)
SMB1 disabled -- no workgroup available
Testar DNS
host -t A rjgsnet.local
Esperando:
rjgsnet.local has address 192.168.0.100
ou:
/usr/local/samba/bin/samba-tool dns query localhost rjgsnet.local @ ALL
Esperando:
Password for [[email protected]]: Name=, Records=4, Children=0 SOA: serial=1, refresh=900, retry=600, expire=86400, minttl=3600, ns=rjgs.rjgsnet.local., email=hostmaster.rjgsnet.local. (flags=600000f0, serial=1, ttl=3600) NS: rjgs.rjgsnet.local. (flags=600000f0, serial=1, ttl=900) A: 192.168.0.100 (flags=600000f0, serial=1, ttl=900) AAAA: 2804:014c:7983:9179:9a4b:e1ff:fe12:7d6f (flags=600000f0, serial=1, ttl=900) Name=_msdcs, Records=0, Children=0 Name=_sites, Records=0, Children=1 Name=_tcp, Records=0, Children=4 Name=_udp, Records=0, Children=2 Name=DomainDnsZones, Records=0, Children=2 Name=ForestDnsZones, Records=0, Children=2 Name=rjgs, Records=2, Children=0 A: 192.168.0.100 (flags=f0, serial=1, ttl=900) AAAA: 2804:014c:7983:9179:9a4b:e1ff:fe12:7d6f (flags=f0, serial=1, ttl=900)
Testar Kerberos
kinit Administrator
Esperado:
Password for [email protected]: Warning: Your password will expire in 41 days on Sun 21 Jun 2026 12:41:52 AM -03
Depois:
klist
Esperado:
Ticket cache: FILE:/tmp/krb5cc_0 Default principal: [email protected] Valid starting Expires Service principal 05/10/2026 01:14:47 05/10/2026 11:14:47 krbtgt/[email protected] renew until 05/11/2026 01:14:40
Testar usuários
/usr/local/samba/bin/samba-tool user list
Esperado: Deve listar os usuários iniciais
Administrator Guest krbtgt
Iniciar com o boot
Criar o arquivo do serviço
vim /etc/systemd/system/samba-ad-dc.service
Cole o conteúdo e salve:
[Unit] Description=Samba Active Directory Domain Controller After=network.target network-online.target Wants=network-online.target [Service] Type=forking PIDFile=/usr/local/samba/var/run/samba.pid ExecStart=/usr/local/samba/sbin/samba --daemon ExecReload=/bin/kill -HUP $MAINPID ExecStop=/bin/kill -TERM $MAINPID LimitNOFILE=16384 Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target
Recarregue o systemd
systemctl daemon-reload
Habilite no boot
systemctl enable samba-ad-dc
Desabilitar a complexidade da senha
samba-tool domain passwordsettings set --complexity=off
Esperado:
Password complexity deactivated! All changes applied successfully!
Diminuir a complexidade para 4 caracteres
samba-tool domain passwordsettings set --min-pwd-length=4
Fonte
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