Samba: mudanças entre as edições
Criou página com '= Samba = == Samba share == === Instalação === Para instalar o Samba basta rodar um *sudo apt install*. Abaixo, o comando que instala o samba juntamente com alguns adicionais. sudo apt install samba -y sudo apt install samba-common -y sudo apt install samba-testsuite -y sudo apt install samba-vfs-modules -y sudo apt install fuse -y sudo apt install fuse-emulator-gtk -y sudo apt install fuse-emulator-utils -y sudo apt install fusefat -y sudo apt ins...' Etiqueta: wikieditor |
|||
| (3 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
| Linha 515: | Linha 515: | ||
</pre> | </pre> | ||
== | == SAMBA 4 AD/CD == | ||
=== Previsionamento === | |||
==== 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: | |||
<pre> | |||
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 | |||
</pre> | |||
==== Ajuste no /etc/hosts ==== | |||
===== Edite o arquivo ===== | |||
vim /etc/hosts | |||
===== ajuste como o trecho abaixo ===== | |||
<pre> | |||
127.0.0.1 localhost.localdomain localhost | |||
127.0.1.1 dominio.dominio.local ad1 | |||
192.168.18.10 ad1.dominio.local ad1 | |||
</pre> | |||
==== 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 Samba e mais 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: | |||
<pre> | |||
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: ************* | |||
</pre> | |||
==== 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: | |||
<pre> | |||
nameserver 192.168.0.1 | |||
domain dominio.local | |||
search dominio.local | |||
</pre> | |||
==== 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 | |||
===== Configure hostname e resolv.conf ===== | |||
Defina o hostname: | |||
sudo hostnamectl set-hostname xubuntu.dominio.local | |||
Edite o /etc/hosts: | |||
sudo vim /etc/hosts | |||
Adicione (ou edite) a linha correspondente: | |||
192.168.0.123 nome_do_pc.dominio.local nome_do_pc | |||
Configure o DNS para apontar para o Samba AD: | |||
sudo vim /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 | |||
===== Configure o timezone e sincronize o relógio (importante!) ===== | |||
sudo timedatectl set-timezone America/Sao_Paulo | |||
sudo apt install chrony -y | |||
Edite <code>/etc/chrony/chrony.conf</code> e adicione no início: | |||
server 192.168.0.10 iburst | |||
Depois: | |||
sudo systemctl restart chrony | |||
chronyc tracking | |||
==== Instalar os pacotes necessários ==== | |||
sudo apt update | |||
sudo apt install realmd | |||
sudo apt install sssd | |||
sudo apt install sssd-tools | |||
sudo apt install adcli | |||
sudo apt install samba-common-bin | |||
sudo apt install packagekit | |||
sudo apt install libnss-sss | |||
sudo apt install libpam-sss | |||
sudo apt install krb5-user | |||
Durante a instalação do krb5-user, insira: | |||
Realm: DOMINIO.LOCAL | |||
Servidor KDC: dominio.local | |||
Servidor Admin: dominio.local | |||
==== 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 | |||
==== Ingressar a máquina no domínio ==== | |||
sudo realm join --user=administrador DOMINIO.LOCAL | |||
==== Verifique se foi ingressado corretamente ==== | |||
realm list | |||
Você deve ver algo como: | |||
realm-name: DOMINIO.LOCAL | |||
configured: kerberos-member | |||
==== 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" | |||
Login de usuários do domínio (no LightDM ou terminal) | |||
Você pode logar com: | |||
Para que usuários do domínio tenham diretórios home: | |||
sudo pam-auth-update | |||
E marque: "Create home directory on login" | |||
==== Testar no terminal ==== | |||
Tente rodar: | |||
Você deve ver as informações do usuário, com grupos do domínio. | |||
'''DICA: Evite digitar o domínio no login''' | |||
Edite <code>/etc/sssd/sssd.conf</code> (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 | |||
== Fontes == | |||
* https://www.samba.org/ | |||
* https://www.samba.org/samba/docs/old/Samba3-HOWTO/ | * https://www.samba.org/samba/docs/old/Samba3-HOWTO/ | ||
Edição atual tal como às 09h10min de 28 de novembro de 2025
Samba[editar]
[editar]
Instalação[editar]
Para instalar o Samba basta rodar um *sudo apt install*. Abaixo, o comando que instala o samba juntamente com alguns adicionais.
sudo apt install samba -y sudo apt install samba-common -y sudo apt install samba-testsuite -y sudo apt install samba-vfs-modules -y sudo apt install fuse -y sudo apt install fuse-emulator-gtk -y sudo apt install fuse-emulator-utils -y sudo apt install fusefat -y sudo apt install fuse-zip -y sudo apt install fuseiso -y sudo apt install fusesmb -y sudo apt install gvfs -y sudo apt install gvfs-common -y sudo apt install gvfs-fuse -y
Usuário do samba[editar]
Para utilização do samba é necessário cadastrar seu usuário nele.
sudo smbpasswd -a $USER
Será solicitado incluir uma senha. Pode-se atribuir a mesma senha de login no sistema do usuário, embora não seja aconselhável.
Configuração[editar]
Configuração de compartilhamentos[editar]
Exemplo de arquivo smb.conf:
workgroup = WORKGROUP server string = %h server (Samba, Ubuntu) wins support = yes dns proxy = yes log file = /var/log/samba/log.%m max log size = 1000 syslog = 0 panic action = /usr/share/samba/panic-action %d server role = standalone server passdb backend = tdbsam obey pam restrictions = yes unix password sync = yes passwd program = /usr/bin/passwd %u pam password change = yes map to guest = bad user # [printers] comment = All Printers browseable = no path = /var/spool/samba printable = yes guest ok = no read only = yes create mask = 0700 # # [print$] comment = Printer Drivers path = /var/lib/samba/printers browseable = yes read only = yes guest ok = no # # == ## PASTAS COMPARTILHADAS == # [usuario2$Servidor] comment = Pasta home de Usuario em Servidor. path = /home/usuario2/ browseable = yes read only = no guest ok = no valid users = usuario2 # [usuario1$Servidor] comment = Pasta home de Bruna usuario1 em Servidor. path = /home/usuario1/ browseable = yes read only = no guest ok = no valid users = usuario1, usuario2 # [play$Servidor] comment = HD de Multimidia em Servidor. path = /mnt/A829-4889/ browseable = yes read only = no guest ok = yes # [HD$Servidor] comment = HD em Servidor. path = /mnt/3D5F3E455DFDCFF4/ browseable = yes read only = no guest ok = no valid users = usuario2 # [host$Servidor] comment = Host do Apache em Servidor. path = /var/www/html/ browseable = yes read only = no guest ok = yes # [nuvem$Servidor] comment = Pasta do Dropbox em Servidor. path = /home/usuario2/Dropbox/ browseable = yes read only = no guest ok = no valid users = usuario2
Smb.conf (completo)[editar]
Parametros iniciais
Variaveis de ambiente que podem ser usadas
- %a - sistema operacional do cliente
- %I - endereço ip do cliente
- %m - nome NetBios do cliente
- %M - Nome DNS do cliente
- %u - Nome do usuario efetivo
- %U - Nome do usuario NetBios
- %g - Grupo primario Linux correpondente ao %u
- %G - Grupo primario de %U
- %H - Diretorio home de %u
- %S - Nome do servico corrente
- %d - Numero do processo (PID) do servidor corrente
- %h - Nome DNS da maquina em que o samba esta rodando
- %L - Nome NetBios do servidor samba
- %N - Diretorio home do servidor, do mapeamento automount
- %v - Versão do samba
- %R - O nivel do protocolo SMB que foi negociado
- %T - Data e horario correntes
Configuração Global
[global]
Determina o nome NetBios do servidor samba
netbios name = SAMBA
Determina o dominio ou grupo de trabalho no qual o samba vai se anunciar
workgroup = DOMINIO
Define a pontuação do servidor samba para ser eleito como PDC, minimo de 33
os level = 254
Define se o servidor tentará se tornar o navegador principal do dominio.
domain master = yes
Define se o servidor tentará ou não participar das eleições para navegador local do grupo de trabalho.
local master = yes
Define se o servidor samba na eleição de masterbrowser terá vantagens.
prefered master = yes
Define se o servidor samba é um dominio para que clientes façam logons
domain logons = yes
Define se o servidor é o masterbrowser
master browse = yes
Determina um comentatio que ira aparecer junto ao ambiente de rede
server string = Samba %v on (%h)
Determina o caminho dos perfis das contas, no exemplo abaixo, ficara em \\nomedoservidor\[Profiles]\nome_da_conta
logon path = \\%L\Profiles\%U
Determina o drive de logon
logon drive = J:
Determina o logon home ou seja pasta do usuário principal manualmente
logon home = \\%L\homes\%U
Determina um script de logon padrão caso deseje
logon script = nomedoscript.bat ou nomedoscript.cmd
Define o nivel de segurança do servidor, são eles [user], [server], e [domain]
security = user
Define onde serão armazenadas as informações sobre usuários e grupos do dominio, são eles [tbsam], [smbpasswd], [ldapsam]
passdb backend = tbsam
Determina a localização dos arquivos de log
log file = /var/log/samba/log.%m
Define o tamanho maximo do log do samba. Padrão de 5mb ou 5000kb.
max log size = 5000
Define se ativa ou não a gravação de data/hora nos arquivos de log gerados pelo samba.
debug timestamp = yes
Define a ordem de pesquisa da resolução de nomes do samba
name resolve order = lmhosts host wins bcast
Define o nivel de depuração do samba nos daemons. valores de 0 a 9.
debug level = 1
Define como o servidor samba vai se anunciar
announce as = [NT Server] [NT Workstation] [Windows 9x]
Define o programa de senhas utilizado pelo samba
passwd program = /usr/bin/passwd %u
Define o script de logon da conta, no caso abaixo ele ira procurar algum scipts que bate com o mesmo numero da conta criada, portanto Netbios name.
logon script = %U.bat
Define o arquivo onde estao instaladas e configuradas as impressoras no servidor, muito importante caso deseje compartilhar impressoras no samba
printcap name = /etc/printcap load printers = yes
Define se tem suporte wins ou nao.
wins support = yes wins proxy = yes dns proxy = yes max wins ttl = 518400 wins server = 192.168.xxx.xxx
Define o numero de caracteres das senhas e do login
password level = 10 username level = 10
Define se as restrições do usuário nos módulos PAM terão efeito também no samba.
obey pam restrictions = yes
Define as condições das senhas.
min password length = 5 password history = 2 user must logon to change password = yes maximum password age = 10 minimum password age = 5 lockout duration = 3 reset count minutes = 2 bad lockout attempt = 2
Define se o servidor vai mostrar horas
time server = yes lpq command = lpq -P'%p' passwd chat = *New*UNIX*password* %n\n *ReType*new*UNIX*password*%n\n*passwd:*all*authentication*tokens*updated*successfully* socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 lprm command = lprm -P'%p' %j lpresume command = lpc release '%p' %j print command = lpr -r -P'%p' %s printing = lprng queuepause command = lpc stop '%p' unix password sync = Yes queueresume command = lpc start '%p' lppause command = lpc hold '%p' %j log level = 1 Define se usa caracteres em formato windows unix charset = iso8859-1 display charset = cp850
Define se as palavras vão ser em minusculas
preserve case = no short preserve case = no default case = lower
Funções:
comment = [comentário] define um comentario read only = [yes] [no] define se o compartilhamento é ou não somente leitura writable = [yes] [no] define se o compartilhamento é ou não modo escrita public = [yes] [no] define se o compartilhamento é publico valid users = [user1] [@grupo1] define os usuarios validos a acessar o compartilhamento create mask = [0600] define a mascara em formato de octetos create mode = [0640] define as permissões padrões da criação de arquivos force create mode = [0640] directory mask = [0700] force directory mode = [0640] browsable = [yes] [no] locking = [yes] [no] write cache size = [500000] follow symlink = [yes] [no] wide links = [yes] [no] guest ok = [yes] [no] path = [/arquivos/scripts] preserve case = [yes] [no] short preseve case = [yes] [no] default case = [lower] [upper] character set = [iso8859-1] seleciona a lingua padrão do samba client code page = [850] Seleciona a página de códigos do samba para tratar os caracteres preserve case = [yes] [no] valid chars = [á:Á é:É ó:Ó ú:Ú â:Â ê:Ê ô:Ô ã:Ã õ:Ô à:À ò:Ò] guest acount = [nobody] [@grupo1] Define a conta local que será mapeada quando um usuario se conectar sem senha invalid users = [user1] [@grupo1] Define uma lista de usuário que estão proibidos a acessar o compartilhamento valid users = [user1] [@grupo1] Semelhante a "invalid users" porém é ao contrário obey pam restrictions = [yes] [no] Indica se as restrições do usuário nos módulos PAM terão efeito
Define se oculta ou nao as extenções dos arquivos
hide dot files = Yes
Define quais extenção vão ser ocultadas
hide files = /*.mp3/*.wav/*.tif/*.pif/*.mpg/*.mpeg/*.jpg/*.bmp
Define quais extenções vão ser vetadas, ou seja não poderão ser gravadas.
veto files = /*.mp3/*.wav/*.tif/*.pif/*.mpg/*.mpeg/*.jpg/*.bmp
Define se o usuario pode ou nao apagar os arquivos vetados.
delete veto files = yes
Define uma lixeira
vfs objects = recycle recycle:repository = .recycle recycle:keeptree = True recycle:maxsize = 1024000 recycle:versions = True recycle:noversions = .doc|.xls|.ppt|.pdf recycle:touch = False recycle:exclude = *.tmp*.temp *.obj*.~??
Seção especial do samba, não pode ser esquecida, é a pasta pessoal do login
[homes] comment = Pastas dos usuarios read only = no writable = yes public = no writeable = Yes valid users = %S create mask = 0664 create mode = 0640 force create mode = 0640 directory mask = 0775 force directory mode = 0777 browsable = yes locking = no write cache size = 500000
Define parametros para os perfis do windows
[Profiles] path = /arquivos/profiles read only = No guest ok = Yes writeable = Yes browseable = No
Define parametros para os scripts de logon da microsoft
[netlogon] browseable = no comment = Compartilhamento de Scripts path = /arquivos/scripts
Seção especial do samba, não pode ser esquecida
[printers] comment = Impressoras ( Todas ) path = /var/spool/samba printable = Yes browseable = No guest ok = No writable = No
Define parametros para uma possivel atualização de anti virus
[base] guest ok = No writable = yes read only = No path = /arquivos/antivirus/base
Define parametros para uma impressora
[hp2100m] comment = Impressora Laser Postscript path = /var/spool/samba printer name = HP browseable = yes printable = yes printer = lp printing = lprng read only = yes guest ok = yes valid users = usuario1, usuario2, @grupo1, @grupo2 create mode = 0700
Define parametros para o diretoio principal
[samba] comment = Diretorio Principal path = /arquivos read only = No force create mode = 0775 force directory mode = 0775 guest ok = yes writeable = Yes
Define um exemplo de compartilhamento
[teste] comment = Pasta de teste path = /arquivos/teste write list = @suporte read only = No force create mode = 0775 force directory mode = 0775 valid users = usuario1, usuario2, @grupo1, @grupo2 guest ok = Yes browseable = Yes Define se oculta ou nao as extenções dos arquivos hide dot files = Yes Define quais extenção vão ser ocultadas hide files = /*.mp3/*.wav/*.tif/*.pif/*.mpg/*.mpeg/*.jpg/*.bmp Define quais extenções vão ser vetadas, ou seja não poderão ser visualizadas veto files = /*.mp3/*.wav/*.tif/*.pif/*.mpg/*.mpeg/*.jpg/*.bmp Define se o usuario pode ou nao apagar os arquivos vetados. delete veto files = yes
Um Exemplo Completo
[exemplo] comment = Comentario path = /arquivos/teste valid users = @grupo1, @grupo2 read only = No create mask = 0777 force create mode = 0775 force security mode = 0775 guest ok = No browseable = No locking = no write cache size = 500000 share modes = no veto files = /*.mp3/*.wav/*.tif/*.pif/*.jpg/*.bmp hide files = /*.mp3/*.wav/*.tif/*.pif/*.jpg/*.bmp vfs objects = recycle recycle:repository = .recycle recycle:keeptree = True recycle:maxsize = 1024000 recycle:versions = True recycle:noversions = .doc|.xls|.ppt|.pdf recycle:touch = False recycle:exclude = *.tmp *.temp *.obj *.~??
SAMBA 4 AD/CD[editar]
Previsionamento[editar]
Fixar IP[editar]
Cópia de segurança do arquivo[editar]
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[editar]
Edite o arquivo[editar]
vim /etc/hosts
ajuste como o trecho abaixo[editar]
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[editar]
Edite o arquivo /etc/hostname[editar]
hostnamectl set-hostname AD1.DOMINIO.LOCAL
Ajuste date e hora[editar]
timedatectl set-timezone America/Sao_Paulo
Para verificar a hora
date
Instala as dependências[editar]
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[editar]
reboot now
Instala Samba e mais dependências[editar]
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[editar]
Configuring Kerberos Authentication[editar]
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[editar]
systemctl stop smbd.service systemctl stop nmbd.service systemctl stop winbind.service
Remover o smb.conf[editar]
mv /etc/samba/smb.conf /etc/samba/smb.conf.bckp
Provisionamento[editar]
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:[editar]
/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[editar]
systemctl disable systemd-resolved.service systemctl stop systemd-resolved.service
Editar o arquivo /etc/resolv.conf[editar]
vim /etc/resolv.conf
Inclua o trecho abaixo:
nameserver 192.168.0.1 domain dominio.local search dominio.local
Exportar o krb5.conf[editar]
cp -vb /var/lib/samba/private/krb5.conf /etc/krb5.conf
Reinicia[editar]
reboot now
Realização de testes[editar]
smbclient -L localhost -U Administrator
Verificar se o serviço de DNS está funcionando fazendo as resoluções:[editar]
host -t A dominio.local host -t SRV _ldap._tcp.dominio.local host -t SRV _kerberos._udp.dominio.local
Verificar o funcionamento do KERBEROS[editar]
kinit [email protected] klist
Verifica o nivel da árvore[editar]
samba-tool domain level show
Colocar no Domínio[editar]
Linux Desktop[editar]
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
Configure hostname e resolv.conf[editar]
Defina o hostname:
sudo hostnamectl set-hostname xubuntu.dominio.local
Edite o /etc/hosts:
sudo vim /etc/hosts
Adicione (ou edite) a linha correspondente:
192.168.0.123 nome_do_pc.dominio.local nome_do_pc
Configure o DNS para apontar para o Samba AD:
sudo vim /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
Configure o timezone e sincronize o relógio (importante!)[editar]
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
Instalar os pacotes necessários[editar]
sudo apt update sudo apt install realmd sudo apt install sssd sudo apt install sssd-tools sudo apt install adcli sudo apt install samba-common-bin sudo apt install packagekit sudo apt install libnss-sss sudo apt install libpam-sss sudo apt install krb5-user
Durante a instalação do krb5-user, insira:
Realm: DOMINIO.LOCAL Servidor KDC: dominio.local Servidor Admin: dominio.local
Testar autenticação no domínio (Kerberos)[editar]
kinit [email protected]
Você será solicitado a inserir a senha. Se tudo estiver certo, você pode verificar com:
klist
Ingressar a máquina no domínio[editar]
sudo realm join --user=administrador DOMINIO.LOCAL
Verifique se foi ingressado corretamente[editar]
realm list
Você deve ver algo como:
realm-name: DOMINIO.LOCAL configured: kerberos-member
Permitir usuários do domínio[editar]
Para permitir todos os usuários:
sudo realm permit --all
Ou apenas um grupo:
sudo realm permit --groups "DOMINIO\Domain Users"
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"
Testar no terminal[editar]
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