GNU/Linux >> Linux Esercitazione >  >> Linux

Come connettersi con Samba a Linux Active Directory

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.lanexample.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.lanexample.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)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 realmdsssd 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 realmdsssd 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_providerad . 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 su enforcing (il valore predefinito). Quindi modifichi  ad_gpo_access_control valore a permissive .

Ma su Linux Mint, puoi ancora accedere utilizzando gli utenti AD, anche quando il ad_gpo_access_control si trova sul enforcing 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.


Linux
  1. Come creare un utente con una home directory personalizzata in Linux

  2. Come rinominare una directory su Linux

  3. Linux:come combinare l'albero con la dimensione della directory?

  4. Come gzippare una directory in Linux

  5. Come controllare la password con Linux?

Come collegare Kindle Fire HD con Ubuntu Linux

Come leggere un file con spazi in Linux

Come unire un sistema Linux a un dominio Active Directory

Come proteggere i server Linux con SE Linux

Come copiare la directory su Linux

Come eseguire un'installazione di Samba Active Directory su Linux