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)

Only the root user can configure an account provider from the Users & Groups page. Configuration of the account provider cannot be delegated.

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
After NethServer has been bound to a remote account provider the User & groups page shows a read-only list of domain accounts.
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.

The File server application of NethServer, which enables the File server > Shared folders page, can authenticate SMB/CIFS clients only if NethServer is bound to an Active Directory domain. The LDAP providers allow access to shared folders only in guest mode. See 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

To install and configure an OpenLDAP local accounts provider, go to page Users & Groups > [Configure the account provider] > LDAP > Install local LDAP. The system needs a working internet connection to download additional packages.

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.

To install a local Active Directory accounts provider, go to page Users & Groups > [Configure the account provider] > Active Directory > Create domain and become DC.

The Domain name defines the DNS suffix of the new domain. NethServer acts as an authoritative DNS server for that domain. See also 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.

The DC IP address field must be filled with the additional IP address explained above.

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

Avvertimento

The Active Directory Domain name and NetBIOS domain name values cannot be changed once that the domain has been created

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.

At the end of the procedure, the NethServer host machine automatically joins the new Active Directory domain.

The previously assigned IP address can be changed from Users & Groups > Account provider > [Details] > Active Directory IP.

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.

After installing Samba Active Directory, the Users & groups page has two default entries; both are disabled: administrator and admin. «Administrator» is the default Active Directory privileged account and is not required by NethServer; it is safe to keep it disabled. «admin» is defined by NethServer as the default system administrative account. It is member of the AD «domain admins» group. See Account admin section for more details.

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.

After the prerequisite is fulfilled, proceed to the page Users & Groups > [Configure the account provider] > Active Directory > Join existing Domain Controller.

  • Enter the Domain name of the AD domain. Press the Check button
  • If required, fill the AD DNS server field. Usually it is the IP address of an AD domain controller. Press Check again.
  • Provide the Username and Password of an AD account with the privilege of joining a computer to the domain. Remember that the default administrator account could be disabled! Press Check again.
  • If the credentials are valid complete the procedure by pressing Next.

Some applications require an additional configuration step. See also LDAP account for additional applications.

Collegamento ad un server LDAP remoto

To configure a remote LDAP accounts provider, go to page Users & Groups > Configure the account provider > LDAP > Bind remote LDAP.

Type the LDAP server IP address in the field Hostname or IP. If the LDAP service runs on a non-standard TCP port, specify it in TCP port. Press the Check button to proceed.

Then an LDAP rootDSE query is sent to the specified host and a form is filled with returned data. Check the values are correct then press the Check button again.

If the LDAP server requires authentication, set Bind Type to Authenticated. Set either ldaps:// in Service URI or enable StartTLS to encrypt the connection.

Suggerimento

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

Some applications require an additional configuration step. See also LDAP account for additional applications.

LDAP account for additional applications

Some additional applications, like Nextcloud, WebTop, Roundcube, Ejabberd, require a read-only and dedicated user account to perform simple LDAP binds.

For this purpose, the builtin ldapservice account is automatically created in local account providers with limited privileges. Its Bind password and full Bind DN are shown under Users & Groups > Account provider > [Details]. It is recommended to use those credentials to connect external systems to the account provider.

On the other hand, if NethServer is bound to a remote account provider follow these steps:

  1. Create a dedicated user account in the remote AD or LDAP provider, then set a complex and non-expiring password for it. As said above, if the remote provider is a NethServer too, it already provides ldapservice for this purpose.
  2. Once NethServer is successfully bound to a remote AD or LDAP account provider, specify the dedicated user account credentials in Users & Groups > Account provider > Edit provider > Authentication credentials for LDAP applications.
  3. If the remote account provider supports TLS, it is recommended to enable the StartTLS option or use the ldaps:// URI scheme in the Service URI input field to avoid sending clear-text passwords over the network.

Avvertimento

The NethServer AD accounts provider supports TLS. MS-Windows AD might require additional setup to enable TLS.

Changing account provider

The configured account provider can be removed by root from Users & Groups > Account provider > Change provider.

When the account provider has been removed, existing files owned by users and groups must be removed manually. This is the list of system directories containing users and groups data:

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

Furthermore, if the account provider is local any user, group and computer account is erased. A list of users and groups in TSV (Tab Separated Values) format is dumped to /var/lib/nethserver/backup/users.tsv and /var/lib/nethserver/backup/groups.tsv. See also Importazione ed eliminazione account da file plain-text.

Utenti

If a remote AD or LDAP account provider was configured, the Users & Groups page shows read-only lists. It is not possible to modify or delete users and groups from the Server Manager.

On the other hand, if a local AD or LDAP account provider was installed, the Users & Groups page allows to create, modify and delete users and groups.

A newly created user remains locked until it has set a password. Disabled users are denied to access system services.

When creating a user, the following fields are mandatory:

  • Nome utente
  • Nome completo (nome e cognome)

A user can be added to one or more groups.

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

When a user is deleted with a local account provider, the home directory and personal mail box are deleted too.

Modifica della password

Users can change their password from the /user-settings web page. To enable it see 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

The user’s credentials are the user name and their password. Credentials are required to access the services installed on the system.

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

User home directories are stored inside the /var/lib/nethserver/home directory, in order to simplify the deployment of a single-growing partition system.

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

A group of users can be granted some permission, such as authorize access to SSH or over a shared folder. The granted permission is propagated to all group members.

The root user can delegate some Server Manager pages to a group, with the Delegations action of Users & Groups > List > [Groups].

See also

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

To enable the admin account, just set its 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

The system provides the ability to set constraints on password complexity and expiration for local account providers.

Password policies can be changed from the Users & Groups page of the 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.

Each time a user changes his password, the date of the password change is recorded and, if the Force periodic password change option is enabled, the password is considered expired when the Maximum password age has elapsed.

Per esempio, supponendo che

  • l’ultimo cambio password sia stato effettuato in gennaio,
  • in October the Maximum password age is set to 180 days and Force periodic password change is enabled

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 ','