Knockr - Facilement mettre en place une séquence de port knocking sur votre serveur
Connaissez-vous la pratique du port knocking ?
Il s’agit d’une bonne pratique de sécurité informatique qui permet de contrôler l’accès à un serveur en utilisant une séquence de tentatives de connexion à des ports fermés. Cette technique est souvent utilisée pour masquer aux yeux des scanners de ports, des services comme SSH. les services tels que SSH (Secure Shell) des scanners de port automatiques et des attaquants potentiels.
Cette méthode ajoute une couche de sécurité supplémentaire, car les ports nécessaires pour accéder à votre serveur, ne sont pas constamment ouverts et donc visibles.
Si vous voulez mettre ça en place, il y a différentes méthodes, mais l’une des plus faciles, c’est d’utiliser Knockr, un script écrit en Go qui s’installe comme ceci :
go install github.com/solutionroute/[email protected]
Ou comme ceci :
git clone https://github.com/solutionroute/knockr.git cd knockr go install
Et qui va vous permettre de spécifier les ports à surveiller ainsi que la durée d’attente entre chaque frappe, le protocole réseau utilisé ou le temps d’attente avant l’émission d’une nouvelle séquence.
Frapper sur trois ports différents
Le comportement par défaut de l’outil knockr
est de frapper sur les ports spécifiés en utilisant le protocole TCP avec un délai de 100 millisecondes entre les frappes et un délai d’expiration de 1,5 seconde pour chaque frappe. Pour frapper sur trois ports, 1234, 8923 et 1233, vous utiliseriez la commande suivante, en remplaçant hostname par le nom réseau de votre machine :
knockr hostname 1234,8923,1233
Cette commande enverra un paquet TCP SYN à chacun des ports spécifiés, en attendant une réponse avant d’envoyer le paquet suivant. Si une réponse n’est pas reçue dans les 1,5 secondes, la frappe est considérée comme infructueuse.
Frapper sur une chaîne de ports avec un protocole et un délai spécifiés
Pour spécifier un protocole et un délai différents entre les frappes, vous pouvez utiliser les options -n
et -d
, respectivement. Par exemple, pour frapper sur le port 22 (SSH) en utilisant le protocole UDP avec un délai de 200 millisecondes entre les frappes, vous utiliseriez la commande suivante :
knockr hostname 22 -n udp -d 200ms
Frapper sur une chaîne de ports avec un protocole, un délai et un mode silencieux spécifiés
Pour supprimer tout sauf la sortie d’erreur, vous pouvez utiliser l’option -s
. Par exemple, pour frapper sur le port 22 (SSH) en utilisant le protocole TCP avec un délai de 200 millisecondes et supprimer toute sortie sauf la sortie d’erreur, vous utiliseriez la commande suivante :
knockr hostname 22 -n tcp -d 200ms -s
Il est recommandé d’inclure le ou les ports que vous vous attendez à être déverrouillés en premier et en dernier dans la chaîne pour observer leur statut avant et après le processus de frappe. Par exemple, si vous avez l’intention de déverrouiller le port 22 (SSH) sur un hôte spécifique, vous pouvez utiliser la commande suivante :
knockr hostname 22,1234,18923,1233,22
Cette commande frappera sur le port 22, attendra la réponse attendue, frappera ensuite sur les ports restants, puis vérifiera à nouveau le statut du port 22. Cela permet de garantir que les ports spécifiés sont bien déverrouillés après le processus de frappe.
Vous l’aurez compris grâce aux exemples :
- L’option
-d
spécifie le délai en millisecondes entre les frappes. La valeur par défaut est de 100 millisecondes. - L’option
-n
spécifie le protocole à utiliser pour les frappes. Les valeurs possibles sonttcp
etudp
. La valeur par défaut esttcp
. - L’option
-s
met l’outil en mode silencieux. Cela signifie que seules les sorties d’erreur seront affichées.
À découvrir ici et bonne chance dans vos aventures de port-knocking !
Entièrement dédiée à la cybersécurité, l'école Guardia est accessible soit directement après le bac (post-bac), soit après un bac+2 ou bac+3. En rejoignant l'école Guardia, vous deviendrez développeur informatique option cybersécurité (Bac+3) ou expert en cybersécurité (Bac+5).