Recherche de site Web

Comment synchroniser des fichiers/répertoires à l'aide de Rsync avec un port SSH non standard


Aujourd'hui, nous allons discuter de la façon de synchroniser des fichiers à l'aide de rsync avec un port SSH non standard. Vous vous demandez peut-être pourquoi devons-nous utiliser un port SSH non standard ? C'est pour des raisons de sécurité. Tout le monde sait que 22 est le port par défaut de SSH.

Il est donc obligatoire de changer votre numéro de port SSH par défaut en quelque chose de différent, ce qui est très difficile à deviner. Dans de tels cas, comment allez-vous synchroniser vos fichiers/dossiers avec votre serveur distant ? Pas de soucis, ce n'est pas si difficile. Ici, nous verrons comment synchroniser des fichiers et des dossiers à l'aide de rsync avec un port SSH non standard.

Comme vous le savez peut-être, rsync, également connu sous le nom de Remote Sync, est un outil rapide, polyvalent et puissant qui peut être utilisé pour copier et synchroniser des fichiers/répertoires du local au local ou local sur des hôtes distants. Pour plus de détails sur rsync, consultez les pages de manuel :

man rsync

Ou reportez-vous à notre guide précédent à partir du lien ci-dessous.

  1. Rsync : 10 exemples pratiques de commande Rsync sous Linux

Changer le port SSH en port non standard

Comme nous le savons tous, par défaut, rsync utilise le port SSH par défaut 22 pour synchroniser les fichiers en local avec des hôtes distants et vice versa. Nous devrions changer le port SSH de notre serveur distant pour renforcer la sécurité.

Pour ce faire, ouvrez et modifiez le fichier de configuration SSH /etc/ssh/sshd_config :

vi /etc/ssh/sshd_config 

Trouvez la ligne suivante. Décommentez et modifiez le numéro de port de votre choix. Je vous recommande de choisir n'importe quel nombre très difficile à deviner.

Assurez-vous que vous utilisez un numéro unique qui n'est pas utilisé par les services existants. Consultez cet article netstat pour savoir quels services s'exécutent sur quels ports TCP/UDP.

Par exemple, j'utilise ici le numéro de port 1431.

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

Enregistrez et fermez le fichier.

Dans les systèmes basés sur RPM tels que RHEL, CentOS et Scientific Linux 7, vous devez autoriser le nouveau port via votre pare-feu ou votre routeur.

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

Sur RHEL/CentOS/Scientific Linux 6 et versions ultérieures, vous devez également mettre à jour les autorisations selinux pour autoriser le 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

Enfin, redémarrez le service SSH pour appliquer les modifications.

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

Voyons maintenant comment synchroniser des fichiers à l'aide de rsync avec un port non standard.

Comment Rsync avec un port SSH non standard

Exécutez la commande suivante depuis le terminal pour synchroniser les fichiers/dossiers à l'aide de Rsync avec un port ssh non standard.

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

Pour les besoins de ce tutoriel, j'utiliserai deux systèmes.

Détails du système distant :

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

Détails du système local :

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

Synchronisons le contenu du dossier /backup1 du serveur distant avec le dossier /home/sk/backup2/ de mon système local.

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

Vérifions le contenu du dossier /backup1/ sur le serveur distant.

sudo ls -l /backup1/
Exemple de sortie
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

Maintenant, vérifions le contenu du dossier /backup2/ du système local.

ls /home/sk/backup2/
Exemple de sortie
backup1

Comme vous le voyez dans le résultat ci-dessus, le contenu de /backup1/ a été copié avec succès dans le répertoire /home/sk/backup2/ de mon système local.

Vérifiez le contenu du dossier /backup1/ :

ls /home/sk/backup2/backup1/
Exemple de sortie
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

Vous voyez, les dossiers du système distant et local ont les mêmes fichiers.

Conclusion

La synchronisation de fichiers/dossiers à l’aide de Rsync avec SSH est non seulement une méthode simple, mais aussi rapide et sécurisée. Si vous êtes derrière un pare-feu qui restreint le port 22, ne vous inquiétez pas. Changez simplement le port par défaut et synchronisez les fichiers comme un pro.