Port knocking sur Debian

knocking jpg

Knock Knock :)

Le concept et son implémentation dont nous allons parler aujourd'hui s'appelle le port knocking.

Un petit mot de concept :

Il s'agit de provoquer l'ouverture d'un port sur une suite d'accès à des ports fermés (UDP ou TCP). Le serveur est averti d'une suite de ports tcp ou udp qui vont être requêtés suite à quoi il ouvrira (au sens firewalling du terme) un port convenu à l'avance pour l'ip qui à composée le code.

Maintenant mettons cela en pratique :

L'implémentation proposée repose sur le démon knockd.

On installe notre démon (ici sous Debian 5) :

aptitude update && aptitude install knockd

Passons à la configuration :

vim /etc/knockd.conf

Une configuration par défaut est proposée pour OpenSSh sur le port 22.

Une séquence ouvre le port (tcp/ 7000 - 8000 - 9000), une autre le ferme (tcp / 9000 - 8000 - 7000).

Nous allons de suite tester sans rien toucher !

Pour cela activons le service knockd.

Dans /etc/default/knockd passez :

START_KNOCKD=0 
à 
START_KNOCKD=1 

Puis faites :

service knockd start

On va ensuite injecter une règle de firewall qui DROPPE TOUT le traffic entrant (y compris votre session ssh si vous l'utilisez !!) Ne le faites que si vous êtes sur de votre coup et que vous avez un accès physique au serveur (ou un kvm ip ;)) Libre à vous de configurer les ports qui doivent passer mais la n'est pas le propos.

Vous êtes sur ? bon ok on y va !!!

iptables -F
iptabes -X
iptables -P INPUT DROP

Nous allons mantenant lancer un accès ssh vers notre serveur... sans surprise ca ne passe pas, iptables faisant son boulot.

Maintenant lançons un knock vers notre serveur avec la séquence convenu. le module client utilisé ici est fourni par le package knockd, un :

dpkg -L knockd

vous en convaincra ;)

knock 192.168.0.10 7000 8000 9000

Mon ssh passe désormais. Une fois connecté sur mon systeme un iptables -L me confirme que je suis la seule ip autorisée... Une fois mes opérations achevées, je me déconnecte.

On knock alors la séquence pour fermer le port ssh.

knock 192.168.0.10 9000 8000 7000

Mon ssh ne passe plus :)

C'est tout pour ce premier billet, la suite au prochain épisode.

Big up

Merci à Vince pour cet article.

Vus : 586
Publié par System Linux : 211