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 avons-nous 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 SSH par défaut.

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 d'un hôte local vers un hôte local ou d'un hôte local vers un hôte distant. Pour plus de détails sur rsync, consultez les pages de manuel:

# man rsync

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

  1. Rsync: 10 Practical Examples of Rsync Command in Linux

Changer le port SSH en port non standard

Comme nous le savons tous, rsync utilise par défaut le port SSH 22 par défaut pour synchroniser les fichiers sur des hôtes locaux vers des hôtes distants et vice versa. Nous devons 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 qui est 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 à traverser 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 supérieur, 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 à partir du terminal pour synchroniser les fichiers/dossiers à l'aide de Rsync avec un port ssh non standard.

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

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

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

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

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

Voir, 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 facile, 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.