Comment synchroniser des fichiers/répertoires en utilisant Rsync avec un port SSH non standard

Aujourd’hui, nous allons discuter de la synchronisation des fichiers en utilisant rsync avec un port SSH non standard. Vous pourriez vous demander pourquoi nous avons besoin d’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.

Rsync Files Over SSH Non-standard Port

Il est donc obligatoire de changer le numéro de port par défaut de votre SSH pour quelque chose de différent et difficile à deviner. Dans de tels cas, comment synchroniserez-vous 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 en utilisant 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 de local à local, ou de local à des hôtes distants. Pour plus de détails sur rsync, consultez les pages de manuel :

# man rsync

Ou consultez notre guide précédent via le lien ci-dessous.

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

Changer le port SSH en un port non standard

Comme nous le savons tous, par défaut, rsync utilise le port SSH par défaut 22 pour synchroniser les fichiers entre des hôtes locaux et distants. 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 

Recherchez la ligne suivante. Décommentez et changez le numéro de port de votre choix. Je vous recommande de choisir un nombre difficile à deviner.

Assurez-vous d’utiliser un numéro unique qui n’est pas utilisé par des services existants. Consultez cet article sur le netstat pour savoir quels services fonctionnent sur quels ports TCP/UDP.

Par exemple, ici j’utilise 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 à travers votre pare-feu ou routeur.

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

Sur RHEL/CentOS/Scientific Linux 6 et supérieur, vous devriez également mettre à jour les autorisations selinux pour permettre 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 que les changements prennent effet.

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

Maintenant, voyons comment synchroniser des fichiers en utilisant rsync avec un port non standard.

Comment Rsync avec un port SSH non standard

Exécutez la commande suivante depuis le terminal pour synchroniser des fichiers/dossiers en utilisant 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, je vais utiliser deux systèmes.

Détails du Système à Distance:

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 protected]:/backup1 /home/sk/backup2
Sortie d’Exemple
[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.

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

$ sudo ls -l /backup1/
Sortie d’Exemple
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/
backup1

Comme vous pouvez le voir dans la sortie 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/
Sortie d’exemple
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 des fichiers/dossiers avec Rsync via SSH n’est pas seulement facile, mais aussi rapide et sécurisée. Si vous êtes derrière un pare-feu qui restreint le port 22, pas de soucis. Il suffit de changer le port par défaut et de synchroniser les fichiers comme un pro.

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