Ricerca nel sito web

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


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

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

Come forse saprai, rsync, noto anche come Remote Sync, è uno strumento veloce, versatile e potente che può essere utilizzato per copiare e sincronizzare file/directory da locale a locale. locale o da locale a host remoti. Per maggiori dettagli su rsync, controlla le pagine man:

man rsync

Oppure fai riferimento alla nostra guida precedente dal link sottostante.

  1. Rsync: 10 esempi pratici di comando Rsync in Linux

Cambia la porta SSH in una porta non standard

Come tutti sappiamo, per impostazione predefinita rsync utilizza la porta SSH predefinita 22 per sincronizzare i file su host locali su host remoti e viceversa. Dovremmo cambiare la porta SSH del nostro server remoto per rafforzare la sicurezza.

Per fare ciò, apri e modifica il file di configurazione SSH /etc/ssh/sshd_config:

vi /etc/ssh/sshd_config 

Trova la seguente riga. Togli il commento e modifica il numero di porta che preferisci. Ti consiglio di scegliere qualsiasi numero che sia molto difficile da indovinare.

Assicurati di utilizzare un numero univoco che non venga utilizzato dai servizi esistenti. Controlla questo articolo di 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.

Nei sistemi basati 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, dovresti anche aggiornare le autorizzazioni 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, riavvia il servizio SSH per rendere effettive le modifiche.

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

Vediamo ora come sincronizzare i file utilizzando rsync con porta non standard.

Come eseguire la sincronizzazione con una porta SSH non standard

Esegui il comando seguente dal terminale per sincronizzare file/cartelle utilizzando Rsync con una 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

Ai fini 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 il contenuto 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 :/backup1 /home/sk/backup2
Uscita del campione
[email '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.

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

sudo ls -l /backup1/
Uscita del campione
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

Ora controlliamo il contenuto della cartella /backup2/ del sistema locale.

ls /home/sk/backup2/
Uscita del campione
backup1

Come puoi vedere nell'output sopra, il contenuto di /backup1/ è stato copiato con successo nella directory /home/sk/backup2/ del mio sistema locale.

Verifica il contenuto della cartella /backup1/:

ls /home/sk/backup2/backup1/
Uscita del 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, sia le cartelle del sistema remoto che quelle locali hanno gli stessi file.

Conclusione

Sincronizzare file/cartelle utilizzando Rsync con SSH non è solo un metodo semplice, ma anche veloce e sicuro. Se sei dietro un firewall che limita la porta 22, non preoccuparti. Basta cambiare la porta predefinita e sincronizzare i file come un professionista.