Samba 27: Configurando Samba Como um Membro do Domínio – Parte 04

Esse artigo está dividido em:

PRATICANDO:

 

Adicionando ubuntu20 como Membro Usando o Back end ‘ad’

 

Aqui iremos praticar tudo o que vimos nas partes anteriores desse artigo de número 27.

Iremos adicionar a distro ubuntu server, chamada aqui de ubuntu20, como membro do domínio lab.local.

O server01 tem ip 192.168.0.40 e o server02 possui o 192.168.0.41. Esses dois são controladores do domínio.

 

 

Os Passos Abaixo São Realizados no Ubuntu20:

Acesse o ubuntu20.

#1  Altere o arquivo /etc/resolv.conf. No caso do ubuntu o resolv.conf é gerenciado pelo systemd. Então iremos alterar o arquivo /etc/systemd/resolved.conf ao invés de /etc/resolv.conf.

elder@ubuntu20:~$ sudo vim  /etc/systemd/resolved.conf 
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.
#
# Entries in this file show the compile time defaults.
# You can change settings by editing this file.
# Defaults can be restored by simply deleting this file.
#
# See resolved.conf(5) for details

[Resolve]
DNS=192.168.0.40 192.168.0.41 
#FallbackDNS=
Domains=lab.local
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#DNSOverTLS=no
#Cache=no-negative
#DNSStubListener=yes
#ReadEtcHosts=yes

Aplique as alterações executando

elder@ubuntu20:~$ sudo systemctl restart  systemd-resolved.service

#2 Deixe o arquivo /etc/hosts da seguinte forma:

elder@ubuntu20:~$ sudo vim /etc/hosts

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

#3 Verifique horário e data. Não podem estar desatualizados. O ubuntu20 tem que estar com horário e data sincronizados com os do server01

elder@ubuntu20:~$ date
Tue Dec 28 20:35:26 UTC 2021

 

#4 Instale o samba, kerberos  e as bibliotecas libnss-winbind e libpam-winbind

elder@ubuntu20:~$ sudo apt install samba krb5-user libnss-winbind libpam-winbind -y

Se aparecer telas do kerberos solicitando que digite o domínio/realm pode digitar LAB.LOCAL e para servidor digite server01. Mas não se preocupe aqui pois o arquivo gerado por essas respostas será descartado e criaremos outro. Então esses campos preenchidos não valerão de nada no final.

 

Configurando o kerberos

Por precaução, tire uma cópia do arquivo de configuração do kerberos

elder@ubuntu20:~$ sudo cp /etc/krb5.conf /etc/krb5.conf.bkp

Abra o arquivo  /etc/krb5.conf, apague todo o conteúdo e deixe conforme abaixo:

elder@ubuntu20:~$ sudo vim /etc/krb5.conf
[libdefaults]
    default_realm = LAB.LOCAL
    dns_lookup_realm = false
    dns_lookup_kdc = true

 

Salve e execute os seguintes comandos para testarmos

elder@ubuntu20:~$ kinit administrator
Password for administrator@LAB.LOCAL: 
Warning: Your password will expire in 14 days on Tue Jan 11 22:02:35 2022

e

elder@ubuntu20:~$ klist
Ticket cache: FILE:/tmp/krb5cc_1000
Default principal: administrator@LAB.LOCAL

Valid starting     Expires            Service principal
12/28/21 21:01:51  12/29/21 07:01:51  krbtgt/LAB.LOCAL@LAB.LOCAL
	renew until 12/29/21 21:01:35

 

Configurando nsswitch

Deixe o arquivo /etc/nsswitch.conf  conforme abaixo

elder@ubuntu20:~$ sudo cat  /etc/nsswitch.conf 
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# info libc "Name Service Switch"' for information about this file.

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

 

 

Configurando samba

Tire uma cópia do arquivo smb.conf

elder@ubuntu20:~$ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bkp

Abra o arquivo /etc/samba/smb.conf, apague todo o conteúdo e digite conforme abaixo:

elder@ubuntu20:~$ sudo vim /etc/samba/smb.conf
security = ADS
workgroup = LAB
realm = LAB.LOCAL

idmap config * : backend = tdb
idmap config * : range = 3000-7999

idmap config LAB:backend = ad
idmap config LAB:schema_mode = rfc2307
idmap config LAB:range = 10000-999999
idmap config LAB:unix_nss_info = yes

vfs objects = acl_xattr
map acl inherit = yes
store dos attributes = yes

Salve e saia da edição.

Agora adicione ubuntu20 ao domínio como membro

elder@ubuntu20:~$ sudo net ads join -U administrator
Enter administrator's password:
Using short domain name -- LAB
Joined 'UBUNTU20' to dns domain 'lab.local'

 

Inicie os programas smbd, nmbd e winbind

elder@ubuntu20:~$ sudo systemctl start smbd nmbd winbind

 

 

 

Os Passos  Abaixo São Realizados no server01:

 

Acrescentando uidNumber e gidNumber aos Usuários do Domínio

#1 acesse o terminal no server01

#2 Vamos listar os usuários, grupos e computadores do domínio

elder@server01:~$ sudo /usr/local/samba/bin/samba-tool user list
Guest
Administrator
joao
paulo
krbtgt
elder
lucas

 

elder@server01:~$ sudo /usr/local/samba/bin/samba-tool group  list
Event Log Readers
Domain Controllers
DnsUpdateProxy
Certificate Service DCOM Access
Pre-Windows 2000 Compatible Access
Domain Admins
......
Domain Users
....
elder@server01:~$ sudo /usr/local/samba/bin/samba-tool computer  list
SERVER02$
UBUNTU20$
WIN7PRO$
SERVER01$

Acima já conseguimos ver o ubuntu20 listado.

 

#3 Somente os usuários contendo uidNumber e gidNumber na mesma faixa, no mesmo intervalo que definimos em nosso smb.conf do ubuntu20 mebro irão aparecer no ubuntu20.

Vamos editar o usuário joao e colocar 10003 como gid e uid.

elder@server01:~$ sudo /usr/local/samba/bin/samba-tool user edit  joao
dn: CN=joao,CN=Users,DC=lab,DC=local
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: user
cn: joao
instanceType: 4
whenCreated: 20211129134405.0Z
uSNCreated: 8469
name: joao
objectGUID: fa653430-c389-43f9-8730-598d3efdcf7b
userAccountControl: 512
codePage: 0
countryCode: 0
pwdLastSet: 132826670458355600
primaryGroupID: 513
objectSid: S-1-5-21-3600158205-1358415253-1697110825-1605
accountExpires: 9223372036854775807
sAMAccountName: joao
sAMAccountType: 805306368
userPrincipalName: joao@lab.local
objectCategory: CN=Person,CN=Schema,CN=Configuration,DC=lab,DC=local
lastLogonTimestamp: 132826670534470080
lastLogon: 132829380566354630
logonCount: 25
gidNumber: 10003
uidNumber: 10003
whenChanged: 20211223202720.0Z
uSNChanged: 8632
distinguishedName: CN=joao,CN=Users,DC=lab,DC=local

Já havia colocado para o usuário paulo. Executo “samba-tool user show paulo” para mostrar(show) os atributos do usuário Paulo.

elder@server01:~$ sudo /usr/local/samba/bin/samba-tool user show paulo
dn: CN=paulo,CN=Users,DC=lab,DC=local
......
name: paulo
....
objectSid: S-1-5-21-3600158205-1358415253-1697110825-1119
accountExpires: 9223372036854775807
logonCount: 0
sAMAccountName: paulo
sAMAccountType: 805306368
userPrincipalName: paulo@lab.local
objectCategory: CN=Person,CN=Schema,CN=Configuration,DC=lab,DC=local
uidNumber: 10002
gidNumber: 10002
....

 

Adicione um gid para o grupo domain users

Execute samba-tool group edit “domain users”. Vamos adicionar o gidNumber 10999

elder@server01:~$ sudo /usr/local/samba/bin/samba-tool group edit "domain users"
dn: CN=Domain Users,CN=Users,DC=lab,DC=local
objectClass: top
objectClass: group
cn: Domain Users
description: All domain users
instanceType: 4
whenCreated: 20210720140831.0Z
uSNCreated: 3849
name: Domain Users
objectGUID: baa9a589-fc1a-4906-9070-6f33d08b2158
objectSid: S-1-5-21-3600158205-1358415253-1697110825-513
sAMAccountName: Domain Users
sAMAccountType: 268435456
groupType: -2147483646
objectCategory: CN=Group,CN=Schema,CN=Configuration,DC=lab,DC=local
isCriticalSystemObject: TRUE
memberOf: CN=Users,CN=Builtin,DC=lab,DC=local
gidNumber: 10999
whenChanged: 20211227195517.0Z
uSNChanged: 8645
distinguishedName: CN=Domain Users,CN=Users,DC=lab,DC=local

 

Acesse o ubuntu20 e Faça os Testes Abaixo

 

Volte para o ubuntu20 e adicione as duas linhas abaixo ao arquivo smb.conf

winbind enum groups = Yes
winbind enum users = Yes

Essas linhas são apenas para testes.  Devem ser retiras pois podem causar lentidão. Com essas duas linhas abaixo adicionadas podemos usar “getent passwd” para exibir o conteúdo de /etc/passwd

 

elder@ubuntu20:~$ sudo vim /etc/samba/smb.conf

[global]
security = ADS
workgroup = LAB
realm = LAB.LOCAL

idmap config * : backend = tdb
idmap config * : range = 3000-7999

idmap config LAB:backend = ad
idmap config LAB:schema_mode = rfc2307
idmap config LAB:range = 10000-999999
idmap config LAB:unix_nss_info = yes

vfs objects = acl_xattr
map acl inherit = yes
store dos attributes = yes

winbind enum users =  yes
winbind enum groups = yes

 

Execute “smbcontrol all reload-config” para aplicar as alterações no samba

smbcontrol all reload-config

 

Execute “getent passwd” e veja nossos usuários aparecerem junto com os usuários locais

elder@ubuntu20:~$ getent passwd 
......
sshd:x:111:65534::/run/sshd:/usr/sbin/nologin
systemd-coredump:x:999:999:systemd Core Dumper:/:/usr/sbin/nologin
elder:x:1000:1000:elder:/home/elder:/bin/bash
lxd:x:998:100::/var/snap/lxd/common/lxd:/bin/false
LAB\joao:*:10003:10999::/home/LAB/joao:/bin/false
LAB\paulo:*:10002:10999::/home/LAB/paulo:/bin/false

 

Testes

Crie uma pasta qualquer no ubuntu20 para compartilharmos

elder@ubuntu20:~$ mkdir /home/elder/docs

Abra o smb.conf e adicione as linhas abaixo em laranja

elder@ubuntu20:~$ sudo  cat  /etc/samba/smb.conf
[global]

security = ADS
workgroup = LAB
realm = LAB.LOCAL

idmap config * : backend = tdb
idmap config * : range = 3000-7999

idmap config LAB:backend = ad
idmap config LAB:schema_mode = rfc2307
idmap config LAB:range = 10000-999999
idmap config LAB:unix_nss_info = yes

vfs objects = acl_xattr
map acl inherit = yes
store dos attributes = yes

winbind enum users =  yes
winbind enum groups = yes

[Documentos]
	path = /home/elder/docs
	read only = no

 

Editado, salvo e já fora o arquivo smb.conf, agora o grupo “domain users” proprietário da pasta docs

elder@ubuntu20:~$ sudo chown elder:"LAB\domain users"   ./docs

Veja o resultado

elder@ubuntu20:~$ ls -ld docs
drwxrwxr-x 2 elder LAB\domain users 4096 Dec 29 11:57 docs

 

 

3 Comments to “Samba 27: Configurando Samba Como um Membro do Domínio – Parte 04”

Deixe um comentário

O seu endereço de e-mail não será publicado.