Installare e configurare un file server Samba integrato con Active Directory
E’ facile creare una condivisione di tipi Windows (SMB/CIFS) e condividerla usando permessi locali come l’accesso anonimo/guest oppure un utente creato ad hoc sul server Linux, ma la cosa diventa più difficile se vogliamo creare un file server su Linux e usare gli utenti di Windows Active Directory e i loro permessi.
Il motivo è alquanto semplice: Linux non è nato per interagire con Microsoft Active Directory.
Sfortunatamente tutte le soluzioni ci portano ad almeno un compromesso, per cui se volete una soluzione semplice, facile da gestire e funzionante al 100%, scegliete di fare un file server Windows.
Dopo avervi spaventato e consigliato caldamente a rivolgervi a Windows per creare share per Windows, vi spiego come farle su Linux.
Brevemente, la prima cosa da fare è installare Samba, poi unirsi (join) al dominio Microsoft dove ci sono gli utenti che accederanno alle risorse e infine configurare la share con i permessi opportuni.
Requisiti e scenario
Il file system dove andremo a creare la cartella condivisa deve permettere l’uso delle ACL e degli attributi estesi (es. XFS o EXT4 con opzioni di mount diverse dal default); non sono necessari una partizione o un logical volume dedicati, tuttavia l’uso di uno di questi ci permette di limitare lo spazio disco a disposizione della share senza scomodare tecnologie come le quote.
Il nostro server Linux di riferimento è una CentOS 8 (la guida funziona anche per RHEL 8 e Oracle Linux 8), queste distribuzioni mettono a disposizione una versione recente di Samba che ci permette di ridurre i parametri di configurazione.
Nel esempio, il dominio di cui il nostro file server diventerà membro si chiama greensys.local, il server si chiama LinuxFiles (il suo hostname LinuxFiles) è per cui abbiate cura di sostituire questi nomi con il vostro dominio Microsoft e con l’hostname del vostro file server.
Sarebbe bene impostare un indirizzo IP statico al server in quanto è necessario che la rete sia sempre disponibile prima della partenza del servizio samba.
Verifichiamo che i dns del file server corrispondano a quelli del dominio Microsoft.
Mettere nel dominio il file server Samba integrato con Active Directory
Installiamo il software Samba e le utility per fare join al dominio:
yum install realmd oddjob-mkhomedir oddjob samba-winbind-clients samba-winbind samba-common-tools samba-winbind-krb5-locator samba
Una volta installato il software facciamo una copia di salvataggio del file smb.conf
cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
Poi verifichiamo tramite il comando:
realm discover greensys.local
se effettivamente raggiungiamo il dominio.
Facciamo dunque join al dominio (verrà richiesta la password dell’utente Administrator):
realm join --membership-software=samba --client-software=winbind greensys.local
Se non possiamo usare l’utente Administrator del dominio, ne possiamo specificare un altro con l’opzione -U (realm join -v [-U user] realm-name).
Verifichiamo che il servizio winbind sia attivo (esso dovrà attivarsi sempre prima del servizio samba) riportando active (running).
systemctl status winbind
Verifichiamo per esempio quali sono i permessi dell’utente Administrator del dominio (dove greensys è il nome del vostro dominio):
getent passwd "greensys\administrator"
Attiviamo dunque il servizio samba (smb)
systemctl enable --now smb
Con la precedente istruzione abbiamo completato la fare di join a dominio che come potete notare non richiede un riavvio del server.
Nel prossimo articolo il resto della configurazione.