Se sei un amministratore di sistema e ti stai chiedendo come aggiungere un desktop e un server Linux all'attuale Active Directory (AD) di Linux, sei nel posto giusto. L'aggiunta di nuovi client ad AD semplifica la gestione degli utenti tra più computer client, soprattutto quando gestisci centinaia di computer nel tuo ambiente.
In questo tutorial imparerai come aggiungere sistemi Linux (Ubuntu 20.04, Linux Mint e Ubuntu Server) a un Active Directory Samba Linux. In questo modo gli utenti di Samba Active Directory possono accedere a un computer client Linux con la propria home directory, shell predefinita e privilegi di root sudo (se necessario).
Pronto? Salta subito!
Prerequisiti
Questo tutorial sarà una dimostrazione pratica. Se desideri continuare, assicurati di avere i seguenti requisiti:
- Macchina desktop Linux:questo tutorial utilizza Ubuntu 20.04 Desktop, ma puoi utilizzare altre distribuzioni come Linux Mint e Ubuntu Server.
- Un utente non root con
sudo
privilegi. - Un Samba Active Directory (AD) completamente funzionante.
Configurazione di un risolutore DNS permanente
Prima di poter aggiungere client Linux a Samba Active Directory, è necessario assicurarsi che il nome di dominio di Samba Active Directory sia raggiungibile dalla macchina client. Come? Impostando l'indirizzo IP di Samba AD come resolver DNS predefinito per ogni macchina client nel /etc/resolv.conf
file di configurazione.
1. Apri il terminale ed esegui systemctl
comando di seguito per disabilitare e interrompere il systemd-resolved
servizio. In questo modo si assicura che il client Linux utilizzi il risolutore DNS statico e permanente.
L'amministratore definisce questa risoluzione DNS permanente e non viene sostituito da nessun terzo servizio come systemd-resolved
.
# disable and stop systemd-resolved service
sudo systemctl disable --now systemd-resolved
2. Quindi, esegui unlink
comando seguente per rimuovere il file del collegamento simbolico (/etc/resolv.conf
). Sostituirai questo file nel passaggio successivo. # remove symlink file /etc/resolv.conf sudo unlink /etc/resolv.conf
# remove symlink file /etc/resolv.conf
sudo unlink /etc/resolv.conf
3. Ora crea un nuovo file chiamato /etc/resolv.conf
utilizzando il tuo editor preferito e popolare il file con la seguente configurazione.
La configurazione seguente imposta i resolver DNS principali e di fallback.
# Samba AD as main DNS resolver
nameserver 172.16.1.10
# fall-back DNS resolver using Cloudflare
nameserver 1.1.1.1
# hostname lookup for domain example.lan
search example.lan
4. Esegui chattr
comandi seguenti per creare il file /etc/resolv.conf
immutabile per garantire che le macchine client utilizzino sempre Samba AD come risolutore DNS predefinito. Questi comandi impediscono anche la sovrascrittura da altri servizi come NetworkManager.
# making the file `/etc/resolv.conf` immutable
sudo chattr +i /etc/resolv.conf
# remove immutable attribute
sudo chattr -i /etc/resolv.conf
5. Infine, esegui ping
comandi seguenti per verificare la connessione ai nomi di dominio Samba AD dc1.example.lan
e example.lan
.
# ping to AD server dc1.example.an and example.lan
ping -c3 dc1.example.lan
ping -c3 example.lan
Se la connessione riesce, riceverai un messaggio di risposta dal server AD e dal dominio dc1.example.lan
e example.lan
verrà risolto nell'indirizzo IP di Samba AD.
Configurazione di Chrony come client NTP
Dopo aver configurato il risolutore DNS, ora configurerai Chrony per sincronizzare l'ora tra la macchina client e il server Samba AD. Se c'è una differenza di tempo (cinque minuti al massimo) tra la macchina client e il server AD, il client non può accedere a tutte le risorse sul server AD.
1. Esegui il comando seguente per installare chrony
ai tuoi client Linux.
# install chrony
sudo apt install chrony -y
2. Ora, modifica la configurazione predefinita di Chrony (/etc/chrony/chrony.conf
) nel tuo editor preferito e aggiungi la seguente configurazione.
Il bindcmdaddress
il valore deve essere l'indirizzo IP del client. Il servizio Chrony verrà eseguito su questo indirizzo IP. Mentre il server
l'opzione è dove aggiungi il tuo nome di dominio Samba AD come server NTP.
# run Chrony as NTP client on the IP address
bindcmdaddress 172.16.1.85
# time synchronize to the Samba AD dc1.example.lan
server dc1.example.lan iburst
3. Quindi, esegui systemctl
comandi seguenti per riavviare il chronyd
servizio e verifica che lo stato del servizio sia active (running)
. # restart chronyd service sudo systemctl restart chronyd # verify status chronyd service sudo systemctl status chronyd
# restart chronyd service
sudo systemctl restart chronyd
# verify status chronyd service
sudo systemctl status chronyd
Come puoi vedere di seguito, il chronyd
il servizio è active (running)
e enabled
. Il client Chrony NTP ora si avvierà automaticamente all'avvio del sistema.
4. Infine, eseguire il comando seguente per verificare che il servizio Chrony sul computer client sia connesso al server Samba AD NTP. chronyc tracking
chronyc tracking
Come puoi vedere di seguito, il servizio Chrony sul client Linux è connesso al server Samba AD NTP con l'indirizzo IP 172.16.1.10 .
Unire client Linux a Samba Active Directory
Ora hai configurato Chrony sul client Linux. Ma come si aggiunge questa macchina client a Samba Active Directory? Inizia installando e configurando il realmd
e sssd
servizi per aggiungere client Linux al server Samba AD.
1. Esegui il apt
comando seguente per aggiornare l'indice del pacchetto. Questo comando assicura che stai installando l'ultima versione dei pacchetti dal repository.
sudo apt update
Quindi, esegui il comando seguente per installare realmd
e sssd
servizi con tutti i pacchetti aggiuntivi necessari. Il realmd
service viene utilizzato con i servizi Linux sottostanti, come sssd
, per entrare in Samba Active Directory.
sudo apt install -y realmd sssd sssd-tools samba-common krb5-user packagekit samba-common-bin samba-libs adcli
Immettere il dominio predefinito (in maiuscolo) per Samba Active Directory, come mostrato di seguito. Utilizzerai questo dominio predefinito per l'autenticazione Kerberos.
In questo esempio, il dominio dell'area di autenticazione predefinito per Samba AD è EXAMPLE.LAN .
3. Crea un nuovo file /etc/realmd.conf
utilizzando il tuo editor preferito e aggiungi la seguente configurazione. La configurazione seguente esegue le seguenti operazioni:
- Gestisce i comportamenti del dominio e degli utenti di Samba AD
- Specifica la connessione client al server AD
- Determina se utilizzare o meno l'installazione automatica di servizi aggiuntivi.
- Configurazione specifica per
example.lan
Dominio AD.
[users]
# define Samba AD users behavior
# define default home directory and shell for Samba AD users
default-home = /home/%U
default-shell = /bin/bash
[active-directory]
# define realmd connection to the Samba AD
# you can use `sssd` or `winbind` for realmd to join Samba AD
# os-name can used as an identifier for client
default-client = sssd
os-name = Linux Ubuntu and Mint Desktop
[service]
# disable automati install for additional realmd service
automatic-install = no
[example.lan]
# define behavior of Samba AD `example.lan`
# disable fully-qualified-names so you can use a username to identify Samba users
# automatic-id-mapping to yes will automatically generate UID and GID numbers
# user-principal to yes will automatically create UserPrincipalName for the client machine
# manage-system to yes to enabled realmd to manage client machine
fully-qualified-names = no
automatic-id-mapping = yes
user-principal = yes
manage-system = yes
Esegui il kinit
comando seguente per autenticare la connessione al dominio (EXAMPLE.LAN
) al servizio Kerberos utilizzando l'utente predefinito (administrator
).
Inserisci la password per il administrator
Utente Samba AD quando richiesto, come mostrato di seguito.
L'aggiunta di nuovi client a Samba AD richiede l'utilizzo di
administrator
utente.
# authenticate to Kerberos server on EXAMPLE.LAN using administrator
sudo kinit [email protected]
# verify authentication and print detailed Kerberos tickets for administrator user
sudo klist
5. Ora esegui il realm join
comando seguente per aggiungere client Linux a Samba AD (example.lan
). Sostituisci UbuntuMintDesktop
con un nome principale utente univoco (UPN). Ogni client/macchina deve avere un UPN diverso.
# joining/adding Linux Ubuntu/Mint to Samba AD example.lan
# --verbose to get full logs from the process
# --user-principal will automatically set the UserPrincipalName for this machine
# --unattended will run the realm command without prompting for a password prompt,
# because you've already authenticated through the Kerberos ticket
sudo realm join --verbose example.lan --user-principal=UbuntuMintDesktop/[email protected] --unattended
Riceverai la Macchina registrata con successo nel reame messaggio al termine del processo. A questo punto, hai aggiunto con successo il tuo client Linux a Samba Active Directory.
6. Quindi, apri il /etc/sssd/sssd.conf
file di configurazione nel tuo editor preferito.
Aggiungi la riga seguente, che modifica il controllo di accesso dell'oggetto Criteri di gruppo (GPO) predefinito in permissive
e imposta il valore di access_provider
a ad
. Il ad
il valore indica l'autenticazione predefinita per sssd
il servizio è un Active Directory.
Durante questa stesura, sia Ubuntu 20.04 Desktop che Server non consentiranno agli utenti AD di accedere quando il
ad_gpo_access_control
è impostato suenforcing
(il valore predefinito). Quindi modifichiad_gpo_access_control
valore apermissive
.Ma su Linux Mint, puoi ancora accedere utilizzando gli utenti AD, anche quando il
ad_gpo_access_control
si trova sulenforcing
modalità.
# change default GPO access control to permissive
ad_gpo_access_control = permissive
7. Esegui il pam-auth-update
comando seguente per modificare la configurazione PAM. Questo comando abilita il modulo PAM (pam_mkhomedir.so ). L'abilitazione del modulo PAM crea automaticamente una home directory per gli utenti di Samba AD (solo quando la home directory non è disponibile).
# modify PAM configuration
pam-auth-update
Seleziona Crea una directory home all'accesso opzione sullo schermo del terminale e seleziona Ok per confermare.
Premi il tasto SPAZIO per abilitare un'opzione e premi il tasto TAB per spostare il menu del cursore.
8. Esegui il realm list
comando seguente per verificare la tua connessione a Samba Active Directory.
# Checking connected AD
realm list
Se la tua connessione riesce, riceverai una connessione AD dettagliata, come mostrato di seguito.
Di seguito, puoi vedere che il computer desktop Ubuntu/Mint è connesso a Samba Active Directory (example.lan ) come (membro-kerberos ).
9. Ora esegui il id
comando seguente per controllare l'utente Samba AD.
# checking Samba AD user `alice`
id alice
Se l'installazione va a buon fine, riceverai uid
casuali e gid
per l'utente Samba alice
. In questo esempio puoi vedere l'utente alice viene creato e disponibile su Samba AD.
10. Inoltre, esegui i seguenti comandi per impostare il tuo editor di testo predefinito e apri (visudo
) il /etc/sudoers
file nel tuo editor predefinito. Puoi sempre modificare il tuo editor di testo preferito, ma l'editor predefinito è nano
per questa demo.
# Sets default editor to nano
export EDITOR=nano
# Opens the /etc/sudoers file in the default editor
visudo
Aggiungi il tuo utente Samba AD al sudoers
file utilizzando il seguente formato, salvare le modifiche e chiudere l'editor. In questo modo puoi abilitare sudo
privilegi per l'utente Samba (se è necessario che l'utente esegua sudo).
# add Samba user `alice` to sudoers
alice ALL=(ALL:ALL) ALL
11. Infine, esegui il seguente comando sul desktop di Ubuntu su reboot
il sistema per applicare le nuove configurazioni.
Ma per Linux Mint e un server Ubuntu, dovrai comunque aggiungere qualche configurazione aggiuntiva, che è trattata nella sezione seguente.
sudo reboot
Configurazione di LightDM per Samba Active Directory
La configurazione predefinita di LightDM per il processo di accesso manuale tramite nome utente e password è disabilitata sul desktop Linux Mint. Modificherai la configurazione di LightDM per abilitare il processo di accesso manuale in modo che gli utenti di Samba AD possano accedere al computer Mint Desktop.
Apri LightDM (/etc/lightdm/lightdm.conf ) file di configurazione nel tuo editor preferito e popolare la configurazione seguente sotto il [Seat:*]
sezione.
Il greeter-show-manual-login=true
l'opzione di seguito abilita il processo di accesso manuale su LightDM, mentre il allow-guest=false
l'opzione disabilita l'accesso per l'utente ospite.
# enable manual login
greeter-show-manual-login=true
# disable guest login
allow-guest=false
Ora, esegui il comando seguente per riavviare il desktop Linux Mint per applicare nuove configurazioni.
sudo reboot
Configurazione dell'autenticazione Kerberos per il servizio SSH
È necessario abilitare l'autenticazione Kerberos sul servizio SSH nell'ambiente server. In questo modo l'utente AD accede al server. Come? Modificando il file di configurazione SSH.
Apri l'SSH (/etc/ssh/sshd_config
) file di configurazione nel tuo editor preferito.
Decommenta le seguenti opzioni e imposta i loro valori su yes
:
KerberosAuthentication
– Abilita l'autenticazione Kerberos.KerberosTicketCleanup
– Distrugge automaticamente i ticket Kerberos al logout
Ora, esegui il comando seguente per riavviare il server e applicare nuove configurazioni.
sudo reboot
Accesso a macchine Linux utilizzando utenti Samba AD
Ora hai completato e aggiunto client Linux a Samba AD. Ma come puoi verificare che gli utenti di Samba AD possano accedere a quei client Linux? È possibile specificare utente e password nella schermata di accesso di Display Manager sui client desktop Linux. Mentre per il server Ubuntu, puoi connetterti tramite il protocollo SSH sicuro.
L'accesso al server Ubuntu, Mint e Ubuntu ha un aspetto diverso l'uno dall'altro. Ma non preoccuparti, in questa demo vedrai come accedere a ciascun sistema operativo utilizzando gli utenti di Samba AD.
Accesso a Linux Ubuntu Desktop
Con Linux Ubuntu Desktop, l'accesso utilizzando gli utenti di Samba AD è lo stesso di come si accede in genere con un account utente.
1. Avvia il tuo client desktop Ubuntu, fai clic su Non elencato? opzione nella schermata di accesso di Ubuntu GDM per accedere con un utente diverso.
2. Quindi, inserisci il tuo utente Samba AD nel [email protected]
formato. Questo esempio utilizza l'utente Samba AD alice(example.lan) , come mostrato di seguito.
3. Inserisci la password del tuo utente Samba AD (alice) e premi INVIO per accedere.
Dopo aver effettuato l'accesso, vedrai il desktop Ubuntu predefinito come screenshot qui sotto, dove l'utente Samba AD alice
è connesso con successo.
Di seguito puoi vedere che il modulo PAM (pam_mkhomedir.so.
) ha creato automaticamente la directory home dell'utente. Mentre i privilegi di root sudo sono configurati tramite il file sudoers
.
Accesso a Linux Mint Desktop
Per il desktop Linux Mint, l'accesso ha un aspetto leggermente diverso da come accedi su un desktop Ubuntu,
Fai clic sul pulsante Accedi, inserisci il tuo utente e la password, come mostrato di seguito, quindi premi INVIO per accedere.
Ora vedrai Linux Mint Desktop per il tuo utente Samba AD come quello qui sotto.
Accesso a Ubuntu Server
A differenza dei primi due sistemi operativi, accederai a un server Ubuntu tramite l'ambiente della riga di comando utilizzando ssh
comando.
Esegui ssh
comando seguente da un'altra macchina per connettersi al server utilizzando l'utente Samba AD seguendo il [email protected]_ip
formato, come mostrato di seguito.
# connect to SSH using AD user
ssh [email protected]
Digita yes
per aggiungere l'identità dell'impronta digitale del server e inserire la password per il tuo utente Samba AD nel server Ubuntu.
Come puoi vedere di seguito, la home directory dell'utente viene creata automaticamente e la shell predefinita per gli utenti di Samba AD è Bash.
Conclusione
Durante questo tutorial, hai imparato come aggiungere client Linux (desktop e server) a Samba Active Directory (AD) utilizzando il servizio SSSD e Realm. Inoltre, hai imparato ad abilitare l'autenticazione Kerberos sul servizio SSH per un server Linux.
Ora, come sfruttereste la funzionalità di Samba Active Directory? Forse provare ad aggiungere un altro server come controller di dominio (DC) per partecipare all'attuale Samba AD? Questa configurazione fornisce supporto per la replica, la ridondanza e il bilanciamento del carico sul tuo AD. Di conseguenza, puoi aggiungere un altro gruppo di client a Samba AD.