Come installare e configurare un Rsync Server

Avere un servizio rsync sempre a disposizione nella propria LAN può essere molto utile per semplificare non poco i backup quotidiani dei dati dei PC e Workstation di lavoro. Soprattutto per i più pigri; ossia, per quelli che non fanno mai il backup perché la ritengono una cosa complicata, oppure noiosa o peggio ancora inutile; tra l'altro, questi sono poi i primi a lamentarsi quando qualche file va perso.

Senza contare che fa bene anche al GDPR, il nuovo Regollamento sulla privacy.

Con un server rsync centralizzato tutto diventa ancora più semplice per gli utilizzatori, ma anche per l'amministratore, poiché tutti i backup sono in un unico contenitore e che quindi il tutto è più semplice da dimensionare e manutenere.

In questo sintetico tutorial ho cercato di descrivere come creare un server rsync con una distribuzione GNU Linux. In realtà sappiamo bene che non si può parlare di generica distribuzione Linux; è per questo che ho pensato di incentrare la discussione almeno su due diversi distribuzioni GNU Linux: CentOS 7 e Debian 9.

Non ultimo, la disponibilità di servizio rsync in contesti aziendali e/o professionali, si rivela di grande aiuto alla implementazione di criteri sulla sicurezza dei dati, tanto a cuore alle nuove normative sulla privacy, recentemente introdotte tramite l'ormai arcinoto GRPR.

NOTA Importante
Questo tutorial fa parte di un insieme di articoli che mirano a descrivere la preparazione di un server di Disaster Recovery per tutti i sistemi informatici presenti in azienda, così come richiesto dal RGPD, ossia il Regolamento Generale sulla Protezione dei Dati, forse meglio noto nella sua dicitura inglese: GDPR, ossia: General Data Protection Regulation.

Che cosa è Rsync ?

Rsync è un software Open Source per Unix/Linux che sincronizza file e cartelle da una elaboratore a un altro, minimizzando il trasferimento di dati utilizzando quando possibile la cosiddetta codifica delta, proprio per minimizzare e velocizzare i trasferimenti.

A dire il vero, Rsync è uno strumento talmente flessibile che relegarlo a semplice "sincronizzatore di file e cartelle" sarebbe alquanto limitato. Ma proprio perché il suo "motore" fa proprio questo (sincronizzare dati) può assumere l'importante ruolo di "Backup Server".

Il meglio di se lo da quando lo si rende disponibile in una LAN, in modo che possa essere utilizzato per mantenere costantemente aggiornate le copie dei dati di tutti i computer dell'azienda, mantenendoli al sicuro in un filesystem centralizzato, che può essere anche criptato e messo al sicuro da eventuali malaugurati furti.

Perchè CentOS e Debian ?

Semplice. Perché sono le distribuzioni GNU Linux più utilizzate! Quale cosa migliore quindi che provare ad installarlo e configurarlo in questi due importanti ambienti?

In realtà moltissime delle distribuzioni GNU Linux sono derivare da Red Hat Enterprise© o da Debian, nonostante la distribuzione Suse in realtà sia una derivata di Slackware, ma questa è un'altra storia.

Tutto ciò, anche se, a dire il vero, per i nostri scopi, non ci sono poi così profonde differenze tra una distribuzione e l'altra. In fin dei conti si installano in modo molto simile e dal punto di vista dei client la differenza è del tutto irrilevante.

Comunque sia, poco importa con quale distribuzione GNU Linux viene realizzato un servizio Rsync, l'essenziale è che questo prezioso strumento sia presente sempre e dovunque vi siano dati da tenere al sicuro da spiacevoli incidenti tecnici.

Tuffiamoci finalmente nell'installazione e nella configurazione del servizio rsync.

Preliminari

Prima di proseguire con l'installazione e la configurazione del servizio rsync è utile dare qualche indicazione sull'ambiente.

Tanto per cominciare, Ho dato per scontato che la distribuzione Linux (CentOS o Debian, non ha importanza) sia già installata, perfettamente funzionante e disponibile (raggiungibile) in rete.

In secondo luogo, anche se superfluo, dovendo modificare alcuni file di configurazione dei servizi, sarà necessario utilizzare le credenziali dell'utente root.

Quindi...

    $ sudo -i
    (e digitare la password di root)

oppure

    $ su -
    (e digitare la passwodr di root)

Installazione il pacchetto Rsync ed attivazione del servizio

Con Debian e derivate

  • Prima di qualsiasi altra cosa, è bene partire con un sistema aggiornato, quindi sarà il caso di fare l'aggiornamento (update) di tutti i pacchetti già installati:

    # apt-get update && sudo apt-get upgrade --yes
    
  • ed eventualmente fare un reboot, se necessario

  • Con apt_get procedi con l'installazione del pacchetto rsync , ovviamente, se questo non è già stato preventivamente installato

    #  apt-get install rsync --yes
    

Con CentOS

  • Prima di qualsiasi altra cosa, è bene partire con un sistema aggiornato, quindi sarà il caso di fare l'aggiornamento (update) di tutti i pacchetti già installati:

    # yum update -y
    
  • ed eventualmente fare un reboot, se necessario.

  • Utilizzando yum, procedi con l'installazione del pacchetto rsync, ovviamente, se questo non è già stato preventivamente installato

    # yum install rsync -y
    

Configurazione di Rsync

Da qui in poi, le cose da fare sono pressappoco uguali per tutte le distribuzioni Linux, solo con qualche minima differenza.

Configurazione dei valori di base di rsync

Prima di proseguire, in una distribuzione Debian, c'è da sistemare il file dell'ambiente del demone di rsync. Quindi:

con Debian:

    # vi /etc/default/rsync

Con CentOS:

    # vi /etc/sysconfig/rsyncd

In questo file, per entrambe le distribuzioni, verificare che siano impostate le seguenti variabili ed aggiungerle, se mancanti.

    RSYNC_ENABLE=true
    RSYNC_CONFIG_FILE=/etc/rsyncd.conf
    RSYNC_OPTS='--port=873 --address=0.0.0.0'
    RSYNC_NICE=’10’
    RSYNC_IONICE=’-c3′

Salvare e chiudere il file.

Creazione delle directory contenitore

Dobbiamo ora creare le directory che conterranno i file dei Client, ogni qual volta che questi eseguiranno il backup dei dati su questo server centrale.

Per il nostro esempio, ho preventivamente creato tante cartelle quanti saranno i client che saranno autorizzati ad utilizzare questo server per le proprie sessioni di backup di salvataggio dati con rsync.

In questo modo, ogni client avrà una sua propria cartella privata contenente esclusivamente i file di backup di cui è effettivamente proprietario; così da evitare confusione.

Nella fattispecie e per facilità di utilizzo, le cartelle create avranno un nome riconducibile al nome del client proprietario dei file.

I nomi delle cartelle creati in questo tutorial di esempio saranno quindi: client_01, client_02 e client_03, utilizzando il seguente comando:

    # mkdir -p /store_bck/rsync/client_01 /store_bck/rsync/client_02 /store_bck/rsync/client_03

Ovviamente, queste cartelle potranno anche chiamarsi Laptop_Dario, Computer_Maria e via discorrendo, così da essere più facilmente riconoscibili.

Impostazione della configurazione di rsyncd.

Posto che alcune distribuzioni Linux potrebbero non predisporre un file di configurazione di base per il servizio rsync, va creato (nel caso non ci fosse, come nel caso di Debian) o modificato quello esistente (come nel caso di CentOS e derivate Red Hat©).

Per via di quello detto fin'ora, quelli che seguono sono i passi da seguire per l'attivazione del servizio rsync che mi sono riproposto di attivare.

  1. Creazione e/o modifica del file di configurazione Quello mostrato qui sotto è un buon candidato ad essere file di configurazione rsync per gli obbiettivi che ci siamo proposti di raggiungere.

    Apri il file con il tuo editor preferito:

    # vi /etc/rsyncd.conf
    

    e verifica che il suo contenuto sia più o meno questo>

    # /etc/rsyncd: configuration file for rsync daemon mode
    # See rsyncd.conf man page for more options.
    
    log file = /var/log/rsyncd.log
    pid file = /var/run/rsyncd.pid
    use chroot = yes
    uid = root
    gid = root
    secrets file = /etc/rsyncd.strict
    strict modes = yes
    
    [client_01]
            path = /store_bck/rsync/client_01
            comment = rsync storage for client name client_01
            read only = no
            list = yes
            auth users = client01
            hosts allow = 192.168.0.0/24
            transfer logging = no
    [client_02]
            path = /store_bck/rsync/client_02
            comment = rsync storage for client name client_02
            read only = no
            list = yes
            auth users = client02
            hosts allow = 192.168.0.0/24
            transfer logging = no
    

    Per maggiori informazioni, suggerisco di leggere le man pages:

    # man rsyncd.conf
    
  2. Aggiungi, nel file /etc/rsyncd.strict, tutti gli username e le relative password (uno per riga), nel formato <username>:<password>, come descritto nelle man pages: rsyncd.conf(5).

    Nell'esempio qui sotto, una semplice definizione degli <username> e delle <password> per i moduli degli utenti definiti più sopra.

    Apri il file con il tuo editor preferito:

    # vi /etc/rsyncd.strict
    

    e verifica che il suo contenuto sia più o meno questo:

    # Rsync secret file: /etc/rsyncd.strict
    # This file must contains username and password for the rsync modules defined in /etc/  rsyncd.conf.
    # Please remember that is 'strict modes' is on, then it must be chown to root and chmod 600
    #
    client01:pwdclient01
    client02:pwdclient02
    
  3. Permessi del file /etc/rsyncd.strict

    Attenzione. questo file deve avere permessi 600 e deve essere proprietario l'utente root, altrimenti verrà completamente ignorato, con ovvi problemi di autenticazione.

    Quindi....

    # chmod 600 /etc/rsyncd.strict
    
  4. Verica che il servizio rsync sia abilitato ed attivo.

    Qui un altro "distinguo" tra CentOS e Debian, in quanto per CentOS il servizio si chiama rsyncd, mentre per Debian si chiama semplicemente rsync.

    Con Debian

    # systemctl is-enabled rsync.service 
    # systemctl is-active rsync.service
    

    Con CentOS

    # systemctl is-enabled rsyncd.service
    # systemctl is-active rsyncd.service
    
  5. Abilitazione ed avvio del servizio rsync

    Nel caso non sia abilitato all'avvio del sistema e/o non attivo, attivare il servizio per l'avvio allo startup dl sistema ed avviarlo subito.

    Anche in questo caso i comendi sarnno leggermente differenti tra Debian e CntOS:

    Con Debian

    # systemctl enable rsync.service 
    # systemctl start rsync.service
    

    Con CentOS

    # systemctl enable rsyncd.service
    # systemctl start rsyncd.service
    

Fin qui tutto ciò che riguarda il servizio Rync, ma potresti ancora non poter accedere al servizio per una serie di motivi, non ultimo il firewall.

Continua a leggere.

Abilitazione della porta rsync (TCP 873) del firewall interno

Se nel sistema è in esecuzione il servizio firewalld, o qualsiasi altro servizio di firewall, è sicuramente il caso aprire la porta TCP appropriata.

Per aprire la porta TCP per l'accesso dall'esterno al nostro servizio rsync, utilizzare i comandi del firewall del sistema per 'aprire' la porta 873/tcp, come segue

  1. Mostra la zona attiva del firewall, con il seguente comando

    # firewall-cmd --get-active-zones
    
  2. Apri in modo permanente la porta TCP 873 del firewall

    # firewall-cmd --zone=public --add-port=873/tcp --permanent
    
  3. Ricarica le regole del firewall

    # firewall-cmd --reload
    

    Se invece il sistema è protetto semplicemente da iptables, allora è necessario aggiungere le istruzioni opportune per l'apertura della porta 873/tcp direttamente da linea di comado, come questa:

    # iptables -I INPUT -p tcp -m multiport --dports 873 -j ACCEPT
    

Infine, se non è presente alcun firewall, non è necessaria nessuna azione, anche se una macchina senza firewall è assolutamente la cosa più insicura che si può immaginare.

Pronti? Via!

Siamo finalmente pronti per avviare il nostro primo trasferimento di prova con rsync.

Dal nostro client Linux possiamo finalmente provare a lanciare il nostro backup di file e cartelle con un comando simile a questo:

    $ rsync -avz --numeric-ids --delete --stats <source_dir> client01@192.168.0.92::client_01

Ovvio che al comando suggerito dovrai sostituire <source_dir> con il percorso della cartella che che desideri salvare.

Logicamente, dovrai tener presente che la prima volta lancerai questo comando ci metterà un sacco di tempo per completare il trasferimento; il che dipende da quanti file, cartelle e dalle dimensioni totali (in termini di Mega/Giga/Tera bytes) dei tuoi files.

Al contrario, tutte le volte successive che lancerai questo comando, il tempo di esecuzione per il trasferimento sarà più breve, poiché verranno effettivamente trasferite solo le differenze dei file che nel frattempo avranno subito un qualche tipo di modifica.

In Conclusione

Installare e configurare un server Rsync è un task relativamente semplice ed alla portata di chiunque abbia un minimo di dimestichezza con i sistemi GNU Linux.

Con il tuo Server Rsync disponibile tua rete aziendale o del tuo ufficio mantenere una copia consistente dei dati delle postazioni di lavoro di tutti i dipendenti è davvero un gioco da ragazzi. Senza contare che i backup dei dati di ogni singolo PC può essere totalmente trasparente per l'utente, in quanto può essere attivato a tempo con l'aiuto del cron di Linux o della Utilità di pianificazione di Windows.

Il presupposto iniziale di questo sintetico tutorial fa riferimento, per semplicità ad un Server Rsync da mettere nella LAN, che sia aziendale o dell'ufficio; ma nulla vieta di implementarlo, con i dovuti accorgimenti, anche come Cloud Backup Server.

Lascia un commento

Tutti i commenti dovranno essere verificati ed approvati dal webmaster, prima di essere pubblicati

 

Quote of the Day

L'uomo moderno crede di perdere qualcosa - il tempo - quando non fa le cose in fretta; eppure non sa cosa fare del tempo che quadagna, tranne che ammazzarlo.

Erich Fromm

Chi è online

Abbiamo 573 visitatori e nessun utente online

Newsletter

Per essere sempre aggiornato sulle ultime novità del sito.
Go to top