Com sincronitzar fitxers/directoris mitjançant Rsync amb un port SSH no estàndard


Avui parlarem de com sincronitzar fitxers mitjançant rsync amb un port SSH no estàndard. Potser us preguntareu per què hem d'utilitzar un port SSH no estàndard? És per motius de seguretat. Tothom sap que 22 és el port predeterminat de SSH.

Per tant, és obligatori canviar el vostre número de port predeterminat SSH per una cosa diferent que és molt difícil d'endevinar. En aquests casos, com sincronitzareu els vostres fitxers/carpetes amb el vostre servidor remot? No et preocupis, no és tan difícil. Aquí veurem com sincronitzar fitxers i carpetes mitjançant rsync amb un port SSH no estàndard.

Com ja sabeu, rsync, també coneguda com a sincronització remota, és una eina ràpida, versàtil i potent que es pot utilitzar per copiar i sincronitzar fitxers/directoris de local a local, o local a amfitrions remots. Per obtenir més detalls sobre rsync, consulteu les pàgines de manual:

# man rsync

O consulteu la nostra guia anterior des de l'enllaç següent.

  1. Rsync: 10 exemples pràctics de l'ordre Rsync a Linux

Canvia el port SSH a un port no estàndard

Com tots sabem, de manera predeterminada, rsync utilitza el port SSH predeterminat 22 per sincronitzar fitxers locals amb amfitrions remots i viceversa. Hauríem de canviar el port SSH del nostre servidor remot per reforçar la seguretat.

Per fer-ho, obriu i editeu el fitxer de configuració SSH /etc/ssh/sshd_config:

# vi /etc/ssh/sshd_config 

Busca la línia següent. Descomenteu i canvieu el número de port que trieu. Us recomano que escolliu qualsevol número que sigui molt difícil d'endevinar.

Assegureu-vos que feu servir un número únic que no s'utilitza pels serveis existents. Consulteu aquest article de netstat per saber quins serveis s'executen en quins ports TCP/UDP.

Per exemple, aquí faig servir el número de port 1431.

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

Desa i tanca el fitxer.

En sistemes basats en RPM com RHEL, CentOS i Scientific Linux 7, heu de permetre el nou port a través del vostre tallafoc o encaminador.

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

A RHEL/CentOS/Scientific Linux 6 i superior, també hauríeu d'actualitzar els permisos de selinux per permetre el port.

# 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

Finalment, reinicieu el servei SSH per fer efectius els canvis.

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

Ara vegem com sincronitzar fitxers mitjançant rsync amb un port no estàndard.

Com sincronitzar amb un port SSH no estàndard

Executeu l'ordre següent des del terminal per sincronitzar fitxers/carpetes mitjançant Rsync amb un port ssh no estàndard.

# rsync -arvz -e 'ssh -p <port-number>' --progress --delete [email :/path/to/remote/folder /path/to/local/folder

Per a aquest tutorial, utilitzaré dos sistemes.

IP Address: 192.168.1.103
User name: tecmint
Sync folder: /backup1
Operating System: Ubuntu 14.04 Desktop
IP Address: 192.168.1.100
Sync folder: /home/sk/backup2

Sincronitzem el contingut de la carpeta /backup1 del servidor remot amb la carpeta del meu sistema local /home/sk/backup2/.

$ sudo rsync -arvz -e 'ssh -p 1431' --progress --delete [email :/backup1 /home/sk/backup2
[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.

Comprovem el contingut de la carpeta /backup1/ al servidor remot.

$ sudo ls -l /backup1/
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

Ara, comprovem el contingut de la carpeta /backup2/ del sistema local.

$ ls /home/sk/backup2/
backup1

Com veieu a la sortida anterior, el contingut de /backup1/ s'ha copiat correctament al directori /home/sk/backup2/ del meu sistema local.

Verifiqueu el contingut de la carpeta /backup1/:

$ ls /home/sk/backup2/backup1/
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

Mireu, tant les carpetes del sistema remot com local tenen els mateixos fitxers.

Conclusió

Sincronitzar fitxers/carpetes amb Rsync amb SSH no només és un mètode fàcil, sinó també ràpid i segur. Si esteu darrere d'un tallafoc que restringeix el port 22, no us preocupeu. Només heu de canviar el port predeterminat i sincronitzar fitxers com un professional.