Port knocking sur Debian
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.