Masquer vos services avec knockd , en mode Ninja Linux
knockd
est un démon (service en arrière-plan) utilisé pour la technique de “port knocking”. Le port knocking est une méthode de sécurité pour gérer l’accès aux services réseau en masquant les ports ouverts. Les ports restent fermés jusqu’à ce qu’une séquence spécifique de ports soit “frappée” (accédée dans un ordre spécifique), à ce moment-là, une règle de pare-feu est temporairement modifiée pour permettre l’accès.
ourquoi utiliser knockd
?
- Sécurité améliorée : Les ports ne sont pas visibles aux scanners de port courants, réduisant ainsi la surface d’attaque.
- Accès contrôlé : Permet de restreindre l’accès aux services critiques comme SSH uniquement à ceux qui connaissent la séquence de port.
- Flexibilité :
knockd
peut être configuré pour ouvrir ou fermer des ports, exécuter des scripts ou des commandes spécifiques en réponse à une séquence de port.
Fonctionnement
Le principe de fonctionnement de knockd
est basé sur l’écoute d’une séquence préconfigurée de ports. Voici comment cela fonctionne en général :
- Configuration : Vous configurez
knockd
pour écouter une séquence de ports spécifique. Par exemple, une séquence pourrait être “7000, 8000, 9000”. - Séquence de frappe : L’utilisateur frappe les ports dans cet ordre. Cette action peut être réalisée avec un client de port knocking ou avec des commandes spécifiques.
- Action déclenchée : Lorsqu’une séquence valide est détectée par
knockd
, il exécute une commande préconfigurée. Cela pourrait être l’ajout d’une règle de pare-feu pour ouvrir un port, l’exécution d’un script, etc. - Timeout et Sécurité : Après une période définie, la règle de pare-feu peut être retirée automatiquement, fermant ainsi l’accès.
Exemple de Cas d’Usage
- Serveur SSH sécurisé : Un administrateur système peut configurer
knockd
pour que le port SSH (port 22) soit fermé par défaut. L’accès au port SSH est ouvert uniquement après avoir frappé une séquence de ports correcte (par exemple, “7000, 8000, 9000”). Ceci protège le serveur contre les attaques de force brute automatisées sur le port SSH.
Installation et Configuration de Base
Pour installer et configurer knockd
sur un système basé sur Debian/Ubuntu, suivez ces étapes :
Installation :
sudo apt-get install knockd
[options]
logfile = /var/log/knockd.log
[openSSH]
sequence = 7000,8000,9000
seq_timeout = 5
command = /sbin/iptables -A INPUT -s %IP% -p tcp –dport 22 -j ACCEPT
tcpflags = syn
[closeSSH]
sequence = 9000,8000,7000
seq_timeout = 5
command = /sbin/iptables -D INPUT -s %IP% -p tcp –dport 22 -j ACCEPT
tcpflags = syn
Utilisation
Pour frapper les ports dans la séquence correcte à partir d’un client Linux, vous pouvez utiliser la commande suivante :
knock
knockd
est un outil puissant pour améliorer la sécurité des services réseau en masquant les ports ouverts. En configurant correctement knockd
, vous pouvez ajouter une couche supplémentaire de sécurité pour protéger votre infrastructure contre les accès non autorisés