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 ?

  1. Sécurité améliorée : Les ports ne sont pas visibles aux scanners de port courants, réduisant ainsi la surface d’attaque.
  2. Accès contrôlé : Permet de restreindre l’accès aux services critiques comme SSH uniquement à ceux qui connaissent la séquence de port.
  3. 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 :

  1. Configuration : Vous configurez knockd pour écouter une séquence de ports spécifique. Par exemple, une séquence pourrait être “7000, 8000, 9000”.
  2. 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.
  3. 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.
  4. 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 update
sudo apt-get install knockd
Configuration :
Modifiez le fichier de configuration principal :
sudo nano /etc/knockd.conf

[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

Démarrer le service :
sudo systemctl enable knockd sudo systemctl start knockd

Utilisation

Pour frapper les ports dans la séquence correcte à partir d’un client Linux, vous pouvez utiliser la commande suivante :

knock 7000 8000 9000

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