Nel corso de "La Grande Guida a Resilio Sync" abbiamo presentato l'omonimo software e visto come configurarlo con Windows per sincronizzare automaticamente le cartelle fra PC distinti. Ma questo programma torna estremamente utile anche su di un server Linux, permettendoci, ad esempio, di sincronizzare la cartella che contiene il sito web fra la postazione di sviluppo e il webserver, semplificando enormemente il deploy. I sistemisti, invece, potrebbero impiegarlo per sincronizzare i file di configurazione fra più server, con evidenti benefici per chi si trovi a gestire un ampio parco macchine.
Trattazione ampliata ed articolo aggiornato per rispecchiare la disponibilità di Resilio Sync, nuovo nome del programma precedentemente chiamato BitTorrent Sync.
Questo articolo è incentrato sulla procedura pratica installare e configurare Resilio Sync su di un server Linux senza interfaccia grafica. Per tutte le informazioni preliminari e la guida corrispondente per Windows:
» Leggi: La Grande Guida a Resilio Sync
Passo 0: connessione via SSH
Come primo passo bisogna "entrare" sul server via SSH (tramite PuTTY, ad esempio)
Ricordate che tutti i comandi indicati in seguito dovranno essere svolti sul server remoto!
Passo 1: installare Resilio Sync
La procedura di installazione di Resilio Sync avviene ora tramite l'apposito repository, eliminando la complicazione di scaricare manualmente l'eseguibile ad ogni aggiornamento come illustrato nella prima stesura di questo articolo. Per la guida all'installazione tramite repository:
» Leggi: Guida: Resilio Sync (BitTorrent Sync) per Ubuntu/Linux - installazione e configurazione
Arrivate fino all'installazione del pacchetto. Per impostazione predefinita, infatti, Resilio Sync consente di accedere all'interfaccia di configurazione via web solamente dalla macchina sulla quale è in esecuzione (localhost). Per operare dal nostro PC "di lavoro" è dunque necessario sbloccare l'accesso da remoto.
Passo 2: abilitare l'accesso all'interfaccia web da remoto
Per permettere a qualsiasi browser web di accedere all'interfaccia per la configurazione di Resilio Sync bisogna modificare il relativo file di configurazione. Impartite dunque
sudo nano /etc/resilio-sync/config.json
Modificate ora l'opzione "listen"
. Deve diventare "listen" : "0.0.0.0:8888",
. Non dimenticate la virgola alla fine.
Subito sotto, aggiungete le credenziali che desiderate siano richieste prima di consentire l'accesso:
"login": "amministratore",
"password": "mia_password_supersegreta"
Ovviamente inserite quello che più vi aggrada come username e password, ma assicuratevi di scegliere una parola d'ordine robusta, soprattutto se il servizio sarà esposto su Internet
[chi non gradisse l'idea di scrivere la password "in chiaro" può usare l'opzione "password_hash"
al posto del semplice "password"
ed immettere come valore l'output di mkpasswd mia_password_supersegreta
]
Completate con Ctrl+O
seguito da Invio per salvare, quindi Ctrl+X
per uscire da Nano. Per maggiori info:
Ritornati al terminale, riavviate il servizio per rendere effettive le modifiche:
sudo systemctl restart resilio-sync
Ora è tutto pronto: provate a raggiungere via web il server sul quale gira Resilio Sync (ricordandovi di esplicitare la porta 8888
). Vi sarà richiesto di eseguire login, poi sarete "dentro"
A questo punto potete configurare le cartelle da sincronizzare come descritto nella guida a Resilio Sync per Linux.
Passo 4: Abilitare HTTPS
La nostra configurazione può essere migliorata. Nella situazione attuale, infatti, le credenziali di accesso all'interfaccia web sono trasmesse via HTTP "in chiaro". In caso un utente ostile collegato alla nostra stessa rete LAN catturasse il traffico, potrebbe carpire facilmente username e password, garantendosi pieno controllo del filesystem remoto.
Per scongiurare questo pericolo è necessario passare ad HTTPS. Per prima cosa, dovete ottenere un certificato digitale, magari tramite Let's Encrypt. Per farlo, dovete configurare un server web sulla stessa macchina sulla quale gira Resilio Sync, quindi seguire questa procedura:
Lo scopo ultimo è generare due file nella cartella /etc/letsencrypt/live/miodominio.com/
(dove ovviamente, miodominio.com
è il dominio per il quale abbiamo ottenuto il certificato):
-
privkey.pem
: costituisce la chiave privata del server -
cert.pem
: è il certificato vero e proprio
Entrambi i file sono creati da Let's Encrypt alla fine della procedura
A questo punto, possiamo utilizzare gli stessi file all'interno del file di configurazione di Resilio Sync per attivare l'uso di HTTPS anche per l'accesso all'interfaccia web. Apriamo nuovamente il file:
sudo nano /etc/resilio-sync/config.json
Ora, subito sotto all'opzione password
che abbiamo aggiunto ai passi precedenti, accodiamo queste ulteriori voci:
,"force_https" : true
,"ssl_certificate" : "/etc/letsencrypt/live/miodominio.com/cert.pem"
,"ssl_private_key" : "/etc/letsencrypt/live/miodominio.com/privkey.pem"
Naturalmente, sostituire a miodominio.com
il nome a dominio per il quale avete ottenuto il certificato con Let's Encrypt
Completate con Ctrl+O
seguito da Invio per salvare, quindi Ctrl+X
per uscire da Nano.
Ritornati al terminale, riavviate il servizio per rendere effettive le modifiche:
sudo systemctl restart resilio-sync
Provate ora ad aprire l'interfaccia web di Resilio Sync: dovrebbe comparire il rassicurante lucchetto verde, segno che stiamo effettivamente impiegando HTTPS.
Passo 5: Accettare connessioni solo da indirizzi IP fidati
Come ulteriore misura di protezione, è certamente saggio configurare il firewall del server di modo che accetti connessioni all'interfaccia di amministrazione solo da espliciti indirizzi IP fidati:
» Leggi: Ubuntu, firewall e ufw: guida rapida per aprire le porte o bloccare le connessioni e gli IP