Esse artigo está dividido em:
- Samba 27: Configurando Samba Como um Membro do Domínio – Parte 01
- Samba 27: Configurando Samba Como um Membro do Domínio – Parte 02
- Samba 27: Configurando Samba Como um Membro do Domínio – Parte 03
- Samba 27: Configurando Samba Como um Membro do Domínio – Parte 04
- Samba 27: Configurando Samba Como um Membro do Domínio – Parte 05
……………………………
Antes de falarmos sobre como configurar o smb.conf devemos preparar o computador para que ele possa ser unido ao domínio. Abaixo estão as informações de nosso ambiente:
- Domínio: lab.local
- Nome da Distro Controladora de Domínio: server01
- Ip do controlador de domínio: 192.168.0.40
- Nome da Distro que Uniremos: ubuntu20 Essa distro é um Ubuntu Server em sua versão 20
Na verdade, juntamente com o server01, possuímos o server02 que também é um controlador do domínio lab.local.
Temos um computador chamado Ubuntu, com interface gráfica, que será preparado e configurado em outro artigo futuro.
Então nosso ambiente ficará assim:
Preparando o Computador ubuntu20 que Será Membro
Horário e Data
Estar com horário correto é muito importante!
Verifique se o horário do computador que será membro está atualizado.
Aproveite para verificar horário e data do servidor server01 que é controlador do domínio.
Pode verificar o horário pelo terminal executando “date”
elder@ubuntu20:~$ date Fri Dec 10 18:14:42 -03 2021
Para alterar pode executar “date mês+dia+hora+minuto+ano”. Veja abaixo alterando para 02/01/2021 às 12:10
elder@ubuntu20:~$ date 010212102021
O Apropriado seria configurar servidor de tempo NTP, Assim data e hora seriam pegos por um servidor de tempo na internet. Temos os posts abaixo sobre esse assunto. Escolha um deles:
- Como Instalar e Configurar NTPD no Linux
- Servidor de Tempo NTP: Instalando e usando o Chrony no Linux
DNS
Devemos editar o arquivo /etc/resolv.conf e colocar nele o conteúdo abaixo. Pode editar usando seu editor de texto predileto, como vim, vi, nano, emacs.
elder@ubuntu20:~$ sudo vim /etc/resolv.conf
Abrir o arquivo com o editor vim e deixei esse conteúdo:
search lab.local domain lab.local nameserver 192.168.0.40 nameserver 192.168.0.41
Os IPs acima são dos servidores server01 e server02 que são controladores de domínio. Poderia acrescentar o dns do google: “nameserver 8.8.8.8”
Às vezes o arquivo /etc/resolv.conf pode ser gerenciado por um programa, como o
- NetworkManager: Se for gerenciado pelo NetworkManager pode executar o comando nmtui. É bem fácil de configurar a rede com ele. É uma interface gráfica por meio do terminal.
- systemd-resolved: Temos esse artigo falando a respeito: Cliente DNS Gerenciado pelo systemd-resolved
Resolução de Nomes Locais
O nome da distro a ser membro é ubuntu20. Ao executarmos “Ping ubuntu20.lab.local” o ping deverá responder positivamente. Assim como server01.lab.local ou server02.lab.local deverão responder com sucesso. Para isso devemos editar o arquivo /etc/hosts e colocar o conteúdo abaixo. Pode editar usando seu editor de texto predileto, como vim, vi, nano, emacs:
elder@ubuntu20:~$ sudo vim /etc/hosts
Abri o /etc/hosts com o vim e deixei somente esse texto:
127.0.0.1 localhost 192.168.0.43 ubuntu20.lab.local ubuntu20 192.168.0.40 server01.lab.local server01 192.168.0.41 server02.lab.local server02
Obs.: Se houver uma linha iniciada com “127.0.1.1” pode apagá-la. Mas mantenha a linha iniciada com “127.0.0.1”
Instalando Samba
Aqui iremos considerar que estamos em um computador sem o samba instalado ou compilado.
Execute “apt install samba”
elder@ubuntu20:~$ sudo apt install samba -y
Instalando o Kerberos
Precisamos do kerberos para autenticação dos usuários. Instalei usando “apt install krb5-user”
Quando perguntado pelo domínio digite lab.local
elder@ubuntu20:~$ sudo apt install krb5-user -y
Por segurança, faça um backup do arquivo original /etc/krb5.conf
elder@ubuntu20:~$ sudo cp /etc/krb5.conf /etc/krb5.conf.bkp
Acesse o arquivo /etc/krb5.conf
elder@ubuntu20:~$ sudo vim /etc/krb5.conf
apague todo o conteúdo e digite o abaixo:
[libdefaults] default_realm = LAB.LOCAL dns_lookup_realm = false dns_lookup_kdc = true
Instalando winbind, libnss-winbind e libpam-winbind
Essa parte é similar à que está no artigo 01, mas foco novamente por ser de extrema importância.
O winbind é o programa que se comunica com o controlador de domínio, em nosso caso o server01 ou server02, e busca de lá os usuários e grupos.
elder@ubuntu20:~$ sudo apt install winbind -y
nsswitch
winbind precisa conversar com o Name Service Switch(nsswitch). Para essa conversa acontecer precisamos instalar a bibliotecla libnss-winbind
elder@ubuntu20:~$ sudo apt install libnss-winbind -y
Abra o aquivo /etc/nsswitch.conf
elder@ubuntu20:~$ sudo vim /etc/nsswitch.conf
nas linhas passwd e group, no lugar da palavra “systemd” coloque a palavra “winbind”:
passwd: files winbind group: files winbind shadow: files gshadow: files hosts: files dns networks: files protocols: db files services: db files ethers: db files rpc: db files netgroup: nis
pam
Se você for logar no ubuntu com usuários do domínio lab.local então terá que instalar a biblioteca libpam-winbind
elder@ubuntu20:~$ sudo apt install libpam-winbind -y
Para evitar configurar tendo que editar manualmente o arquivo do pam podemos usar uma ferramenta de configuração do pam, como:
- Red Hat e derivados: use a ferramenta authconfig-tui e authconfig
- Debian e derivados: pam-auth-update
- Suse e derivados: yast
Testando DNS, Resolução de Nomes e Kerberos
Se o comando nslookup não estiver instalada veja: Instalando nslookup
Agora iremos testar as instalações e configurações acima.
DNS
Execute “nslookup server01.lab.local”. Deverá receber o resultado parecido com o abaixo:
elder@ubuntu20:~$ nslookup server01.lab.local Server: 127.0.0.53 Address: 127.0.0.53#53 Non-authoritative answer: Name: server01.lab.local Address: 192.168.0.40
Obs.: Se tentar “nslookup 192.168.0.40” poderá receber erro. Até aqui é normal visto não ter registro de zona reversa ainda.
Execute o comando “host -t SRV _ldap._tcp.lab.local” para testarmos registro SRV.
elder@ubuntu20:~$ host -t SRV _ldap._tcp.lab.local _ldap._tcp.lab.local has SRV record 0 100 389 server01.lab.local. _ldap._tcp.lab.local has SRV record 0 100 389 server02.lab.local.
Kerberos
Execute o comando “kinit administrator“. administrator aqui é o nome do usuário administrador no samba. Será solicitada a senha, basta inserir.
elder@ubuntu20:~$ kinit administrator Password for administrator@LAB.LOCAL: Warning: Your password will expire in 31 days on Tue Jan 11 19:02:35 2022
Agora execute “klist” para listarmos os tickets do kerbero
elder@ubuntu20:~$ klist Ticket cache: FILE:/tmp/krb5cc_1000 Default principal: administrator@LAB.LOCAL Valid starting Expires Service principal 12/10/21 19:47:46 12/11/21 05:47:46 krbtgt/LAB.LOCAL@LAB.LOCAL renew until 12/11/21 19:47:38
Continua…
Preparamos o ubuntu20 para ser membro do domínio.
Instalamos e configuramos os programas necessários.
Realizamos testes com de DNS e Kerberos. Se houver algum erro nesses testes provavelmente você terá problemas com as etapas seguintes.
Nos artigos seguintes iremos configurar o arquivo smb.conf, explicar sobre os diferentes comportamentos dos back ends e juntar o ubuntu20 como membro do domínio.
2 Comments to “Samba 27: Configurando Samba Como um Membro do Domínio – Parte 02”