Un controller di dominio su server Linux?! Impossibile! La reazione è valida, soprattutto per chi sente il concetto per la prima volta. Si scopre che non solo puoi configurare un server Linux per controller di dominio, ma puoi anche farlo gratuitamente!
Indipendentemente dal fatto che tu scelga Linux per costi, standardizzazione o stack tecnologico più ecologico e snello, imparare a configurare un controller di dominio Linux è una buona abilità per ogni amministratore.
Continua a leggere per imparare a usare Samba come server Linux affidabile per controller di dominio.
Prerequisiti
Questo tutorial sarà una dimostrazione pratica. Se desideri seguire, assicurati di avere un server Ubuntu. Questo tutorial utilizzerà un server Ubuntu 22.04 LTS con la seguente configurazione.
- Nome host:
oddjobs-dc
- Indirizzo IP:
192.168.8.10
- Dominio:
OJI.COM
- FQDN:
oddjobs-dc.oji.com
Preparazione del controller di dominio su server Linux
Dopo aver soddisfatto tutti i prerequisiti, è necessario assicurarsi che non vi siano impostazioni predefinite del sistema operativo che potrebbero ostacolare il funzionamento del controller di dominio. Non preoccuparti. Questo passaggio non è così complicato come potrebbe sembrare. Segui i passaggi seguenti per portare a termine questa attività.
Imposta la voce del file host
La prima operazione consiste nell'aggiungere il nome host del server e le voci FQDN negli host locali (/etc/hosts
) file.
1. Innanzitutto, apri il tuo client SSH preferito e accedi al tuo server Ubuntu.
2. Apri i tuoi host (/etc/hosts) in un editor di testo, come nano.
sudo nano /etc/hosts
3. Elimina qualsiasi voce che associa il tuo nome host o FQDN a qualsiasi IP oltre all'IP statico. Ad esempio, l'indirizzo IP statico di questo server è 192.168.8.10, quindi lascia questa voce se esiste. Fare riferimento all'esempio seguente.
4. Successivamente, aggiungi una voce per mappare l'FQDN e l'indirizzo IP statico del tuo host. In questo tutorial, l'FQDN del server è oddjobs-dc.oji.com, quindi la voce da aggiungere è:
192.168.8.10 oddjobs-dc.oji.com oddjobs-dc
5. Salva gli host (/etc/hosts) ed esci dall'editor.
Conferma nome host e risoluzione FQDN
Esegui i comandi seguenti per confermare il nome host del server e che l'FQDN si risolva nell'indirizzo IP corretto.
# verify server FQDN
hostname -A
# verify FQDN resolves to your server IP address
ping -c1 oddjobs-dc.oji.com
Come puoi vedere di seguito, i comandi hanno restituito l'FQDN e l'indirizzo IP previsti.
Disabilita il servizio di risoluzione dei nomi di rete
Ubuntu ha un servizio chiamato systemd-resolved
, che si occupa delle richieste di risoluzione DNS. Questo servizio non è adatto per Samba e devi disabilitarlo e configurare manualmente il risolutore DNS.
1. Disabilita il servizio systemd-resolved eseguendo il comando seguente.
sudo systemctl disable --now systemd-resolved
2. Quindi, rimuovere il collegamento simbolico al file /etc/resolv.conf.
sudo unlink /etc/resolv.conf
3. Crea un nuovo file /etc/resolv.conf nel tuo editor di testo. Questo esempio usa nano.
sudo nano /etc/resolv.conf
4. Compilare il file /etc/resolv.conf con le seguenti informazioni. Sostituisci 192.168.8.10 con l'indirizzo IP del tuo server e oji.com con il tuo dominio. Lascia il server dei nomi 1.1.1.1 come resolver DNS di fallback, che è il resolver DNS pubblico di Cloudflare.
# your Samba server IP Address
nameserver 192.168.8.10
# fallback resolver
nameserver 1.1.1.1
# your Samba domain
search oji.com
Il tuo /etc/resolv.conf dovrebbe essere simile allo screenshot qui sotto.
5. Salva il file ed esci dall'editor.
Installazione di Samba
Dopo aver completato la preparazione del server, è il momento di installare Samba e altri pacchetti necessari per eseguire il provisioning del controller di dominio.
1. Innanzitutto, assicurati che la cache del repository sia aggiornata eseguendo il comando seguente.
sudo apt-get update
2. Eseguire il comando seguente per installare i pacchetti richiesti per un controller di dominio completamente funzionante.
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. Nel passaggio Configurazione dell'autenticazione Kerberos, digitare il dominio DNS in maiuscolo. In questo esempio, il dominio dell'area di autenticazione predefinito è OJI.COM. Evidenzia Ok e premi Invio per accettare il valore.
4. Nella schermata successiva che richiede i server Kerberos per il tuo regno, digita il nome host del server e premi Invio.
5. Nella schermata successiva che richiede il server amministrativo per il tuo regno Kerberos, digita il nome host del server e premi Invio.
6. Dopo la configurazione, disabilitare i servizi non necessari (winbind, smbd e nmbd).
sudo systemctl disable --now smbd nmbd winbind
7. Abilitare e attivare il servizio samba-ad-dc. Questo servizio è ciò di cui Samba ha bisogno per agire come server Linux del controller di dominio Active Directory.
# unmask the samba-ad-dc service
sudo systemctl unmask samba-ad-dc
# enable samba-ad-dc service
sudo systemctl enable samba-ad-dc
Provisioning del server Linux del controller di dominio
Utilizzando il binario samba-tool, è ora possibile eseguire il provisioning del controller di dominio durante l'installazione di Samba. Anche Samba l è uno strumento di configurazione per interagire e configurare vari aspetti di un AD basato su Samba.
1. Per una buona misura, esegui il backup dei file /etc/samba/smb.conf e /etc/krb5.conf esistenti.
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
sudo mv /etc/krb5.conf /etc/krb5.conf.bak
2. Eseguire il comando seguente per promuovere Samba a server Linux con controller di dominio Active Directory.
L'opzione –use-rfc2307 abilita l'estensione NIS (Network Information Service), che consente al controller di dominio di gestire gli account utente basati su UNIX in modo appropriato.
sudo samba-tool domain provision --use-rfc2307 --interactive
3. Rispondi alle richieste come segue.
- Regno – lo strumento rileva automaticamente il tuo regno Kerberos. In questo esempio, il regno è
OJI.COM
. Premi Invio per accettare l'impostazione predefinita.
- Dominio – lo strumento rileva automaticamente il nome di dominio NetBIOS. In questo esempio, NetBIOS è
OJI
. Premi Invio per continuare.
- Ruolo del server – lo strumento popola automaticamente il ruolo del server come controller di dominio (
dc
). Premi Invio per continuare.
- Backend DNS – l'impostazione predefinita è
SAMBA_INTERNAL
. Premi Invio per accettare l'impostazione predefinita.
- Indirizzo IP del mittente DNS – digita l'indirizzo del resolver di fallback specificato in
resolve.conf
prima, che è1.1.1.1
. Premi Invio per continuare.
- Password amministratore – impostare la password dell'amministratore di dominio predefinito. La password specificata deve soddisfare i requisiti di complessità minima di Microsoft. Premi Invio per procedere.
- Ridigita password:ridigita la password predefinita dell'amministratore del dominio e premi Invio.
Al termine della configurazione, vedrai le seguenti informazioni.
4. Il comando samba-tool ha generato il file di configurazione Samba AD Kerberos in /var/lib/samba/private/krb5.conf. Devi copiare questo file in /etc/krb5.conf. Per farlo, esegui il seguente comando.
sudo cp /var/lib/samba/private/krb5.conf /etc/krb5.conf
5. Infine, avvia il servizio samba-ad-dc.
sudo systemctl start samba-ad-dc
sudo systemctl status samba-ad-dc
Come puoi vedere di seguito, lo stato del servizio è ora attivo (in esecuzione).
Test del server Linux del controller di dominio
Il server Samba AD DC è ora in esecuzione. In questa sezione, eseguirai alcuni test post-installazione per confermare che i componenti chiave funzionino come desiderato. Uno di questi test consiste nel tentare di accedere alle condivisioni di rete predefinite sul controller di dominio.
Esegui il comando smbclient per accedere come account amministratore predefinito ed elenca (ls) il contenuto della condivisione netlogon.
smbclient //localhost/netlogon -U Administrator -c 'ls'
Immettere la password amministratore predefinita. La condivisione dovrebbe essere accessibile senza errori se il controller di dominio è in buono stato. Come puoi vedere di seguito, il comando elencava la directory di condivisione netlogon.
Verifica della risoluzione DNS per i record di dominio chiave
Esegui i comandi seguenti per cercare i seguenti record DNS.
- Record SRV LDAP basato su TCP per il dominio.
- Record Kerberos SRV basato su UDP per il dominio.
- Un record del controller di dominio.
host -t SRV _ldap._tcp.oji.com
host -t SRV _kerberos._udp.oji.com
host -t A oddjobs-dc.oji.com
Ogni comando dovrebbe restituire i seguenti risultati, indicando che la risoluzione DNS funziona.
Test di Kerberos
L'ultimo test consiste nel tentare di emettere un ticket Kerberos con successo.
1. Eseguire il comando kinit per l'utente amministratore. Il comando aggiunge automaticamente il regno all'account utente. Ad esempio, l'amministratore diventerà [email protected], dove OJI.com è il regno.
kinit administrator
2. Digitare la password dell'amministratore nel prompt e premere Invio. Se la password è corretta, vedrai un messaggio di avviso sulla scadenza della password, come mostrato di seguito.
3. Esegui il comando klist di seguito per elencare tutti i ticket nella cache dei ticket.
klist
Lo screenshot seguente mostra che il ticket Kerberos per l'account amministratore si trova nella cache dei ticket. Questo risultato indica che l'autenticazione Kerberos funziona sul server Linux del controller di dominio.
Conclusione
Congratulazioni per aver raggiunto la fine di questo tutorial. Ora hai imparato a far funzionare rapidamente un server Linux del controller di dominio Active Directory. Approfondisci le tue conoscenze sull'argomento imparando a creare utenti e unirti ai computer client nel dominio.