Utenti e gruppi

Account provider

NethServer supporta autenticazione e autorizzazione da un account provider locale o remoto.

I tipi di account provider supportati sono:

  • OpenLDAP locale in funzione sullo stesso NethServer

  • Server LDAP remoto con schema RFC2307

  • Samba 4 Active Directory Domain Controller locale

  • Active Directory remoto (sia Microsoft che Samba)

Solamente l’utente root può configurare un account provider dalla pagina Utenti e Gruppi. La configurazione dell’account provider non può essere delegata.

Prestare attenzione alla seguente nota relativa agli account provider:

Dopo che NethServer è stato collegato ad un account provider remoto, la pagina Utenti e gruppi visualizza gli account di dominio in sola lettura.

Provider remoto

Dopo che NethServer è stato collegato ad un account provider remoto, la pagina Utenti & Gruppi visualizza la lista degli account di dominio in sola lettura.

Provider locale

Dopo aver installato un provider locale (sia Samba 4 che OpenLDAP), l’amministratore può creare, modificare ed eliminare gli utenti e i gruppi.

Avvertimento

La scelta del tipo di account provider da adottare va fatta con estrema accuratezza perché non è reversibile. Inoltre il sistema impedirà qualsiasi modifica all’FQDN una volta che l’account provider sarà configurato.

Scegliere l’account provider giusto

L’amministratore dovrà decidere quale backend adottare secondo le necessità contingenti scegliendo l’attestazione ad un provider remoto o l’installazione di un provider locale.

Il modulo File server di NethServer, che abilita la pagina File server > Cartelle condivise, può autenticare i client SMB/CIFS solo se NethServer è attestato ad un dominio Active Directory. I provider LDAP consentono l’accesso alle Cartelle condivise solo in modalità guest. Fare riferimento alla sezione Cartelle condivise.

D’altra parte il provider OpenLDAP locale è più semplice da installare e configurare.

In pratica, se il protocollo di condivisione file SMB non è richiesto, il provider LDAP è la scelta migliore.

Installazione del provider locale OpenLDAP

Per installare e configurare un account provider locale OpenLDAP, spostarsi nella pagina Utenti & Gruppi > [Configura un account provider] > LDAP > Installa LDAP locale. Il sistema necessita una connessione internet funzionante per poter scaricare i necessari pacchetti aggiuntivi.

Al termine dell’installazione il pacchetto sarà automaticamente configurato e l’amministratore potrà gestire utenti e gruppi dalla pagina User and groups.

Fare riferimento alla sezione Account admin per maggiori informazioni in merito all’utente ed al gruppo amministrativo di default.

Avvertimento

L’account provider OpenLDAP locale disponibile NethServer non supporta completamente la scadenza password dell’utente. Fare riferimento alla sezione Effetti della password scaduta per maggiori dettagli

Installazione del provider locale Samba Active Directory

Per installare Samba Active Directory come account provider locale, il sistema necessita un indirizzo IP addizionale ed una connessione ad internet funzionante.

L’indirizzo IP addizionale è assegnato ad un Linux Container che esegue le funzioni di un controllore di dominio Active Directory e deve essere accessibile dalla LAN (rete green).

Pertanto l’indirizzo IP aggiuntivo deve soddisfare tre condizioni:

  1. l’indirizzo IP deve essere libero; non può essere usato da alcun dispositivo

  2. l’indirizzo IP deve appartenere alla stessa subnet di una rete green

  3. la rete green deve essere assegnata ad una interfaccia bridge sulla quale il Container Linux possa attaccare la sua interfaccia virtuale; la procedura di installazione è in grado di creare l’interfaccia bridge automaticamente se non presente.

Per installare un account provider Active Directory locale, spostarsi nella pagina Utenti & Gruppi > [Configura un account provider] > Active Directory > Crea un nuovo dominio e diventa DC.

Il Nome del dominio definisce il suffisso DNS del nuovo dominio. NethServer svolge il ruolo di server DNS autoritativo per quel dominio. Per approfondimenti fare riferimento a DNS e dominio AD.

Il Nome dominio NetBIOS (noto anche come «nome corto di dominio» o «nome dominio NT») è l’identificativo alternativo per domini Active Directory, compatibile con i client più datati. Per approfondimenti fare riferimento a Accesso alla rete.

Il campo Indirizzo IP del DC deve essere valorizzato con l’indirizzo IP aggiuntivo di cui sopra.

Una volta valorizzati tutti i campi, premere il bottone Crea dominio.

Avvertimento

Il Nome del dominio ed il Nome dominio NetBIOS di Active Directory non possono essere modificati una volta che il dominio è stato creato

La procedura di configurazione di Active Directory può richiedere un po' di tempo per completarsi, perché crea il chroot per il Linux Container, scaricando da internet dei pacchetti aggiuntivi.

La directory radice del Linux Container è /var/lib/machines/nsdc/ e richiede un filesystem con supporto alle ACL Posix. Il filesystem di default XFS include il supporto alle ACL Posix e non richiede ulteriori configurazioni. Per altri filesystem (es. EXT4) abilitare le ACL come spiegato nei Requisiti per le cartelle condivise.

Al termine della procedura, la macchina host NethServer sarà automaticamente attestata al nuovo dominio Active Directory.

L’indirizzo IP assegnato in precedenza può essere modificato dal menu Utenti & Gruppi > Account provider > [Dettagli] > IP Active Directory

Avvertimento

La modifica dell’indirizzo IP del Controller di Dominio può causare problemi ai client di Active Directory. Se utilizzano un server DNS esterno, aggiornarlo perché venga utilizzato il nuovo indirizzo IP.

Dopo aver installato Samba Active Directory, la pagina Utenti & Gruppi contiene due elementi predefiniti; entrambi sono disabilitati: administrator e admin. «Administrator» è l’account privilegiato predefinito di Active Directory e non è necessario nella gestione di NethServer; è bene tenerlo disabilitato. «admin» è l’account amministrativo predefinito per NethServer. E” membro del gruppo AD «Domain admins». Vedere Account admin per maggiori informazioni.

DNS e dominio AD

Un dominio di Active Directory richiede un dominio DNS riservato per funzionare. È buona pratica assegnare un sottodominio del dominio DNS pubblico per questa funzione. Il sottodominio AD può essere accessibile solo dalle reti LAN (green).

Esempio:

  • dominio pubblico (esterno): nethserver.org

  • FQDN del server: mail.nethserver.org

  • dominio Active Directory (interno solo LAN): ad.nethserver.org

  • FQDN domain controller (assegnato di default): nsdc-mail.ad.nethserver.org

Suggerimento

Quando si sceglie un dominio per Active Directory utilizzare un dominio interno che sia un sottodominio del dominio esterno 1

1

https://social.technet.microsoft.com/wiki/contents/articles/34981.active-directory-best-practices-for-internal-domain-and-network-names.aspx#Recommendation

Installazione su macchina virtuale

Samba Active Directory viene eseguito all’interno di un container Linux che utilizza un’interfaccia di rete virtuale in bridge con l’interfaccia di rete del sistema. L’interfaccia di rete virtuale deve essere visibile all’interno della rete fisica, ma spesso i software di virtualizzazione bloccano il traffico ARP e questo preclude la visibilità del container Samba Active Directory dalla LAN.

È quindi necessario assicurarsi che il virtualizzatore abiliti il traffico di rete con la modalità promiscua.

VirtualBox

Per configurare la modalità promiscua, selezionare «Permetti tutto» dal menù a discesa presente nella sezione di configurazione di rete.

VMWare

Entrare nella sezione di configurazione di rete del nodo da virtualizzare e abilitare lo switch virtuale in modalità promiscua.

KVM

Assicurarsi che la macchina virtuale sia in bridge con un bridge reale (per esempio br0) e che sia configurato in modalità promiscua.

È possibile forzare un bridge (per esempio, br0) in modalità promiscua usando il seguente comando:

ifconfig br0 promisc
Hyper-V

Configurare il MAC Address Spoofing per gli adattatori di rete virtuali 2

2

https://technet.microsoft.com/en-us/library/ff458341.aspx

Join ad un dominio Active Directory esistente

In questo scenario NethServer è collegato ad un account provider Active Directory remoto. Può essere una implementazione Samba o Microsoft. NethServer diventa quindi un server membro di un dominio Active Directory esistente. Quando si accede ad una risorsa su NethServer da una workstation del dominio, le credenziali dell’utente sono verificate da uno dei controllori di dominio e l’accesso alla risorsa viene consentito.

Per l’attestazione a un dominio di Active Directory è necessario siano soddisfatti i seguenti requisiti:

Il protocollo Kerberos richiede che la differenza tra gli orologi dei dispositivi del dominio sia meno di 5 minuti. Sincronizzare gli orologi dei client di rete con una sorgente di orario comune. Per NethServer andare alla pagina Data e ora.

Soddisfatti i prerequisiti, spostarsi alla pagina Utenti & Gruppi > [Configura un account provider] > Active Directory > Join a un controller di dominio esistente.

  • Immettere il Nome del dominio del dominio AD. Premere il bottone Controllare.

  • Se richiesto, valorizzare il campo Server DNS AD. Solitamente è l’indirizzo IP di un controller di dominio AD. Premere nuovamente Controllare.

  • Fornire il Username e la Password di un account AD avente i necessari privilegi per attestare un computer al dominio. Attenzione, l’account amministratore predefinito potrebbe essere disattivato! Premere nuovamente Controllare.

  • Se le credenziali sono valide completare la procedura premendo Avanti.

Alcune applicazioni richiedono un passaggio di configurazione aggiuntivo. Fare riferimento alla sezione Account LDAP per le applicazioni aggiuntive.

Collegamento ad un server LDAP remoto

Per configurare un provider di account LDAP remoto, spostarsi nella pagina Utenti & Gruppi > Configura un Account provider > LDAP > Collega un server LDAP remoto.

Digitare l’indirizzo IP del server LDAP nel campo Nome host o IP. Se il servizio LDAP è esposto su una porta TCP non standard, specificarla nel campo Porta TCP. Premere il bottone Controllare per proseguire.

Una query LDAP rootDSE verrà inviata all’host specificato e il form verrà valorizzato con i dati restituiti. Controllare che i valori siano corretti e premere nuovamente il tasto Controllare.

Se il server LDAP richiede l’autenticazione, impostare Tipo Bind ad Autenticato. Impostare quindi ldaps:// nel campo Service URI o abilitare StartTLS per cifrare la connessione.

Suggerimento

Se il server LDAP remoto è un NethServer e si trova nella rete LAN (green), selezionare Bind anonimo

Alcune applicazioni richiedono un passaggio di configurazione aggiuntivo. Fare riferimento alla sezione Account LDAP per le applicazioni aggiuntive.

Account LDAP per le applicazioni aggiuntive

Alcuni moduli aggiuntivi, come Nextcloud, WebTop, Roundcube, Ejabberd, richiedono un account dedicato per eseguire bind simple in sola lettura a LDAP.

A tal fine, quando si utilizzano account provider locali viene creato automaticamente l’account integrato con privilegi limitati ldapservice. I suoi Bind password e Bind DN completo vengono visualizzati sotto Utenti e gruppi> Account provider> [Dettagli]. Si consiglia di utilizzare queste credenziali per connettere sistemi esterni all’account provider.

In alternativa, se NethServer è associato a un account provider remoto, seguire questi passaggi:

  1. Creare un account utente dedicato nel provider AD o LDAP remoto, a cui impostare una password complessa e * priva di scadenza*. Come detto sopra, se il provider remoto è un altro NethServer, questo fornisce già l’utente ldapservice” per questo scopo.

  2. Una volta completato il collegamento di NethServer all’AD o all’LDAP remoto, specificare le credenziali dell’account dedicato all’interno di guilabel:`Utenti & Gruppi > Account provider > Modifica provider > Credenziali autenticazione applicazioni LDAP.

  3. Se l’account provider remoto supporta TLS, si consiglia di abilitare l’opzione StartTLS o utilizzare lo schema URI ldaps:// nel campo di input Service URI per evitare di inviare password in chiaro sulla rete.

Avvertimento

L’account provider AD di NethServer  supporta TLS. Un AD MS Windows potrebbe necessitare alcune configurazioni aggiuntive per abilitare TLS.

Modifica account provider

L’account provider configurato può essere rimosso dall’utente root dal pannello Utenti & Gruppi > Account provider > Cambia provider.

Quando un account provider viene rimosso, i file esistenti di proprietà di utenti e gruppi devono essere rimossi manualmente. Questo è l’elenco delle directory di sistema contenenti dati di utenti e gruppi:

/var/lib/nethserver/home
/var/lib/nethserver/vmail
/var/lib/nethserver/ibay
/var/lib/nethserver/nextcloud

Inoltre, se il l’account provider è locale, qualsiasi account utente, gruppo e computer viene cancellato. Un elenco di utenti e gruppi in formato TSV (Tab Separated Values) viene generato nei file /var/lib/nethserver/backup/users.tsv e /var/lib/nethserver/backup/groups.tsv. Vedi anche Importazione ed eliminazione account da file plain-text.

Utenti

Se è stato configurato un account provider AD o LDAP remoto, la pagina Utenti & Gruppi mostra degli elenchi di sola lettura. Non è possibile modificare o eliminare utenti e gruppi tramite il Server Manager.

Viceversa, se è stato installato un account provider AD o LDAP locale, la pagina Utenti & Gruppi consente di creare, modificare ed eliminare utenti e gruppi.

Un nuovo utente rimane bloccato finché non gli viene assegnata una password. Agli utenti bloccati è negato l’accesso ai servizi del sistema.

Nella fase di creazione di un utente, i seguenti campi sono obbligatori:

  • Nome utente

  • Nome completo (nome e cognome)

Un utente può essere associato ad un i più gruppi.

In alcuni casi potrebbe essere necessario bloccare l’accesso ai servizi a degli utenti senza eliminarne l’account. L’approccio più sicuro è

  1. (opzionale) modificare la password dell’utente con una casuale

  2. bloccare l’utente utilizzando l’azione Blocca

Nota

Se si utilizza un account provider locale, quando un utente viene eliminato anche la home directory e la sua casella di posta verranno eliminate.

Modifica della password

Gli utenti possono modificare la loro password tramite la pagina web /user-settings. Per abilitare la pagina fare riferimento alla sezione Pagina impostazioni utente.

Se il sistema è collegato ad un account provider di tipo Active Directory, gli utenti possono cambiare la propria password anche utilizzando gli strumenti appositi di Windows. In questo caso, non è possibile impostare password più corte di 6 caratteri, indipendentemente dalla policy selezionata. Windows esegue dei controlli prima di inviare la password al server,dove viene valutata in base alla policy configurata.

Credenziali per i servizi

Le credenziali dell’utente sono lo username e la password. Le credenziali sono richieste per accedere ai servizi installati sul sistema.

Lo username può essere utilizzato in due forme: lungo (default) e breve. La forma lunga è sempre accettata dai servizi. La forma breve potrebbe non essere valida in qualche servizio.

Per esempio se il dominio è example.com e l’utente è goofy:

Forma lunga username

goofy@example.com

Forma breve username

goofy

Per accedere ad una cartella condivisa, vedere anche Accesso alla rete.

Cartelle home dell’utente

Le home directory degli utenti sono memorizzate all’interno del percorso :file:/var/lib/nethserver/home`, al fine di semplificare la distribuzione di un sistema a partizione singola.

L’amministratore può comunque ripristinare il noto /home usando il bind mount:

echo "/var/lib/nethserver/home       /home   none    defaults,bind   0 0" >> /etc/fstab
mount -a

Gruppi

Un gruppo di utenti può essere usato per assegnare permessi speciali ad alcuni utenti, come autorizzare l” accesso a SSH o alle cartelle condivise. Le autorizzazioni concesse vengono propagate a tutti i membri del gruppo.

L’utente root può delegare a un gruppo l’accesso ad alcune pagine del Server Manager con l’azione Deleghe presente nel pannello Utenti & Gruppi > Lista > [Gruppi].

Vedi anche

Account admin

Se è installato un account provider locale LDAP o AD, l’utente admin, membro del gruppo domain admins è creato automaticamente. Questo account consente di accedere a tutte le pagine di configurazione del Server Manager. Inizialmente è bloccato e non ha accesso alla console.

Suggerimento

Per abilitare l’account admin è sufficiente impostarne la password.

Dove possibile, l’account admin riceve dei permessi speciali da parte di servizi specifici, come poter aggiungere una workstation al dominio di Active Directory.

Se NethServer è collegato ad un account provider remoto, l’utente admin e il gruppo domain admins possono essere creati, se non esistono già.

Se un utente o un gruppo con una funzione simile è già presente nella base dati dell’account provider remoto, ma si chiama diversamente, può essere designato come admin usando questi comandi:

config setprop admins user customadmin group customadmins
/etc/e-smith/events/actions/system-adjust custom

Gestione password

Il sistema prevede la possibilità di impostare dei vincoli sulla complessità e la scadenza delle password per gli account provider locali.

Le politiche relative alle password possono essere modificate dalla pagina Utenti & Gruppi del Server Manager.

Complessità

La complessità password è un insieme di condizioni minime che devono essere soddisfatte affinché la password venga accettata dal sistema: è possibile scegliere tra due differenti policy di gestione complessità delle password:

  • none: non viene fatto alcun controllo sulla password immessa se non sulla lunghezza di almeno 7 caratteri

  • strong

La policy strong impone che la password debba rispettare le seguenti regole:

  • lunghezza minima 7 caratteri

  • contenere almeno 1 numero

  • contenere almeno 1 carattere maiuscolo

  • contenere almeno 1 carattere minuscolo

  • contenere almeno 1 carattere speciale

  • contenere almeno 5 caratteri diversi

  • non deve essere presente nei dizionari di parole comuni

  • deve essere diversa dallo username

  • non può avere ripetizioni di pattern formati da più 3 caratteri (ad esempio la password As1.$As1.$ non è valida)

  • se è installato Samba Active Directory, sarà abilitato anche lo storico delle password

La policy di default è strong.

Avvertimento

Cambiare le politiche predefinite è altamente sconsigliato. L’utilizzo di password deboli è la prima causa di compromissione dei server da parte di attaccanti esterni.

Scadenza

La scadenza password NON è abilitata di default.

Ogni volta che un utente cambia la sua password, la data di modifica della password viene registrata e, se l’opzione Imponi cambio password periodico è attivata, la password viene considerata scaduta quando è trascorso il tempo di Durata massima password (giorni) calcolato dall’ultimo cambio password.

Per esempio, supponendo che

  • l’ultimo cambio password sia stato effettuato in gennaio,

  • in ottobre la Durata massima password venga impostata a `` 180 giorni`` ed Imponi cambio password periodico sia attivato

la password sarà immediatamente considerata scaduta (gennaio + 180 giorni = giugno!).

Effetti della password scaduta

Avvertimento

il server non invia alcuna notifica relativa alla scadenza della password!

Gli effetti di una password scaduta dipendono dall” account provider configurato.

Quando una password è scaduta

  • con Active Directory (sia locale che remoto) un utente non è più in grado di autenticarsi ad alcun servizio;

  • con l’account provider LDAP di NethServer (sia locale che remoto) alcuni servizi ignorano la scadenza password, consentendo l’accesso all’utente in ogni caso.

Un esempio di servizi che non supportano completamente la scadenza password in caso di utilizzo dell’account provider LDAP di NethServer sono:

  • NextCloud

  • WebTop (sono disponibili unicamente rubriche e calendari)

  • SOGo

…ed ogni altro servizio che autentichi direttamente con LDAP

Importazione ed eliminazione account da file plain-text

Importazione utenti

È possibile creare utenti a partire da un file TSV (Tab Separated Values) con il seguente formato:

username <TAB> fullName <TAB> password <NEWLINE>

Esempio:

mario <TAB> Mario Rossi <TAB> 112233 <NEWLINE>

quindi eseguire:

/usr/share/doc/nethserver-sssd-<ver>/scripts/import_users <youfilename>

Per esempio, se il file è /root/users.tsv, eseguire:

/usr/share/doc/nethserver-sssd-`rpm --query --qf "%{VERSION}" nethserver-sssd`/scripts/import_users /root/users.tsv

Per utilizzare un carattere separatore alternativo:

import_users users.tsv ','

Importazione email

È possibile creare indirizzi mail a partire da un file TSV (Tab Separated Values) con il seguente formato:

username <TAB> emailaddress <NEWLINE>

Si potrà poi utilizzare lo script import_emails. Fare riferimento alla sezione Importazione ed eliminazione account da file plain-text per un esempio di invocazione del comando.

Importazione gruppi

È possibile creare gruppi a partire da un file TSV (Tab Separated Values) con il seguente formato:

group1 <TAB> user1 <TAB> user2 <NEWLINE>
group2 <TAB> user1 <TAB> user2 <TAB> user3 <NEWLINE>

Esempio:

faxmaster <TAB> matteo <TAB> luca <NEWLINE>
managers <TAB> marco <TAB> francesco <TAB> luca <NEWLINE>

quindi eseguire:

/usr/share/doc/nethserver-sssd-<ver>/scripts/import_groups <youfilename>

Per esempio, se il file è /root/groups.tsv, eseguire il seguente comando:

/usr/share/doc/nethserver-sssd-`rpm --query --qf "%{VERSION}" nethserver-sssd`/scripts/import_groups /root/groups.tsv

La gestione dei gruppi è disponibile anche da linea di comando per mezzo degli eventi group-create e group-modify

signal-event group-create group1 user1 user2 user3
signal-event group-modify group1 user1 user3 user4

Eliminazione utenti

È possibile eliminare gli account utente a partire da un file con il seguente formato:

user1
user2
...
userN

Esempio:

mario <NEWLINE>

quindi eseguire:

/usr/share/doc/nethserver-sssd-<ver>/scripts/delete_users <youfilename>

Suggerimento

È inoltre possibile utilizzare lo stesso file utilizzato per l’importazione degli utenti per effettuare la loro eliminazione.

Per esempio, se il file è /root/users.tsv, eseguire:

/usr/share/doc/nethserver-sssd-`rpm --query --qf "%{VERSION}" nethserver-sssd`/scripts/delete_users /root/users.tsv

Per utilizzare un carattere separatore alternativo:

delete_users users.tsv ','