Gestione dei Fuss server

Configurazione del server

Una volta completata l’installazione di base della macchina si deve avere cura di configurare correttamente la rete, identificando le interfacce di rete interna (quella rivolta verso le macchine dell’aula) ed esterna (quella da cui si accede ad internet).

Per eseguire la creazione della configurazione è necessario eseguire il comando:

fuss-server create

questo, se non è già stata eseguita in precedenza una configurazione, chiederà una serie di dati. In particolari saranno richiesti:

  • la rete locale che verrà utilizzata (es. 192.168.1.0/24);
  • il nome a dominio della rete (es. scuola.bzn);
  • il workgroup per il dominio windows (es. SCUOLA);
  • un intervallo di indirizzi per il DHCP (es. 192.168.1.10 192.168.1.100);
  • la master password del server (usarne una lunga e complicata!);
  • la località (es. Bolzano);
  • l’interfaccia della rete esterna (es. eth0);
  • l’interfaccia della rete interna (es. eth1);

Il programma per la richiesta dei dati, se disponibile, userà l’interfaccia grafica, altrimenti queste dovranno essere inserite con interfaccia testuale nel terminale.

Le seguenti immagini illustrano le varie finestre di immissione disponibili quando si usa il programma di impostazione nell’interfaccia grafica, i pulsanti di navigazione consentono di muoversi avanti ed indietro nelle varie impostazioni per poterle modificare, ed una completata l’immissione dei dati si potrà premere il pulsante applica nell’ultima finestra.

_images/fs-create-01-welcome.png
_images/fs-create-02-localnet.png
_images/fs-create-03-domain.png
_images/fs-create-04-workgroup.png
_images/fs-create-05-dhcp_range.png
_images/fs-create-06-pass.png
_images/fs-create-07-geoplace.png
_images/fs-create-08-external_ifaces.png
_images/fs-create-09-internal_ifaces.png
_images/fs-create-10-done.png

Alla fine dell’inserimento verrà eseguito un controllo di correttezza dei dati inseriti; in caso di problemi verrà riaperta una nuova finestra di immissione con i soli dati problematici, fino a quando non si ottiene una configurazione completamente valida.

Infine il programma procederà automaticamente alla configurazione di tutto quanto necessario, compresa l’eventuale installazione di dipendenze.

Nel caso in cui il programma si interrompesse a causa di problemi temporanei (ad esempio una caduta della connessione ad internet) è possibile rilanciarlo con: fuss-server create; ovviamente non verrà richiesta la configurazione, ma il programma procederà automaticamente con la sua fase automatica.

Accesso al server

L’accesso al server è consentito, oltre che dalla console, via SSH, anche per l’utente root, con autenticazione a chiavi. Le chiavi devono essere installate nel file /root/.ssh/authorized_keys.

Gli utenti normali possono accedere al server in SSH con username e password con un loro utente solo se fanno parte del gruppo sshaccess. Il gruppo viene creato come gruppo locale sul server all’esecuzione di fuss-server ed SSH è configurato per l’accesso in /etc/ssh/sshd_config con la riga:

AllowGroups root sshaccess

che consente l’accesso a root ed ai membri del gruppo.

Questa impostazione viene effettuata dal comando fuss-server con usando una direttiva blockinfile di ansible, le eventuali modifiche effettuate all’interno del blocco verranno sovrascritte ad una successiva invocazione del comando. L’uso della direttiva AllowGroups è incompatibile con l’uso di AllowUsers che pertanto non deve essere usata.

Per fornire l’accesso SSH agli utenti sarà sufficiente aggiungerli al gruppo locale sshaccess con il comando: adduser utente sshaccess.

Nota

se l’utente localadmin non riesce a entrare in SSH sul server controllate che appartenga al gruppo sshaccess

I principali file di configurazione

Sotto /etc/fuss-server sono installati una serie di file che mantengono dati di configurazione usati dai servizi del server, dettagliati nei paragrafi seguenti, gestiti tramite octofuss. Ovviamente non devono essere cancellati, pena il malfunzionamento dei servizi cui fanno riferimento.

File di configurazione del Fuss Server

Nel file /etc/fuss-server/fuss-server.yaml si trova la configurazione generale del Fuss Server. Il formato è un file di variabili di ansible ovvero un semplice dizionario chiave - valore in yaml, ad esempio:

chiave: valore
altra_chiave: nuovo valore

Deve contenere i valori predefiniti descritti in Configurazione del server; contrariamente agli altri file può essere cancellato, e in quel caso viene ricreato a partire da un esempio vuoto.

Per modificare le impostazioni in tale file, si può anche lanciare:

fuss-server configure -r

(l’opzione -r è necessaria, perché se le impostazioni sono presenti il programma non le richiede).

Per applicare le modifiche lanciare:

fuss-server upgrade

che farà la verifica di coerenza dei valori presenti nel file e li applicherà al sistema.

File dei default del Fuss Server

Sotto /etc/fuss-server/ viene installato anche secondo file, fuss-server-defaults.yaml, sempre in formato yaml, che contiene alcune variabili interne ad uso del fuss-server per i default di installazione. Non deve essere cancellato, o il comando fuss-server cesserà di funzionare, qui si possono effettuare modifiche per cambiare i default.

Le variabili definite in questo file permettono di controllare alcune caratteristiche che assume l’installazione, un elenco di quelle rilevanti è illustrato nella tabella seguente.

Variabile Significato Contenuto Default
dans_maxchild Numero massimo di processi figli di Dansguardian. Intero 600
proxy_win_exclude Configura Squid per escludere i client Windows. Stringa yes
dans_exclude_localnet Esclude la rete locale dal filtraggio di dansguardian. Stringa yes
dhcp_default_lease_time Durata di default di una lease dhcp. Intero 86400
dhcp_max_lease_time Durata massima di una lease dhcp. Intero 172800

É possibile modificare questi valori di default, in modo che la relativa configurazione non venga cambiata in caso di aggiornamento del fuss-server, ad esempio se si vuole riabilitare l’accesso ad internet da parte di macchine Windows si può cambiare il valore di proxy_win_exclude da yes a no, o se si vuole riabilitare il filtro dei contenuti sulla rete locale (non necessario nelle scuole del progetto per la presenza di un filtraggio a monte) si può modificare dans_exclude_localnet da yes a no.

Tutte le volte che si effettua una modifica di una di queste variabili, perché la relativa configurazione venga applicata, occorrerà eseguire fuss-server upgrade. Dato che fuss-server-defaults.yaml è marcato come file di configurazione, non verrà sovrascritto in caso di aggiornamento del pacchetto e le modifiche fatte verranno mantenute.

Dansguardian

Nel file /etc/fuss-server/content-filter-allowed-sites viene mantenuta una lista dei siti cui viene comunque garantito accesso da Dansguardian. Questa lista può essere gestita anche dall’interfaccia web di OctoNet dal menu Filtro web, che consente anche di configurare altri file di configurazione sotto /etc/dansguardian/lists/.

Server DHCP

A partire dalla versione 8.0 di fuss-server è stato introdotto un nuovo file contenente le assegnazioni statiche degli indirizzi per il client (/etc/fuss-server/dhcp-reservations), che viene incluso nella configurazione ed installato vuoto in fase di creazione del fuss-server. Il contenuto di questo file viene gestito tramite octofuss ed usa il formato previsto da dhcp.conf per le «_reservation_», vale a dire una serie di voci nella forma:

host nomeclient {
        hardware ethernet 00:XX:XX:XX:XX:XX;
        fixed-address nomeclient.dominio.it;
}

se nomeclient.dominio.it è definito nel DNS, oppure:

host nomeclient {
        hardware ethernet 00:XX:XX:XX:XX:XX;
        fixed-address IP.AD.DR.ES;
}

usando un IP fuori dal range del DHCP (che di default prende gli indirizzi fra 1/4 e 3/4 della rete usata per la LAN). Se il file /etc/fuss-server/dhcp-reservations viene eliminato, il servizio non viene avviato.

Firewall

I file di configurazione per il firewall sono tutti nel formato:

valore:descrizione

con l’eccezione di quello che descrive macchine interne consentite e servizi esterni raggiungibili, che è nella forma:

host:servizio:descrizione

Con la nuova versione del server le righe che iniziano con un # sono considerate commenti e vengono ignorate, inoltre quanto non compare all’interno del blocco marcato ANSIBLE MANAGED BLOCK non viene sovrascritto dalla riesecuzione del comando di installazione del fuss-server.

Se si specifica un host questo deve essere o un nome a dominio o un indirizzo IP, si tenga conto però del fatto che il firewall effettua la risoluzione dell’indirizzo IP al suo avvio, pertanto usare un nome a dominio è rischioso, specie quando ad esso possono corrispondere a diversi indirizzi (ad esempio www.google.com) perché il firewall farà riferimento soltanto a quello risolto in fase di avvio.

Quando si specifica un servizio invece questo deve essere nella forma porta/protocollo (ad esempio 123/udp o 2628/tcp). Si raccomanda di usare le minuscole ed i valori numerici.

La descrizione può essere omessa, verrà comunque inserita una descrizione standard.

I file utilizzati sono i seguenti; vengono abilitati su firewall nella sequenza in cui sono indicati nella tabella (questo significa che un host nel primo file non potrà raggiungere comunque nessun servizio esterno, neanche quelli resi accessibili con gli altri file):

File Contenuto Formato
/etc/fuss-server/firewall-denied-lan-hosts Host che non possono raggiungere alcun servizio sulla rete internet IP-address
/etc/fuss-server/firewall-allowed-lan-hosts Elenco di host che possono accedere ai servizi della rete internet senza alcun filtro e/o limitazione IP-address
/etc/fuss-server/firewall-allowed-wan-hosts Elenco di host sulla rete internet che possono essere acceduti senza alcun filtro e/o limitazione IP-address
/etc/fuss-server/firewall-allowed-wan-services Servizi sulla rete internet che possono essere raggiunti senza limitazioni e/o controllo. Devono essere indicate le porte da utilizzare per il servizio porta/protocollo
/etc/fuss-server/firewall-external-services Servizi offerti dal server sulla rete esterna porta/protocollo
/etc/fuss-server/firewall-allowed-wan-host-services Servizi sulla rete internet raggiungibili da specifici host della rete interna senza alcun limite. IP-address:porta/protocollo

Si ricordi che dopo aver eseguito modifiche manuali sui suddetti file occorre rilanciare il firewall perché esse diventino effettive, con:

/etc/init.d/firewall restart

Nel caso si sia installato anche il Captive Portal il firewall usa l’ulteriore file /etc/fuss-server/fuss-captive-portal.conf, per ottenere la rete usata dallo stesso e abilitare gli accessi necessari. Detto file non deve essere cancellato, pena la mancanza dei suddetti accessi ed il conseguente non funzionamento del Captive Portal in caso di riavvio del firewall.

squid (web proxy)

A partire dalla versione 8.0.37 del fuss-server, il file /etc/squid3/squid-added-repo.conf permette di aggiungere siti web all’acl repositories ai quali l’accesso è sempre permesso senza autenticazione.

I contenuti devono essere della forma:

acl repositories url_regex XXX

dove XXX è l’espressione regolare che rappresenta il sito che vogliamo abilitare; esempi di sintassi sono presenti in squid.conf, come:

acl repositories url_regex ^http://.*.debian.org/

dhcpd

A partire dalla versione 8.0.37 del fuss-server, il file /etc/dhcp/dhcpd-added.conf permette di aggiungere parametri di configurazione del demone dhcp oltre a quanto gestito dal fuss-server.

Tale file viene caricato alla fine di /etc/dhcp/dhcpd.conf, e ne condivide la sintassi.

bind (DNS)

A partire dalla versione 8.0.37 del fuss-server, il file /etc/bind/named.added.conf.local permette di aggiungere parametri di configurazione di bind oltre a quanto gestito dal fuss-server.

Tale file viene caricato alla fine di /etc/bind/named.conf.local, e ne condivide la sintassi.

Aggiornamenti

Dalla versione 8.0 il funzionamento di fuss-server create è stato cambiato ed è ora possibile lanciare più volte fuss-server create: le modifiche già applicate rimangono costanti.

Aggiornamenti di sistema

Gli aggiornamenti di sistema possono essere eseguiti manualmente con la modalità ordinaria di Debian, vale a dire collegandosi al server come root ed eseguendo i comandi:

apt update
apt upgrade

rispondendo positivamente alla richiesta di installazione dei pacchetti aggiornati.

Aggiornamenti minori di fuss-server

Nel caso ci siano degli aggiornamenti di minor version (8.0.x → 8.0.(x+1)) di fuss-server per applicarli è sufficiente, da root:

  • scaricare ed installare il pacchetto aggiornato:

    apt update
    apt install fuss-server
    
  • riapplicare le nuove configurazioni:

    fuss-server upgrade
    

Aggiornamenti dei file di configurazione

fuss-server upgrade ripristina i contenuti di molti file di configurazione ai valori desiderati per il fuss-server.

Per alcuni servizi per i quali è più comune dover mantenere delle modifiche locali sono presenti dei file apposta, inclusi dal file generale e non toccati da fuss-server, ma questo non è vero in ogni caso.

Tuttavia, quando un file di configurazione viene modificato ne viene salvata una copia di backup nel formato <nome del file>.<un numero>.YYYY-MM-DD@HH:MM:SS~; da questo file si possono recuperare eventuali personalizzazioni da ripristinare.

Per trovare i file modificati subito dopo il lancio di fuss-server si può usare il comando:

# find /etc -mmin -10

che trova tutti i file modificati negli ultimi 10 minuti.

Per trovare tutti i file di backup generati da fuss-server update nel 2018 si può invece usare:

# find /etc/ -name "*.*.2018-*@*~"

o, per essere più precisi e trovare ad esempio le modifiche di giugno 2018:

# find /etc/ -name "*.*.2018-06*@*~"

Avvertimento

Copiare semplicemente il vecchio file di configurazione su quello nuovo è una pratica sconsigliata: generalmente gli aggiornamenti introducono modifiche di tali file al fine di migliorare il funzionamento del fuss-server o risolvere bug, e annullare tali modifiche annulla tale vantaggio.

Piuttosto è opportuno verificare le modifiche tra le due versioni del file, ad esempio con:

# diff <nome file> <nome file backup>

e riapplicare solo quanto effettivamente necessario per l’installazione locale.

Backup con fuss-backup

Il pacchetto fuss-backup installa un nuovo programma di backup basato su borg che fornisce al contempo anche le funzionalità di dump dei database (LDAP, eventuali MySQL e Postgres) installati sul server. Per questi ultimi viene creato un dump sotto /var/backup (rispettivamente nelle sottodirectory slapd, mysql, pgsql) in cui vengono mantenute gli ultimi sette dump testuali per un accesso immediato. La directory /var/backup è inserita di default nel backup su disco esterno o NAS.

Pianificazione del backup

Per la pianificazione del backup viene installato dal pacchetto il file di CRON /etc/cron.d/fuss-backup in cui è programmata l’esecuzione dello script di backup ogni lunedì alle 13:15. Il backup può essere eseguito manualmente (invocando il comando fuss-backup) in qualunque momento.

Il dispositivo esterno viene montato prima dell’esecuzione del backup e smontato al suo completamento. Questo consente, in caso di dischi esterni, una rimozione ed eventuale rotazione.

Configurazione

Per il funzionamento del backup è richiesta la presenza di una configurazione valida in /etc/fuss-backup/fuss-backup.conf. In particolare deve essere impostata la variabile START=yes e indicato nella variabile DISK il dispositivo su cui viene eseguito lo stesso (maggiori dettagli in seguito).

Avvertimento

l’installazione del pacchetto installa un file di configurazione che blocca l’esecuzione del backup (START=no e DISK vuota), occorre pertanto effettuare la configurazione manualmente in quanto non è noto a priori il nome del dispositivo esterno su cui si fanno i backup.

Variabili di configurazione

La tabella seguente riporta le variabili presenti nel file di configurazione ed il relativo significato. Nel file sono state commentate con ulteriori dettagli.

Variabile Significato Default
START se diversa da yes il backup non viene eseguito no
DISK il dispositivo su cui viene effettuato il backup vuoto
PATHS le directory di cui viene eseguito il backup (stringa separata da spazi) /etc /home /var/backups /var/lib /var/log /var/mail /var/local
MAILTO indirizzi cui inviare l’email dei risultati root
RETENTION numero minimo di backup (1 per giorno) da tenere in archivio (uso interno) 7
BASEDIR directory dove montare il dispositivo di archiviazione /mnt/backup
BACKUP_DIR sotto-directory della precedente dove creare l’archivio borgdata
RECOVERDIR directory dove montare i backup per il recupero /mnt/recover

Esempio di configurazione

Per configurare ed attivare il backup modificando /etc/fuss-backup/fuss-backup.conf sono pertanto sono indispensabili i seguenti passi:

  • definire START=yes

  • definire un valore opportuno per DISK, se ad esempio si dispone di un disco esterno se ne dovrà indicare il nome di dispositivo, ad esempio:

    DISK=/dev/sdc1
    

    se si dispone di un NAS occorrerà indicare l’indirizzo IP a cui è raggiungibile e la directory che questo esporta in NFS con la sintassi IP.DEL.NAS.LOCALE:/directory/esportata/dalnas, ad esempio nel caso del NAS-QNAPTVS653 usato per le prove si avrà:

    DISK="192.168.10.5:/share/CACHEDEV1_DATA/Public"
    

Per trovare la directory esportata sul NAS-QNAPTVS653 ci si può collegare allo stesso con SSH ed esaminare il contenuto del file /etc/exports, il cui contenuto riflette le directory definite nella sezione «Shared folders» del pannello di controllo accessibile via WEB (nel caso illustrato quella disponibile era Public).

Il formato del file /etc/exports prevede una directory esportata per riga (se ne dovrà scegliere una qualora ne esistano diverse), con campi separati da spazi; il primo campo è la directory da usare nella variabile DISK (nel caso in esempio appunto /share/CACHEDEV1_DATA/Public).

Come ulteriore configurazione si possono elencare le directory del server di cui si vuole il backup modificando la variabile PATHS, da specificare nella forma di un elenco separato da spazi, ad esempio:

PATHS="/etc /home /var/backups /var/lib /var/log /var/mail /var/local /opt/altridati"

E” opportuno anche configurare un indirizzo di posta cui verranno inviate le email con le notifiche del backup, sia predisponendo un opportuno alias per l’utente root che indicando una lista di destinatari (sempre separata da spazi) nella variabile MAILTO, ad esempio:

MAILTO="root localsysadmin@fuss.bz.it"

Infine qualora si voglia mantenere uno storico più consistente si può aumentare il valore della variabile RETENTION che indica il numero minimo di backup mantenuti (nel numero massimo di uno a giorno, nel caso in cui in uno stesso giorno vengano eseguiti più backup verrà mantenuto solo il più recente). Si tenga presente che borg supporta la deduplicazione, e che non esiste il concetto di backup incrementale, ogni backup è sempre completo.

Esclusione

I file che corrispondono al file di esclusione fuss-backup.exclude (installato di default per escludere MPT, AVI e immagini ISO) non vengono inclusi nel backup. Se il file è assente il backup viene eseguito senza escludere nulla.

Nella forma più elementare il formato del file di esclusione prevede un pattern di shell (ex. *.iso) per riga, i file il cui pathname corrisponde al pattern vengono esclusi. Per maggiori dettagli (ed esempi di pattern più complessi con uso di espressioni regolari) si rimanda alla documentazione ottenibile con il comando borg help patterns.

Ripristino

Il ripristino può essere effettuato manualmente montando il disco (o la directory condivisa via NFS sul NAS) che contiene il repository dei backup, ed usando il comando borg per recuperare direttamente i file da uno dei salvataggi. Si legga la documentazione dei comandi borg list (per elencare i backup disponibili) e borg extract (per estrarre i dati) con i relativi esempi qualora si voglia usare questa strada.

Per semplificare le operazioni il comando fuss-backup può essere utilizzato in forma interattiva con i comandi fuss-backup mount e fuss-backup umount per montare e smontare i dati del backup in modo che possano essere acceduti direttamente attraverso il filesystem.

Con fuss-backup mount viene montato il disco (o la directory NFS) contenente il repository dei dati secondo quando configurato nella variabile BASEDIR (il default è /mnt/backup) e poi viene reso disponibile via FUSE il contenuto dei backup nella directory configurata dalla variabile RECOVERDIR (il default è /mnt/recover). In questo modo si può accedere direttamente ai file presenti nel backup resi disponibili attraverso altrettante directory presenti sotto /mnt/recover nella forma fuss-server-DATA-ORA (data e ora fanno riferimento al momento di esecuzione del backup), ad esempio si potrà avere qualcosa del tipo:

root@fuss-server:~# ls /mnt/recover/ -l
totale 0
drwxr-xr-x 1 root root 0 gen 25 09:48 fuss-server-2017-01-20T17:39:56
drwxr-xr-x 1 root root 0 gen 25 09:48 fuss-server-2017-01-25T09:40:51

per cui se si vogliono recuperare i file del backup del 20 Gennaio si dovranno cercare i file sotto fuss-server-2017-01-20T17:39:56 mentre per quelli del 25 si dovrà cercare sotto fuss-server-2017-01-25T09:40:51.

Al di sotto di ciascuna directory apparirà poi l’albero delle directory che si sono coperte con il backup secondo il valore della variabile PATHS. L’albero delle directory viene riportato a partire dalla radice per cui nel caso dei valori di default di PATHS illustrato in precedenza, avremo sotto fuss-server-2017-01-25T09:40:51 le directory etc, home e var. A questo punto si potranno copiare/esaminare i file dal backup navigando il filesystem sotto /mnt/recover con un qualunque strumento di gestione dei file.

Una volta completate le operazioni di recupero si deve procedere a smontare le directory ed i dati, con il comando fuss-server umount.

Avvertimento

ci si ricordi sempre di eseguire il comando fuss-backup umount, altrimenti l’esecuzione ordinaria dei backup fallirà.

Risoluzione di problemi

Reset password amministrative del fuss-server

Cambio password di root

Per cambiare la password di root del fuss-server non è necessaria nessuna procedura particolare, basta eseguire semplicemente il comando passwd da root.

Cambio password generale dei servizi (master password)

Nota

questa funzionalità è disponibile dalla versione 8.0.31 del fuss-server.

La situazione è più complessa qualora invece si voglia cambiare la «master password» che si è usata in fase di creazione del server (quella che viene mantenuta nella variabile pass del file /etc/fuss-server/fuss-server.yaml).

In tal caso le operazioni da eseguire sono molte, in quanto essa viene usata estensivamente nella configurazione di tutti i servizi, pertanto si è fornito uno script di gestione apposito (mpwchange.sh, installato come gli altri script in /usr/share/fuss-server/scripts) che consente di effettuarle in una volta sola.

Per effettuare il cambio è sufficiente eseguire:

/usr/share/fuss-server/scripts/mpwchange.sh vecchia_password nuova_password

lo script controlla in /etc/fuss-server/fuss-server.yaml che la vecchia password corrisponde e poi la cambia per i vari servizi (ed in /etc/fuss-server/fuss-server.yaml stesso).

ATTENZIONE: questo script purtroppo non funziona nel caso la vecchia-password contenga uno o più dei seguenti "caratteri speciali":   &, \, /, $

Per server dove la LA MASTER PASSWORD contiene caratteri speciali «non graditi» da LDAP (quelli appena indicati), e che necessitano di un aggiornamento del fuss-server all’ultima versione 8.0.3, sarà necessario procedere col cambio della MASTER-PASSWORD seguendo la procedura qui sotto indicata:

1.a) «Preparare» il seguente comando facendo attenzione a riempire correttamente i seguenti 5 campi contenuti i dati di quella specifica scuola e la nuova password:

ldappasswd -v -x -h 127.0.0.1 -D "cn=admin,dc=___,dc=___" -W -A -s "_NUOVA-PASSWORD_" "cn=admin,dc=__,dc=__"

Campi da riempire (5):

* dc= *1* (es.appiano)
* dc= *2*     (es.blz)
* "_NUOVA-PASSWORD_" (dove la nuova password rimane all'interno delle virgolette " ")
* dc= *3* (es.appiano)
* dc= *4*  (es.blz)

Esempio:

"_NUOVA-PASSWORD_"= LUNA.69

Il comando da lanciare è nell’esempio:

ldappasswd -v -x -h 127.0.0.1 -D "cn=admin,dc=appiano,dc=blz" -W -A -s "LUNA.69" "cn=admin,dc=appiano,dc=blz"

1.b) N.B.: Viene richiesta (3 volte) solamente la vecchia-password , in quanto la nuova password viene “passata” già dal comando dal parametro -s

* Enter LDAP Password:               *(vecchia-password)
* Re-enter old password:             *(vecchia-password)
* Enter LDAP Password:               *(vecchia-password)

L’operazione si sarà conclusa correttamente se verrà restituito il seguente OUTPUT

Result: Success (0)

2) Modificare i seguenti file, sostituento la vecchia-password con la nuova-password.

vim /root/.ldapvirc

3) Lanciare il seguente comando seguito dalla nuova password al posto del campo _________

smbpasswd -w _________

Verrà restituito un output come il seguente:

Setting stored password for "cn=admin,dc=appiano,dc=blz" in secrets.tdb

4) Modificare i seguenti file, sostituendo (2 volte) la vecchia-password con la nuova-password .

vim /etc/smbldap-tools/smbldap_bind.conf

5) Lanciare il seguente comando e inserire (2 volte) la nuova-password :

/usr/sbin/smbldap-passwd admin
Changing UNIX and samba passwords for admin
* New password: ____________
* Retype new password:____________
  1. Modificare il seguente file sostituendo la password:
vim /etc/octofuss/octofuss.conf
  1. Riavviare il servizio:
service octofussd restart
  1. Lanciare il seguente comando seguito dalla nuova password al posto del campo _________ :
octofussd --reset-root-password ___________

Verrà restituito un output come il seguente:

System check identified some issues:
WARNINGS:
?: (1_7.W001) MIDDLEWARE_CLASSES is not set.
HINT: Django 1.7 changed the global defaults for the MIDDLEWARE_CLASSES. django.contrib.sessions.middleware.SessionMiddleware, django.contrib.auth.middleware.AuthenticationMiddleware, and django.contrib.messages.middleware.MessageMiddleware were removed from the defaults. If your project needs these middleware then you should configure this setting.
Operations to perform:
Apply all migrations: data
Running migrations:
No migrations to apply.

9.a) Lanciare il seguente comando (ATTENZIONE: modalità «interattiva» di kerberos!):

kadmin.local

ATTENZIONE: si entra in una modalità «interattiva» di kerberos e verrà visualizzata la seguente riga:

kadmin.local:

9.b) dopo la quale bisognerà copiare il seguente comando:

cpw root/admin

Alla fine sul terminale si dovrà visualizzare la seguente riga:

kadmin.local: cpw root/admin

9.c) Premere il tasto INVIO: verrà chiesta 2 volte la nuova password:

* Enter password for principal ``root/admin@APPIANO.BLZ`` : ____________
* Re-enter password for principal ``root/admin@APPIANO.BLZ`` : ____________

a schermo poi si apre il seguente prompt:

kadmin.local:

9.d) Uscire da qesta modalità interattiva digitando:

exit
  1. Editare il seguente file per sostituire la MASTER-PASSWORD :
vim /etc/fuss-server/fuss-server.yaml

Procedure facoltative consigliate

  1. Se si vuole che la master password coincida con la password di root, aggiornare anche quest’ultima:
passwd root

Nuova password:_________

Reimmettere la nuova password: ________
  1. Si potrà poi andare nella history ed eliminare le tracce dei comandi contenenti la nuova password. La procedura è la seguente:
  1. Visualizzare la lista dei comandi ed il loro numero progressivo lanciando il comando:
history
  1. Eliminare lo specifico comando (poniamo che sia il numero 764 della lista) con:
history -d 764
  1. Confermare le modifiche con:
history -w
  1. A questo punto eventualmente aggiornare il server.

Ripristino LDAP da un backup

Lo script di backup del pacchetto fuss-backup (vedi Backup con fuss-backup) si occupa di effettuare un dump dei dati della directory LDAP, vedremo ora quale è la procedura per il suo ripristino.

I dump del database LDAP vengono salvati da fuss-backup in /var/backups/slapd ad ogni esecuzione (cancellando quelli più vecchi) in file compressi con gzip nella forma slapd-$DATA.ldif.gz*, ma si possono anche generare in qualunque momento con il comando slapcat > backup.ldif.

E” preferibile ripristinare i dati del server a partire da un dump generato con slapcat perché questo contiene tutte le informazioni presenti nell’LDAP originale (compresi i metadati, quali ad esempio i timestamp delle varie modifiche). La procedura di ripristino è la seguente:

systemctl stop slapd.service
rm -rf /var/lib/ldap/*
slapadd < backup.ldif
chown openldap:openldap /var/lib/ldap/*
systemctl start slapd.service

(dove backup.ldif è il file del backup, se si usa uno dei dump di fuss-backup questo prima deve essere decompresso).

Troubleshooting LDAP

L’utente non fa login su Windows

Cose banali da controllare prima:

  • l’utente esiste?
  • è stato fatto correttamente il join al dominio?
  • nome del dominio e dell’host sono corretti?
  • capslock?
  • cavo di rete? :-)

Potrebbe a questo punto essere un problema di LDAP, o meglio di come è stato creato/modificato l’utente su LDAP Se windows vi dice che l’utente è disabilitato, probabilmente il record sambaAcctFlags non è impostato correttamente. Il flag D indica che l’utente è disabilitato, un utente normalmente dovrebbe riportare il flag U o al massimo i flag UX

Per correggere la situazione si usi il comando:

smbldap-usermod -H U nomeutente

o si usi ldapvi

Nel caso in cui gli utenti da migrare siano molti si può creare un file docenti.txt contenente l’elenco dei nomi utenti dei docenti, uno per riga, e quindi usare il comando:

for utente in $(cat docenti.txt); do smbldap-usermod -H U $utente; done

Richieste di configurazione di nslcd

Durante alcuni aggiornamenti del pacchetto nslcd si potrebbe ricevere una richiesta di configurazione:

Quando viene utilizzata una connessione cifrata è possibile
richiedere e controllare un certificato del server. Scegliere se le
ricerche devono essere configurate per richiedere un certificato e se
la validità dei certificati deve essere controllata:

Dato che su fuss-server le connessioni di nslcd sono tutte verso localhost, si può selezionare mai.

A partire da fuss-server 8.0.34 anche questa configurazione viene preimpostata da fuss-server create.