Come installare FreeIPA Server con Docker su Debian 12
FreeIPA è una soluzione di gestione delle identità open source per i sistemi operativi Linux/Unix. È un progetto a monte del RedHat Identity Management System, che fornisce soluzioni di autenticazione e autorizzazione per i sistemi Linux/Unix.
FreeIPA si basa su più componenti, tra cui Directory Server, DNS, Kerberos, PKI, Certmonger, NTP Server, interfaccia utente di amministrazione Web, ecc. Fornisce una fonte centralizzata di credenziali utente e controllo degli accessi. L'utilizzo di FreeIPA consente agli amministratori di gestire facilmente l'identità in un ambiente centralizzato e fornisce inoltre monitoraggio, autenticazione e controllo degli accessi agli utenti.
In questa guida installerai e configurerai il server FreeIPA sulla macchina Debian 12 tramite Docker. Installerai Docker CE (Community Edition), creerai un'immagine Docker del server FreeIPA, installerai FreeIPA Server, quindi imparerai la gestione di base del server FreeIPA. Oltre a ciò, imparerai anche come aggiungere una macchina client Linux come client FreeIPA al server FreeIPA che viene eseguito come contenitore Docker.
Prerequisiti
Per questa guida avrai bisogno di un server Linux con Debian 12 o Debian 11 con un minimo di 4 GB di memoria. Avrai anche bisogno di un utente root o di un utente non root con privilegi di amministratore. Per quanto riguarda il client, puoi utilizzare qualsiasi distribuzione Linux, ma per questo esempio utilizzerai Ubuntu come macchina client FreeIPA.
Imposta FQDN e fuso orario
Prima di installare Docker e FreeIPA, devi prima assicurarti di avere il fqdn corretto (nome di dominio completo), il file '/etc/hosts' corretto e anche il fuso orario corretto. In questo primo passaggio, configurerai il fqdn, il file /etc.hosts e il fuso orario sul tuo server Debian.
Per iniziare, configura il fqdn del tuo server FreeIPA inserendo il seguente comando.
sudo hostnamectl set-hostname ipa.hwdomain.lan
Ora apri il file '/etc/hosts' utilizzando il seguente comando dell'editor nano.
sudo nano /etc/hosts
Aggiungi dettagli su indirizzo IP, fqdn e nome host del tuo sistema.
192.168.5.10 ipa.hwdomain.lan ipa
Salva e chiudi il file una volta terminato.
Ora digita il seguente comando per verificare l'fqdn del tuo sistema e assicurarti che l'fqdn punti all'indirizzo IP interno corretto.
sudo hostname -f
sudo ping -c3 ipa.hwdomain.lan
Successivamente, inserisci il seguente comando per impostare il fuso orario sul tuo sistema. Assicurati di modificare il fuso orario nel comando seguente con il fuso orario del tuo server.
sudo timedatectl set-timezone Europe/Stockholm
Inserisci il seguente comando per impostare l'ora locale per il tuo sistema.
sudo unlink /etc/localtime
sudo ln -s /usr/share/timezone/Europe/Stockholm /etc/localtime
Ora vai al passaggio successivo per avviare l'installazione di Docker CE.
Installazione di Docker CE
FreeIPA Server può essere installato in molti modi, poiché per le distribuzioni basate su Debian è possibile utilizzare Docker. In questa sezione installerai Docker CE (Community Edition) tramite il repository Docker ufficiale, quindi configurerai anche il tuo utente per consentire l'esecuzione e l'esecuzione dei contenitori Docker.
Innanzitutto, inserisci il seguente comando apt per installare le dipendenze di base. Quando richiesto, inserire y per confermare e premere INVIO per procedere.
sudo apt install ca-certificates \
curl \
gnupg \
git \
lsb-release
Successivamente, aggiungi e scarica la chiave GPG del repository Docker CE.
sudo mkdir -m 0755 -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
Una volta aggiunta la chiave GPG, inserisci il comando seguente per aggiungere il repository Docker CE.
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Ora esegui il comando 'apt update' di seguito per aggiornare e aggiornare l'indice del tuo pacchetto Debian.
sudo apt update
Quindi, installa i pacchetti Docker CE inserendo il comando "apt install" di seguito. Immettere y per confermare quando richiesto e premere ENTER per procedere.
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Con Docker CE installato, viene anche eseguito e abilitato automaticamente. eseguire il comando 'systemctl' riportato di seguito per verificare il servizio Docker.
sudo systemctl is-enabled docker
sudo systemctl status docker
Dovresti vedere l'output "enabled", il che significa che il servizio Docker verrà eseguito automaticamente all'avvio del sistema. L'output 'active (running)' conferma che il servizio Docker corrente è in esecuzione.
Infine, se prevedi di eseguire la tua applicazione Docker tramite un utente non root, devi aggiungere il tuo utente al gruppo "docker". Digita il seguente comando per aggiungere il tuo utente al gruppo 'docker'. In questo esempio, aggiungerai un utente "bob" al gruppo "docker".
sudo usermod -aG docker bob
Ora accedi come utente "bob" e digita il comando docker di seguito per eseguire il contenitore "hello-world". in caso di successo, dovresti vedere il messaggio di benvenuto dal contenitore stampato sullo schermo del tuo terminale.
su - bob
docker run hello-world
Con questo, ora hai eseguito ed eseguito con successo il contenitore Docker come utente non root con l'utente chiamato 'bob'. Come per il resto di questa guida, eseguirai comandi all'interno dell'utente 'bob'.
Creazione di un'immagine Docker FreeIPA
In questa sezione creerai l'immagine Docker per il server FreeIPA. Per fare ciò, puoi facilmente scaricare il repository del contenitore FreeIPA dalla pagina GitHub ufficiale di FreeIPA. Successivamente, puoi scegliere qualsiasi distribuzione Linux per l'immagine di base.
Per prima cosa installa 'git' sul tuo server Debian tramite il comando apt riportato di seguito. Quando richiesto, inserire y per confermare, quindi premere ENTER.
sudo apt install git
Ora esegui il seguente comando git per scaricare il repository "freeipa-container" sul tuo sistema. Quindi, sposta la tua directory di lavoro al suo interno.
git clone https://github.com/freeipa/freeipa-container.git
cd freeipa-container
Ora esegui il comando 'ls' di seguito per verificare l'elenco di file e directory nel repository 'freeipa-container'. Dovresti vedere più file di Dockerfile che puoi utilizzare per configurare il server FreeIPA sul tuo sistema Debian.
ls
Successivamente, inserisci il comando seguente per creare una nuova immagine Docker del server FreeIPA. In questo esempio, creerai un'immagine Docker del server FreeIPA basata su 'AlmaLinux 9' e sarà chiamata 'freeipa-almalinux9'.
docker build -t freeipa-almalinux9 -f Dockerfile.almalinux-9 .
Una volta eseguito il comando 'docker build', dovresti vedere il processo di creazione dell'immagine Docker per il server FreeIPA.
Una volta terminato il processo, dovresti vedere l'output come 'naming to .../.../freeipa-almalinux9'.
Esegui il comando seguente per verificare l'elenco delle immagini Docker disponibili sul tuo sistema. Dovresti vedere l'immagine Docker chiamata 'freeipa-almalinux9' creata e disponibile sul tuo sistema.
docker images
Una volta creata l'immagine Docker FreeIPA, installerai il server FreeIPA e la configurazione tramite Docker.
Creazione del contenitore del server FreeIPA
In questa sezione installerai e configurerai il server FreeIPA tramite il contenitore Docker. Eseguirai un nuovo contenitore con l'immagine di base 'freeipa-almalinux9' che hai creato, quindi avvierai le configurazioni del server FreeIPA. Una volta terminate le configurazioni, imposterai successivamente la mappatura delle porte del contenitore del server FreeIPA sulla macchina host Docker.
Innanzitutto, digita il seguente comando per creare una nuova directory di dati '/var/lib/freeipa-data'. Questo verrà utilizzato come directory dei dati del server FreeIPA.
sudo mkdir -p /var/lib/freeipa-data
Ora esegui il seguente comando "docker run" per creare ed eseguire il contenitore del server FreeIPA. In questo esempio, creerai un nuovo contenitore FreeIPA chiamato 'freeipa-server-almalinux9' e memorizzerai i dati del server FreeIPA sul computer host su '/var/lib/freeipa-data'.
docker run --name freeipa-server-almalinux9 -ti \
-h ipa.hwdomain.lan --read-only --sysctl net.ipv6.conf.all.disable_ipv6=0 \
-v /sys/fs/cgroup:/sys/fs/cgroup:ro \
-v /var/lib/freeipa-data:/data:Z freeipa-almalinux9
Durante l'installazione ti dovrebbero essere richieste alcune configurazioni del server FreeIPA.
Quando viene richiesto di impostare il DNS integrato tramite BIND, premere INVIO o inserire il n.
Ora inserisci il nome host del server, il nome del dominio e il REALM per il tuo server FreeIPA.
Ora digita una nuova password e ripeti per il gestore della directory e l'utente amministratore IPA.
Per il nome NetBIOS, lasciarlo come predefinito e premere INVIO. Per quanto riguarda la configurazione NTP, inserire no o semplicemente premere INVIO.
Ora controlla e verifica la configurazione dell'installazione del tuo server FreeIPA. Al termine, digita "sì" e premi INVIO per confermare. Con questo, la configurazione del server FreeIPA dovrebbe essere in esecuzione e richiedere tempo.
Una volta completata la configurazione del server FreeIPA, dovresti ricevere un output come 'Installazione completata' e le istruzioni per i passaggi successivi.
Ora apri una nuova sessione terminale e connettiti al tuo server Debian. Quindi, accedi come utente "bob" e inserisci il seguente comando docker per verificare il contenitore in esecuzione sul tuo sistema.
docker ps
Dovresti vedere il contenitore chiamato 'freeipa-server-almalinux9' con lo stato 'Su'.
A questo punto, il server FreeIPA è in esecuzione con i dati che sono ora archiviati nella directory '/var/lib/freeipa-data'. Nel passaggio successivo, devi aggiungere la mappatura delle porte per il server FreeIPA.
Inserisci il seguente comando per arrestare il contenitore "freeipa-server-almalinux9" e rimuoverlo. Questo rimuoverà il contenitore, ma non la directory dei dati '/var/lib/freeipa-data'.
docker stop freeipa-server-almalinux9
docker rm freeipa-server-almalinux9
Quindi esegui il comando seguente per creare un nuovo contenitore con mappatura delle porte per il server FreeIPA. Ciò creerà una nuova versione del contenitore "freeipa-server-almalinux9" con porte specifiche mappate sulla macchina host e utilizzando gli stessi dati del precedente server FreeIPA.
docker run --name freeipa-server-almalinux9 -ti \
-h ipa.hwdomain.lan -p 53:53/udp -p 53:53 -p 80:80 -p 443:443 -p 389:389 -p 636:636 -p 88:88 -p 464:464 -p 88:88/udp -p 464:464/udp -p 123:123/udp \
--read-only --sysctl net.ipv6.conf.all.disable_ipv6=0 \
-v /sys/fs/cgroup:/sys/fs/cgroup:ro \
-v /var/lib/freeipa-data:/data:Z freeipa-almalinux9
Passa nuovamente a un'altra sessione del terminale ed esegui il comando seguente per interrompere e riavviare il contenitore 'freeipa-server-almalinux9'. Ciò garantirà che il contenitore 'freeipa-server-almalinux9' sia in esecuzione in background.
docker stop freeipa-server-almalinux9
docker start freeipa-server-almalinux9
Controlla di nuovo l'elenco dei contenitori in esecuzione sul tuo sistema: dovresti vedere che il contenitore 'freeipa-server-almalinux9' è in esecuzione con nuove porte mappate sulla macchina host.
docker ps
Con questo l'implementazione del server FreeIPA tramite Docker è terminata. Il tuo server FreeIPA è ora accessibile dai client e hai inoltre configurato la password dell'amministratore sia per l'amministratore IPA che per il Directory Manager.
Autenticarsi contro il server FreeIPA
Dopo aver installato il server FreeIPA tramite Docker, ora verificherai l'installazione autenticandoti al server Kerberos FreeIPA dal server host Docker. Per fare ciò, devi assicurarti che il nome di dominio del tuo server FreeIPA sia indirizzato al server corretto e devi avere le utilità client Kerberos installate.
Prima di iniziare, apri il file '/etc/hosts' sul tuo sistema Debian utilizzando il seguente comando dell'editor nano.
sudo nano /etc/hosts
Aggiungi le seguenti righe al file e assicurati di modificare l'indirizzo IP e il nome del dominio con l'host del tuo server FreeIPA.
192.168.5.10 ipa.hwdomain.lan
Salva e chiudi il file quando hai finito.
Successivamente, installa il pacchetto 'krb5-user' sul tuo sistema tramite il comando apt riportato di seguito. Questo installerà alcune utilità Kerberos che possono essere utilizzate per connettersi al tuo server FreeIPA.
sudo apt install krb5-user
Immettere y quando richiesto e premere INVIO per procedere.
Quando ti viene richiesta la configurazione REALM predefinita, inserisci REALm per il tuo server FreeIPA: in questo esempio, REALM è 'HWDOMAIN.LAN'.
Per quanto riguarda il server Kerberos, inserisci il nome di dominio del tuo server FreeIPA come 'ipa.hwdomain.lan'.
Utilizzare lo stesso valore per il server amministrativo per l'ambito Kerberos: 'ipa.hwdomain.lan'.
Ora l'installazione dovrebbe essere terminata e le nuove impostazioni dovrebbero essere generate nel file '/etc/krb5.conf'.
Con le utilità Kerberos installate, inserisci il comando seguente per testare l'autenticazione sul server Kerberos in esecuzione come contenitore Docker. Quando richiesto, inserisci la password dell'amministratore per il tuo server FreeIPA.
kinit admin
Inserisci il comando seguente per verificare la tua autenticazione sul server Kerberos. In caso di esito positivo, dovresti ottenere i dettagli dei ticket per la tua autenticazione Kerberos.
klist
Infine, puoi anche visitare la dashboard di amministrazione web del tuo server FreeIPA. Assicurati che il nome di dominio del tuo server FreeIPA sia aggiunto al file '/etc/hosts' sul tuo computer locale.
Apri il tuo browser web e visita il nome di dominio del server FreeIPA (ad esempio: https://ipa.hwdomain.lan/). In caso di successo, dovresti vedere la pagina di accesso al server FreeIPA.
Inserisci l'amministratore utente e la tua password, quindi fai clic su Accedi.
Una volta completata l'autenticazione, dovresti vedere la dashboard di amministrazione web del tuo server FreeIPA.
Aggiunta di utenti e gruppi FreeIPA tramite Command Linux
Esistono diversi metodi per gestire il server FreeIPA che viene eseguito come contenitore Docker, puoi gestirlo tramite un dashboard di amministrazione web o gestendo la directory dal contenitore del server FreeIPA. In questa sezione gestirai l'utente e il gruppo FreeIPA tramite l'utilità di comando "ipa" dal contenitore del server FreeIPA.
Innanzitutto, inserisci il seguente comando per accedere al contenitore 'freeipa-server-almalinux9'.
docker exec -it freeipa-server-almalinux9 /bin/bash
Una volta effettuato l'accesso, autenticati sul server Kerberos tramite l'utente 'admin'. Quindi, verifica i dettagli del ticket Kerberos. Quando viene richiesta la password, inserisci la password per il tuo Directory Manager.
kinit admin
klist
Dopo esserti autenticato su Kerberos, ora puoi iniziare a configurare il server FreeIPA.
Inserisci il seguente comando 'ipa config-mod' per impostare la shell predefinita per gli utenti FreeIPA su '/bin/bash'.
ipa config-mod --defaultshell=/bin/bash
Dovresti vedere i dettagli delle configurazioni utente per il server FreeIPA.
Successivamente, inserisci il comando seguente per creare un nuovo utente FreeIPA chiamato "ubuntu". Inoltre, inserisci una nuova password quando richiesto e ripeti.
ipa user-add ubuntu --first=Ubuntu --last=Linux --password
Una volta aggiunto, dovresti ottenere un output come 'Utente aggiunto "ubuntu"'.
Ora inserisci il comando seguente per trovare l'utente "ubuntu" sul tuo server FreeIPA. Quando l'utente è disponibile, dovresti ottenere un output come "1 utente corrispondente". Inoltre, puoi vedere i dettagli dell'utente 'ubuntu'.
ipa user-find ubuntu
Puoi anche ottenere i dettagli degli utenti disponibili su FreIPA inserendo il seguente comando.
ipa user-show --raw ubuntu
Di seguito è riportato un output simile che otterrai.
Successivamente, crea un nuovo gruppo "sviluppo" utilizzando il comando "ipa group-add" e verifica il gruppo per assicurarti che il nuovo sia aggiunto e disponibile.
ipa group-add --desc='Development Team' development
ipa group-find development
Ora esegui il seguente comando 'ipa group-add-member' per aggiungere l'utente FreeIPA 'ubuntu' al gruppo 'development'.
ipa group-add-member --user=ubuntu development
Verifica i dettagli del gruppo 'sviluppo' utilizzando il seguente comando. Dovresti vedere l'utente 'ubuntu' aggiunto al gruppo 'development'.
ipa group-show development
Aggiunta di host al server FreeIPA
FreeIPA fornisce il modo più semplice per aggiungere un nuovo host al server FreeIPA, cosa che può essere eseguita tramite il pacchetto client FreeIPA che fornisce l'utilità 'ipa-client-install'. In questa sezione aggiungerai una macchina Ubuntu al server FreeIPA 'ipa.hwdomain.lan' che viene eseguito come contenitore.
Di seguito sono riportati i passaggi che devi eseguire per aggiungere un nuovo host al server FreeIPA:
- Imposta FQDN e fuso orario della macchina client
- Installazione dei pacchetti client FreeIPA
- Verificare la macchina client FreeIPA
Ora iniziamo ad aggiungere la macchina Ubuntu al contenitore Docker FreeIPA Server.
Imposta FQDN e fuso orario
Innanzitutto, accedi al tuo computer client e configura fqdn utilizzando il seguente comando.
sudo hostnamectl set-hostname client01.hwdomain.lan
Ora apri il file di configurazione '/etc/hosts' utilizzando il seguente comando dell'editor nano.
sudo nano /etc/hosts
Aggiungi le seguenti righe al file e assicurati di modificare i dettagli dell'indirizzo IP, fqdn e nome host.
192.168.5.10 ipa.hwdomain.lan ipa
192.168.5.121 client01.hwdomain.lan client01
Salva il file quando hai finito.
Ora inserisci il seguente comando per assicurarti che il fqdn della macchina client sia puntato all'indirizzo IP corretto e che anche il nome di dominio del server FreeIPA sia puntato all'indirizzo IP corretto e appropriato.
ping -c3 ipa.hwdomain.lan
ping -c3 client01.hwdomain.lan
Successivamente, inserisci il seguente comando per impostare il fuso orario del tuo computer client.
sudo timedatectl set-timezone Europe/Stockholm
Infine, inserisci il comando seguente per configurare il file '/etc/localtime' con le impostazioni corrette del fuso orario.
sudo unlink /etc/localtime
sudo ln -s /usr/share/timezone/Europe/Stockholm /etc/localtime
Installazione del client FreeIPA
Innanzitutto, aggiorna e aggiorna l'indice del tuo pacchetto Ubuntu tramite il comando apt seguente.
sudo apt update
Ora installa il pacchetto client FreeIPA utilizzando il seguente comando. Quando richiesto, inserisci y per confermare e premi INVIO per procedere.
sudo apt install freeipa-client oddjob-mkhomedir
Quando ti viene richiesto il nome di dominio REALM predefinito, inserisci il tuo dominio principale come "HWDOMAIN.LAN".
Inserisci il nome del dominio del realm Kerberos con il dominio del server FreeIPA 'ipa.hwdomain.lan'.
Infine, inserisci nuovamente il nome di dominio del server FreeIPA 'ipa.hwdomain.lan' come server amministrativo per il server Kerberos.
Una volta installato il pacchetto client FreeIPA, esegui il seguente comando 'ipa-client-install' per aggiungere il computer client al server FreeIPA. Assicurati di modificare i dettagli del nome di dominio e del realm del server FreeIPA.
ipa-client-install --hostname=`hostname -f` \
--mkhomedir \
--server=ipa.hwdomain.lan \
--domain hwdomain.lan \
--realm HWDOMAIN.LAN
Quando viene richiesto di utilizzare le configurazioni fisse, inserire sì per confermare e premere INVIO. Per quanto riguarda il server NTP, lascialo predefinito su no. Infine, inserisci nuovamente Sì per confermare l'installazione.
Di seguito è riportato l'output durante l'installazione e le configurazioni.
Una volta terminato, verrà visualizzato sullo schermo del terminale un output come "Il comando ipa-client-install ha avuto successo".
Verifica il client Hosts FreeIPA
Dal server FreeIPA, digitare il comando seguente per connettersi al computer client "192.168.5.121" utilizzando l'utente FreeIPA "ubuntu". Quando richiesto, inserisci sì per confermare e aggiungere l'impronta digitale SSH del computer client, quindi inserisci la password per l'utente FreeIPA "ubuntu".
ssh [email
Una volta effettuato l'accesso, ti verrà chiesto di modificare la password corrente predefinita. Quindi, inserisci la password corrente, inserisci la nuova password e ripeti.
Infine, inserisci il comando seguente per identificare il tuo utente attuale. Dovresti vedere che hai effettuato l'accesso al computer client tramite l'utente 'ubuntu', che fa anche parte del gruppo 'development'.
id
whoami
Conclusione
In questo tutorial hai imparato come installare e distribuire il server FreeIPA tramite Docker su un server Debian 12. Hai anche imparato l'utilizzo di base del comando 'ipa' per creare e gestire utenti e gruppi FreeIPA e anche imparato come ottenere un ticket Kerberos tramite il comando kinit e accedere all'amministrazione web di FreeIPA tramite l'utente e la password amministratore.
Infine, hai anche aggiunto una macchina client Ubuntu al server FreeIPA tramite il pacchetto client FreeIPA. Hai imparato passo dopo passo come farlo e hai anche verificato le tue impostazioni accedendo al computer client tramite l'utente FreeIPA.
Con questo, ora puoi aggiungere più host, utenti e gruppi al tuo server FreeIPA. Puoi anche integrare FreeIPA nella tua produzione. Per ottenere informazioni dettagliate, visita la documentazione ufficiale di FreeIPA.