Synchronisation de répertoires à l’aide de rsync

L’idée du jour est la suivante : nous voulons avoir dans un répertoire local la copie exacte d’un répertoire situé sur une machine distante (par exemple pour faire un miroir).

L’outil rsync nous permet de faire cette opération au dessus de SSH.

Par exemple, si nous voulons synchroniser le répertoire distant /var/ftp dans le répertoire local /var/mirrors/ftp, nous pouvons effectuer les opérations suivantes :

mkdir -p /var/mirrors/ftp
rsync -arv –delete -e ssh root@machine_distante:/var/ftp/ /var/mirrors/ftp

A noter que cette syntaxe permet de garder les droits des fichiers copiés.
L’option –delete permet de supprimer localement les fichiers qui ne sont plus présents sur la machine distante.

Mise en place du port knocking sous CentOS

Le port Knocking est une méthode permettant d’ouvrir dynamiquement des ports protégés par un pare-feu. Pour cela, une suite de connexion sur plusieurs ports doit être effectuer. Un processus tourne alors en arrière-plan et vérifie régulièrement le journal de connexion du pare-feu pour ouvrir un port spécifique si une séquence est détectée.

Cette technique est notamment utilisée pour protéger l’accès au port 22 (SSH) d’une machine.

Le port Knocking est une méthode permettant d’ouvrir dynamiquement des ports protégés par un pare-feu. Pour cela, une suite de connexion sur plusieurs ports doit être effectuée. Un processus tourne alors en arrière-plan et vérifie régulièrement le journal de connexion du pare-feu pour ouvrir un port spécifique si une séquence est détectée.

Cette technique est notamment utilisée pour protéger l’accès au port 22 (SSH) d’une machine.

Pour mettre en place le port knocking sous CentOS, nous allons utiliser le démon knockd disponible à cette adresse. L’installation à partir des sources consistent à installer tout d’abord les dépendances puis le démon knockd.

yum install gcc libpcap-devel
cd /usr/local/src/
wget http://www.zeroflux.org/proj/knock/files/knock-0.5.tar.gz
tar -xzvf knock-0.5.tar.gz
./configure
make
make install

Ensuite, il vous faut supprimer la règle autorisant SSH en entrée sur le serveur.

vi /etc/sysconfig/iptables

#-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

– Redémarrez le pare-feu : service iptables restart

Il vous faut maintenant définir la séquence de port à « frapper » pour ouvrir le port SSH. Dans notre exemple, nous choisissons les ports 2222, 3333 et 4444.

vi /etc/knockd.conf

[options]
UseSyslog
PidFile = /var/run/knockd.pid
Interface = eth0

[opencloseSSH]
sequence = 2222,3333,4444
seq_timeout = 15
tcpflags = syn
start_command = /sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
cmd_timeout = 60
stop_command = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT

La séquence doit être effectuée dans les 15 secondes et vous avez 60 secondes pour vous connecter en SSH sur le serveur.

Il ne vous reste plus qu’à lancer le démon knockd.

/usr/sbin/knockd -d

Depuis votre client, essayez maintenant de vous connecter en SSH sur votre serveur. La connexion est maintenant impossible puisque le pare-feu n’autorise plus le port 22 en entrée. Par contre le serveur SSH est toujours à l’écoute. Récupérez par exemple le client Knock pour Windows.

Depuis un poste sous Windows, en ligne de commande, « frappez les ports » : knock.exe 192.168.0.100 2222 3333 4444

Vous pouvez maintenant vous connecter normalement en SSH sur votre serveur dans un certain laps de temps.