Come sincronizzare file/directory utilizzando Rsync con porta SSH non standard

Oggi parleremo di come sincronizzare i file utilizzando rsync con una porta SSH non standard. Potresti chiederti perché dobbiamo usare una porta SSH non standard? È a causa di motivi di sicurezza. Tutti sanno che 22 è la porta predefinita di SSH.

Rsync Files Over SSH Non-standard Port

Quindi, è obbligatorio cambiare il numero di porta predefinito di SSH in qualcosa di diverso e molto difficile da indovinare. In tali casi, come sincronizzerai i tuoi file/cartelle con il server remoto? Non preoccuparti, non è così difficile. Qui vedremo come sincronizzare file e cartelle utilizzando rsync con una porta SSH non standard.

Come probabilmente sai, rsync, noto anche come Remote Sync, è uno strumento veloce, versatile e potente che può essere utilizzato per copiare e sincronizzare file/cartelle da locale a locale, o da locale a host remoti. Per ulteriori dettagli su rsync, consulta le pagine man:

# man rsync

O consulta la nostra guida precedente dal link qui sotto.

  1. Rsync: 10 Esempi Pratici del Comando Rsync in Linux

Cambia la Porta SSH in una Porta Non Standard

Come tutti sappiamo, di default rsync utilizza la porta SSH predefinita 22 per sincronizzare i file da locale a host remoti e viceversa. Dovremmo cambiare la porta SSH del nostro server remoto per aumentare la sicurezza.

Per farlo, apri ed edita il file di configurazione SSH /etc/ssh/sshd_config:

# vi /etc/ssh/sshd_config 

Trova la seguente riga. Rimuovi il commento e cambia il numero di porta a tua scelta. Ti consiglio di scegliere un numero molto difficile da indovinare.

Assicurati di utilizzare un numero univoco che non sia utilizzato da servizi esistenti. Controlla questo articolo netstat per sapere quali servizi sono in esecuzione su quali porte TCP/UDP.

Ad esempio, qui utilizzo il numero di porta 1431.

[...]
Port 1431
[...]

Salva e chiudi il file.

Nelle distribuzioni basate su RPM come RHEL, CentOS e Scientific Linux 7, è necessario consentire la nuova porta attraverso il firewall o il router.

# firewall-cmd --add-port 1431/tcp
# firewall-cmd --add-port 1431/tcp --permanent

Su RHEL/CentOS/Scientific Linux 6 e versioni successive, è anche necessario aggiornare i permessi selinux per consentire la porta.

# iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 1431 -j ACCEPT
# semanage port -a -t ssh_port_t -p tcp 1431

Infine, riavviare il servizio SSH per rendere effettive le modifiche.

# systemctl restart sshd        [On SystemD]
OR
# service sshd restart          [On SysVinit]

Ora vediamo come sincronizzare file utilizzando rsync con una porta non standard.

Come sincronizzare con una porta SSH non standard

Eseguire il seguente comando dal terminale per sincronizzare file/cartelle utilizzando rsync con porta ssh non standard.

Sintassi:
# rsync -arvz -e 'ssh -p <port-number>' --progress --delete user@remote-server:/path/to/remote/folder /path/to/local/folder

Per lo scopo di questo tutorial, utilizzerò due sistemi.

Dettagli del sistema remoto:

IP Address: 192.168.1.103
User name: tecmint
Sync folder: /backup1

Dettagli del sistema locale:

Operating System: Ubuntu 14.04 Desktop
IP Address: 192.168.1.100
Sync folder: /home/sk/backup2

Sincronizziamo i contenuti della cartella /backup1 del server remoto con la cartella del mio sistema locale /home/sk/backup2/.

$ sudo rsync -arvz -e 'ssh -p 1431' --progress --delete [email protected]:/backup1 /home/sk/backup2
Output di esempio
[email protected]'s password: 
receiving incremental file list
backup1/
backup1/linux-headers-4.3.0-040300-generic_4.3.0-040300.201511020949_amd64.deb
        752,876 100%   13.30MB/s    0:00:00 (xfr#1, to-chk=2/4)
backup1/linux-headers-4.3.0-040300_4.3.0-040300.201511020949_all.deb
      9,676,510 100%   12.50MB/s    0:00:00 (xfr#2, to-chk=1/4)
backup1/linux-image-4.3.0-040300-generic_4.3.0-040300.201511020949_amd64.deb
     56,563,302 100%   11.26MB/s    0:00:04 (xfr#3, to-chk=0/4)

sent 85 bytes  received 66,979,455 bytes  7,050,477.89 bytes/sec
total size is 66,992,688  speedup is 1.00.

Verifichiamo il contenuto della cartella /backup1/ nel server remoto.

$ sudo ls -l /backup1/
Output di esempio
total 65428
-rw-r--r-- 1 root root  9676510 Dec  9 13:44 linux-headers-4.3.0-040300_4.3.0-040300.201511020949_all.deb
-rw-r--r-- 1 root root   752876 Dec  9 13:44 linux-headers-4.3.0-040300-generic_4.3.0-040300.201511020949_amd64.deb
-rw-r--r-- 1 root root 56563302 Dec  9 13:44 linux-image-4.3.0-040300-generic_4.3.0-040300.201511020949_amd64.deb

Adesso, verifichiamo il contenuto della cartella /backup2/ del sistema locale.

$ ls /home/sk/backup2/
Output campione
backup1

Come si vede nell’output precedente, i contenuti di /backup1/ sono stati copiati con successo nella directory /home/sk/backup2/ del mio sistema locale.

Verifica i contenuti della cartella /backup1/:

$ ls /home/sk/backup2/backup1/
Output campione
linux-headers-4.3.0-040300_4.3.0-040300.201511020949_all.deb            
linux-image-4.3.0-040300-generic_4.3.0-040300.201511020949_amd64.deb
linux-headers-4.3.0-040300-generic_4.3.0-040300.201511020949_amd64.deb

Vedi, entrambe le cartelle dei sistemi remoti e locali hanno gli stessi file.

Conclusioni

La sincronizzazione dei file/cartelle utilizzando Rsync con SSH non è solo facile, ma anche un metodo veloce e sicuro. Se sei dietro un firewall che limita la porta 22, non preoccuparti. Cambia semplicemente la porta predefinita e sincronizza i file come un professionista.

Source:
https://www.tecmint.com/sync-files-using-rsync-with-non-standard-ssh-port/