Hai bisogno di una gestione centralizzata dei domini per le tue reti ma non ti piace usare un server Windows e pagare il costo aggiuntivo della licenza? Samba Active Directory è una delle migliori e gratuite alternative che puoi provare su Linux.
Samba è una soluzione open source nota principalmente per il suo file server di rete e per i servizi di stampa. Ma dalla versione 4.0, Samba ti consente anche di eseguire il provisioning del ruolo del server di Active Directory.
Questo tutorial ti insegnerà come installare e configurare Samba Active Directory su Ubuntu 20.04. Preparati e tuffati subito!
Prerequisiti
Questo post è una dimostrazione pratica. Se desideri continuare, avrai bisogno dei seguenti requisiti.
- Un server Ubuntu 20.04. Durante questo tutorial, il nome del server sarà
dc1
, il dominio saràexample.com
e l'indirizzo IP è172.16.1.10
. - Un account utente con privilegi sudo.
- Un computer Windows 10 sulla stessa rete del server Ubuntu.
Configurazione del nome host del server
Il primo passaggio consiste nell'impostare l'identità del server nella rete. Per farlo, dovrai assegnare il nome host e il nome di dominio completo (FQDN) del server seguendo i passaggi seguenti.
1. Innanzitutto, accedi al tuo server Ubuntu e apri la sessione del terminale.
2. Quindi, esegui hostnamectl
comando qui sotto per cambiare il nome host del tuo server. Il comando seguente cambia il nome host in dc1
.
# set up the hostname
hostnamectl set-hostname dc1
3. Ora apri il /etc/hosts
file per la modifica utilizzando il tuo editor preferito, ad esempio nano
. All'interno del file, aggiungi una voce che specifica l'indirizzo IP del server , FQDN e nome host in questo formato – server-IP hostname.domain.com hostname
.
Per questo esempio, la voce del file hosts è:# setup FQDN dc1.example.lan 172.16.1.10 dc1.example.lan dc1
# setup FQDN dc1.example.lan
172.16.1.10 dc1.example.lan dc1
Dopo aver aggiunto la nuova voce, salva ed esci dal file.
4. Infine, eseguire il comando seguente per verificare l'FQDN del server Samba. # verify FQDN hostname -f # verify FQDN is resolved to the Samba IP address ping -c3 dc1.example.lan
# verify FQDN
hostname -f
# verify FQDN is resolved to the Samba IP address
ping -c3 dc1.example.lan
Come puoi vedere di seguito, l'FQDN del server Samba è dc1.example.lan
, che si risolve in 172.16.1.10
.
Disabilitazione del risolutore DNS
Il systemd-resolved
il servizio controlla la configurazione DNS sul server Ubuntu, che non è compatibile con Samba Active Directory. Per configurare Samba Active Directory, devi prima disabilitare il systemd-resolved
servizio e sostituire il /etc/resolv.conf
file di configurazione.
- Esegui i seguenti comandi per disattivare e interrompere il
systemd-resolved
servizio in una volta e rimuovi il collegamento simbolico al file/etc/resolv.conf
, In ordine.
# stop and disable systemd-resolved service
sudo systemctl disable --now systemd-resolved
# remove the symlink file /etc/resolv.conf
sudo unlink /etc/resolv.conf
2. Quindi, crea un nuovo /etc/resolv.conf
file.
# create a new /etc/resolv.conf file
touch /etc/resolv.conf
3. Apri il /etc/resolv.conf
utilizzando il tuo editor preferito e definisci il resolver DNS utilizzando la configurazione seguente. Assicurati di mettere l'indirizzo IP del server Samba in cima alla riga. Salva il file ed esci dopo la modifica.
# Samba server IP address
nameserver 172.16.1.10
# fallback resolver
nameserver 1.1.1.1
# main domain for Samba
search example.lan
4. Infine, esegui il comando seguente per creare il file /etc/resolv.conf
file immutabile. Questo passaggio garantisce che il resolver non cambi inconsapevolmente per nessun motivo.
# add attribute immutable to the file /etc/resolv.conf
sudo chattr +i /etc/resolv.conf
Installazione di Samba
Dopo aver impostato l'FQDN e aver configurato la risoluzione dei nomi, installerai Samba sul tuo sistema e abiliterai il servizio Samba Active Directory. Al momento della stesura di questo articolo, il repository ufficiale di Ubuntu fornisce Samba v4.13.
1. Esegui il apt
comando seguente per aggiornare l'indice del pacchetto del tuo server Ubuntu.
sudo apt update
2. Ora, esegui il comando seguente per installare Samba con tutti i pacchetti e le dipendenze.
sudo apt install -y acl attr samba samba-dsdb-modules samba-vfs-modules smbclient winbind libpam-winbind libnss-winbind libpam-krb5 krb5-config krb5-user dnsutils chrony net-tools
3. Digita il nome di dominio del realm predefinito in maiuscolo. In questo esempio, l'FQDN è dc1.example.lan
, quindi il nome di dominio dell'area di autenticazione predefinito dovrebbe essere EXAMPLE.LAN
. Evidenzia Ok e premere Invio.
4. Al prompt successivo, digitare l'FQDN del server. Questo passaggio definisce il server Kerberos predefinito. Evidenzia Ok e premere Invio.
5. Quindi, digita nuovamente l'FQDN del server per specificare il server amministrativo Kerberos. Evidenzia Ok, e premere Invio per completare la configurazione iniziale di Samba.
6. Dopo l'installazione di Samba, eseguire il comando seguente per arrestare e disabilitare i servizi che il server Samba Active Directory non richiede smbd
, nmbd
e winbind
. Il server necessita solo del samba-ac-dc
per fungere da Active Directory e controller di dominio.
# stop and disable samba services - smbd, nmbd, and winbind
sudo systemctl disable --now smbd nmbd winbind
7. Infine, esegui i comandi seguenti per attivare e abilitare il samba-ad-dc
servizio.
# activate samba-ad-dc service
sudo systemctl unmask samba-ad-dc
# enable samba-ad-dc service
sudo systemctl enable samba-ad-dc
Configurazione di Samba Active Directory
Ora hai installato Samba sul tuo sistema. Ci sono molti altri passaggi per configurare Samba Active Directory. L'installazione di Samba è arrivata con uno strumento da riga di comando chiamato samba-tool
per eseguire il provisioning di Samba Active Directory.
1. Innanzitutto, crea un backup del /etc/samba/smb.conf
file per buona misura. Il processo di provisioning sostituirà questo file.
# backup default Samba configuration file
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.orig
2. Ora esegui samba-tool
comando seguente per avviare il provisioning di Samba Active Directory.
# provisioning Samba Active Directory
sudo samba-tool domain provision
3. Nel regno prompt, accettare il valore predefinito e premere Invio.
4. Nel dominio prompt, premere nuovamente Invio per accettare il valore predefinito.
5. Nel Ruolo del server prompt, lasciare l'impostazione predefinita e premere Invio.
6. Sul backend DNS prompt, lasciare il valore come predefinito (SAMBA_INTERNAL
) e premere Invio.
7. Successivamente, digita l'indirizzo IP del server di inoltro DNS aggiuntivo . Questo esempio aggiungerà il DNS Cloudflare 1.1.1.1
come mittente DNS. Questa opzione è disponibile solo quando utilizzi il SAMBA_INTERNAL
back-end DNS.
8. Digita la password dell'amministratore di Samba Active Directory e premi Invio.
Il provisioning crea automaticamente il nuovo file di configurazione di Samba (/etc/samba/smb.conf
) e la configurazione Kerberos (/var/lib/samba/private/krb5.conf
) file.
Dopo il provisioning di Samba Active Directory, riceverai l'output simile allo screenshot seguente.
9. Ora esegui i comandi seguenti per eseguire il backup della configurazione Kerberos predefinita e sostituirla con il file /var/lib/samba/private/krb5.conf
.
# rename default Kerberos configuration to krb5.conf.orig
sudo mv /etc/krb5.conf /etc/krb5.conf.orig
# copy the Kerberos configuration generated by the samba-tool
sudo cp /var/lib/samba/private/krb5.conf /etc/krb5.conf
10. Infine, esegui il systemctl
comandi seguenti per avviare il servizio Samba Active Directory samba-ad-dc
e verifica che lo stato del servizio sia active (running)
.
# start samba-ad-dc service
sudo systemctl start samba-ad-dc
# verify samba-ad-dc service
sudo systemctl status samba-ad-dc
Il samba-ad-dc
il servizio è active (running)
e enabled
, come puoi vedere di seguito. Il demone Samba AD ora si avvierà automaticamente all'avvio del sistema.
Impostazione della sincronizzazione dell'ora
Samba Active Directory dipende dal protocollo Kerberos e il protocollo Kerberos richiede che i tempi del server AD e della workstation siano sincronizzati. Per garantire una corretta sincronizzazione dell'ora, dovrai configurare un Network Time Protocol (NTP) server anche su Samba.
I vantaggi della sincronizzazione dell'ora AD includono attacco di riproduzione prevenzione e risoluzione dei conflitti di replica AD.
1. Esegui i comandi seguenti per modificare l'autorizzazione predefinita e la proprietà della directory /var/lib/samba/ntp_signd/ntp_signed
. L'utente/gruppo _chrony
deve avere l'autorizzazione di lettura per il ntp_signed
directory.
# allow group _chrony to read the directory ntp_signd
sudo chown root:_chrony /var/lib/samba/ntp_signd/
# change the permission of the directory ntp_signd
sudo chmod 750 /var/lib/samba/ntp_signd/
2. Ora apri il file di configurazione /etc/chrony/chrony.conf
in un editor di testo e aggiungi la seguente configurazione in fondo al file. Questa configurazione abilita chrony server NTP e punta la posizione del socket NTP a /var/lib/samba/ntp_signd
. Salva il file di configurazione ed esci dall'editor.
# bind the chrony service to IP address of the Samba AD
bindcmdaddress 172.16.1.10
# allow clients on the network to connect to the Chrony NTP server
allow 172.16.1.0/24
# specify the ntpsigndsocket directory for the Samba AD
ntpsigndsocket /var/lib/samba/ntp_signd
3. Quindi, esegui i seguenti comandi per riavviare e verificare il chronyd
servizio sul server Samba AD.
# restart chronyd service
sudo systemctl restart chronyd
# verify chronyd service status
sudo systemctl status chronyd
Come puoi vedere di seguito, il chronyd
il servizio è enabled
e active (running)
. In fondo a chronyd
log, vedrai il messaggio MS-SNTP authentication is enabled
, che conferma che l'estensione di autenticazione NTP è funzionante.
Verifica di Samba Active Directory
Dopo l'installazione, dovresti verificare la configurazione di Samba per assicurarti che ciò che hai fatto finora funzioni. Puoi farlo verificando la configurazione DNS di Samba, la cartella condivisa predefinita (file server) e testando l'autenticazione Kerberos.
1. Esegui il host
comandi seguenti per verificare il nome di dominio AD example.lan
e dc1.example.lan
.
# verify domain example.lan
host -t A example.lan
# verify domain dc1.example.lan
host -t A dc1.example.lan
E il risultato dovrebbe confermare che entrambi i record host puntano all'indirizzo IP del server Samba 172.16.1.10
.
2. Successivamente, verifica che _kerberos
e _ldap
entrambi i record di servizio puntano all'FQDN del server Samba Active Directory.
# verify SRV record for _kerberos
host -t SRV _kerberos._udp.example.lan
# verify SRV record for _ldap
host -t SRV _ldap._tcp.example.lan
In questo esempio, l'output seguente conferma che entrambi SRV
i record si risolvono in dc1.example.lan
.
3. Quindi, esegui smbclient
comando seguente per verificare le risorse predefinite disponibili su Samba Active Directory.
# checking available resources on Samba AD
smbclient -L example.lan -N
Dovresti vedere che la cartella condivisa predefinita su Samba Active Directory è sysvol
e netlogon
e il servizio predefinito disponibile è IPC$
.
4. Infine, esegui il seguente kinit
comandi per autenticarsi sul server Kerberos utilizzando l'utente Administrator
e verifica i ticket Kerberos memorizzati nella cache del tuo sistema.
Nota:la parte del dominio deve essere in maiuscolo
e.
# authenticate to Kerberos using administrator
kinit [email protected]
# verify list cached Kerberos tickets
klist
Riceverai l'output simile allo screenshot qui sotto. Il ticket dell'amministratore Kerberos è archiviato nel file /tmp/krb5cc_0
e scadrà tra 41 giorni.
Creazione di un nuovo utente Samba Active Directory
A questo punto, hai finito di configurare Samba Active Directory. Ma come sai, non ci sono ancora utenti. Ora è il momento di creare il tuo primo account utente Samba AD utilizzando il samba-tool
comando.
1. Esegui il comando seguente per creare un nuovo utente denominato alice
, la cui password è alice_password88
.
# create a new user in Samba
sudo samba-tool user create alice alice_password88
2. Quindi, esegui samba-tool
comando seguente per verificare gli utenti disponibili su Samba.
# checking users on Samba
sudo samba-tool user list
Come puoi vedere di seguito, il nuovo utente alice
è disponibile nella directory Samba Active.
Accesso e accesso al dominio Samba Active Directory
Ora che hai creato un nuovo utente, non resta che unire una workstation al dominio Active Directory. Successivamente, puoi accedere alla workstation utilizzando le credenziali utente di Samba AD.
1. Accedi al tuo PC Windows e apri PowerShell come amministratore.
2. Esegui il comando seguente per elencare gli adattatori Ethernet disponibili sul tuo PC Windows.
# checking available interface using Powershell command
Get-NetAdapter -Name "*"
Potresti vedere output diversi sullo schermo di PowerShell. Questo esempio mostra un'interfaccia di rete chiamata Ethernet Instance 0 2
.
3. Esegui il comando seguente per modificare il server DNS dell'adattatore nell'indirizzo IP di Samba Active Directory con DNS Cloudflare di fallback aggiuntivo 1.1.1.1
. Questo passaggio garantisce che la workstation utilizzi il server Samba AD per la risoluzione dei nomi.
# setup DNS resolver using Powershell
Set-DNSClientServerAddress "Ethernet Instance 0 2" –ServerAddresses ("172.16.1.10","1.1.1.1")
4. Esegui il comando seguente per verificare il tuo resolver DNS e assicurati che il tuo computer utilizzi il server Samba AD come resolver DNS predefinito.
# verify DNS resolver
Get-DnsClientServerAddress
Riceverai un output simile come lo screenshot qui sotto.
5. Ora, esegui il ping del nome host e del dominio del server.
# ping the AD domain dc1.example.lan
ping dc1.example.lan
# ping the AD domain example.lan
ping example.lan
Dovresti vedere la risposta dal server AD come di seguito. Conferma che il risultato punti all'indirizzo IP del server Samba AD.
6. Quindi, eseguire il comando seguente per unire la workstation al dominio Active Directory di Samba.
# add Windows 10 to Active Directory
Add-Computer -DomainName "example.lan" -Restart
7. Digita Samba AD administrator
nome utente e password, fai clic su OK. Il computer si riavvierà automaticamente come parte del processo di aggiunta al dominio.
8. Dopo il riavvio, fai clic su Other users
nella schermata di accesso. Digita il nome utente e la password di Active Directory dell'utente Samba AD che hai creato in precedenza ([email protected]
), e premere Invio per accedere.
9. Dopo un accesso riuscito, aprire una finestra di PowerShell ed eseguire uno o entrambi i comandi seguenti per verificare il nome utente attualmente connesso.
whoami
query user
Conclusione
Il concetto e l'applicazione di Active Directory non sono esclusivi dell'ecosistema Windows. In questo tutorial hai appreso che puoi usufruire degli stessi vantaggi di Active Directory in Linux implementando Samba Active Directory.
Durante questo tutorial, hai imparato come installare e configurare Samba Active Directory su Ubuntu 20.04. Hai anche imparato a creare nuovi utenti e unire una workstation Windows al dominio Samba Active Directory.
Qual è il prossimo passo per te? Che ne dici di integrare Samba al servizio CUPS per il supporto alla stampa o di configurare un file server Samba Share? Vedi, in Samba c'è di più di Active Directory!