Ovvero la procedura per unire la linuxbox ad una rete Active Directory.
Le reti Active Diretory (da qui in poi AD) sono molto comuni soprattutto in ambiente aziendale. Offrono molti vantaggi, ma sisitemi come Mac e Linux non sempre hanno un meccanismo di join (=unione al dominio AD) facile come quello dei client Windows.
Vediamo come fare questa operazione iniziando da una premessa poi vedremo i parametri dell'ambiente e successivamente le operazioni da fare. Alla fine riportiamo anche l'operazione da fare per togliere il PC dal dominio,
Premessa
Vediamo 3 aspetti utili da sapere prima di iniziare: la tecnologia AD, differenze tra distro, join via Samba o Kerberos.
Tecnologia AD
Active Diretory è il risultato dell'armonizazzione di diverse tecnologie.
Un primo mattone è il protocollo SMB che permette di condividere dischi e stampanti.
Un secondo mattoncino è l'autenticazione centralizzata.Un piccolo insieme di sistemi che garantisce crittografia, centralizzazione delle utenze, autnticazione dei PC e dei sistemi che si collegano e, naturalmente, autenticazione dell'utente che accede.
Un mattone importante è Kerberos che permette collegamenti e accessi sicuri. Kerberos richiede che tutti i sistemiche si collegano condividano lo stesso orario (con un errore massimo di 5 minuti), pena non viene permessa l'autneticazione ed il collegamento.
Un ultimo importante mattone è LDAP che tiene insieme tutti questi elementi e fa molto altro.
Ebbene buona parte di questo eco sistema va ricreato nella nostra linuxbox per poter accedere all'AD e fare il join.
Differenze tra distro
Alcune distro prevedono tool automatici per il join ad AD. È il caso di Red Hat desktop, ma anche di Ubuntu desktop.
Se segliamo il join ad AD il tool prevede all'installazione di tutto l'eco sistema e alla configurazione.
Altre distro, come Mint, non prevodono automatismi specifici, ma hanno tutti i pacchetti necessari a patto che si proceda, in modo completamente manuale, all'installazione e alla configurazione.
Samba o SSSD?
Per gestire l'autenticazione su AD del nostro Mint possiamo usare Samba o SSSD.
Samba è il sistema storico per creare servizi Windows Serve nel mondo open source. Tra i servizi che offre c'è anche quello dell'autenticazione degli utenti.
Da alcuni anni, però, è stato sviluppato SSSD (System Security Services Daemon), un sistem per l'autenticazione centralizzata, ma che permette anche l'autenticazione locale sostituendo il vecchio PAM.
Quindi possiamo scegliere se configurare la nostra linuxbox con Samba o con SSSD.
In questa guida useremo SSSD.
Ambiente di join
Per procedere è necessario conosere alcuni dati della nostra rete AD:
- server AD hostname: ad.example.local
- server AD IP: 192.168.200.2
- reame AD: EXAMPLE
La configurazione della nostra linuxbox è la seguente:
- IP: 192.168.200.100/24
- GW: 192.168.200.1
- DNS: 192.168.200.2
- Hostname: PC100
Operazione di join
Apriamo un terminale e aggioniamo il sistema:
sudo apt updatesudo apt upgrade
installiamo i pacchetti aggiuntivi necessari
sudo apt install -y realmd sssd sssd-tools sssd-ad samba samba-common samba-common-bin smbclient krb5-user adcli packagekit gvfs-backends gvfs-fuse wsdd libnss-sss libpam-sss ntpdate
Durante l'installazione di krb5-user viene chiede il realm: EXAMPLE.LOCAL
Viene chiesto anche il server del realm: AD.EXAMPLE.LOCAL
aggiorniamo sudo per rendere amministratori locali gli utenti dei gruppi amministratori per il realm,
Editiamo /etc/sudoers.d/AD-EXAMPLE
sudo nano /etc/sudoers.d/AD-EXAMPLE
e inseriamo il seguente contenuto
## AD Domain Groups and Users#Adding Domain Admins and it_support as admins%domain\ admins ALL=(ALL) NOPASSWD:ALL%it_support ALL=(ALL) NOPASSWD:ALL
Configura Kerberos.
Editiamo /etc/krb5.conf
sudo nano /etc/krb5.conf
e sotituiamo il contenuto con il seguente
[libdefaults]default_realm = EXAMPLE.LOCALdns_lookup_realm = truedns_lookup_kdc = trueticket_lifetime = 24hrenew_lifetime = 7dforwardable = true
[realms]EXAMPLE.LOCAL = {kdc = ad.example.localadmin_server = ad.example.localdefault_domain = example.local}
[domain_realm].example.local = EXAMPLE.LOCALexample.local = EXAMPLE.LOCAL
Configuriamo Samba.
Editiamo /etc/samba/smb.conf
sudo nano /etc/samba/smb.conf
svuotiamolo e inseriamo solo il seguente contenuto
[global]workgroup = EXAMPLErealm = EXAMPLE.LOCALsecurity = ADSdns proxy = nokerberos method = secrets and keytab
# Browsinglocal master = nodomain master = nopreferred master = no
Verifiche prima del join
- verifica funzionamento Samba
sudo systemctl restar nmbd smbd
- verifica che il DNS funzioni
nslookup ad.example.localnslookup example.local
- verifica orario sincronizzato con il server
sudo ntpdate ad.example.local
- ottieniamo un ticket Kerberos
kinit klist
Se kinit funziona siamo pronti per il join!
Join al dominio
sudo net ads join EXAMPLE.LOCAL -S ad.example.local -U administrator
Verifica:
sudo net ads testjoin
Configuriamo SSSD.
Editiamo /etc/sssd/sssd.conf
sudo nano /etc/sssd/sssd.conf
e inseriamo le seguenti stringhe
[sssd]domains = example.localconfig_file_version = 2services = nss, pam
[domain/example.local]ad_domain = example.localkrb5_realm = EXAMPLE.LOCALrealmd_tags = manages-system joined-with-adclicache_credentials = trueid_provider = adauth_provider = adaccess_provider = adad_server = ad.example.local
# Home directory automaticodefault_shell = /bin/bashfallback_homedir = /home/%d/%uuse_fully_qualified_names = false
securizziamo il file
sudo chmod 600 /etc/sssd/sssd.conf
attiviamo e riavviamo SSSD
sudo systemctl enable sssdsudo systemctl restart sssd
attiviamo la creazione automatica della home directory
sudo pam-auth-update --enable mkhomedir
configurare LigthDM per il login grafico.
Editiamo /etc/lightdm/lightdm.conf
nano /etc/lightdm/lightdm.conf
e inseriamo le seguenti stringhe
[SeatDefaults]autologin-guest=false#autologin-guest=truegreeter-hide-users=truegreeter-show-manual-login=true
verifica finale
- Verifichiamo che gli utenti AD siano visibili
id
- verificjoamo le condivisioni
smbclient -L ad.example.local -N
- verifichiamo la visibilità in rete
nmblookup -M EXAMPLE
Lavoro fatto con successo. Possiamo iniziare a usare la nostra linuxbox Mint con i benefici del dominio AD.
Appendice: unjoin
Se vogliamo scollegare la linuxbox Mint dal dominio AD possiamo o operare sul server AD cancellando la macchina connessa al dominio (la PC100), ma in questo caso restano tracce e chiami su PC100 che lo non fanno funzionare correttamente.
L'operazione corretta è procedere con l'unjoin dalla linuxbox PC100:
- aprire un terminale nella linuxbox PC100
- dare il comando di unjoin
sudo net ads leave -U administrator
- verifichiamo lo scollegamento
sudo net ads testjoin
- cancelliamo eventuali ticket Kerberos rimasti
sudo kdestroy