Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
port-knocking [Le 02/07/2010, 23:24] Miam Miam |
port-knocking [Le 27/11/2023, 14:39] (Version actuelle) 86.107.127.8 [Liens] Le site Portknoking a changé de propriétaire |
||
---|---|---|---|
Ligne 15: | Ligne 15: | ||
===== Pré-requis ===== | ===== Pré-requis ===== | ||
- | Pour la suite des opérations, des pré-requis sont nécessaires : | + | Pour la suite des opérations, des pré-requis sont nécessaires : |
* Disposer des [[:sudo|droits d'administration]] ; | * Disposer des [[:sudo|droits d'administration]] ; | ||
* Disposer d'une connexion à Internet configurée et activée pour télécharger le logiciel ; | * Disposer d'une connexion à Internet configurée et activée pour télécharger le logiciel ; | ||
Ligne 27: | Ligne 27: | ||
Le serveur doit donc avoir un pare-feu et exécuter le service //knockd//. Le service est donc en écoute d'une séquence spécifique (suite de ports associés a un protocole TCP ou UDP). Si la séquence est correcte, alors une commande est exécutée. Généralement, l'adresse ip source est autorisée à accéder au port d'une application à travers le pare-feu. | Le serveur doit donc avoir un pare-feu et exécuter le service //knockd//. Le service est donc en écoute d'une séquence spécifique (suite de ports associés a un protocole TCP ou UDP). Si la séquence est correcte, alors une commande est exécutée. Généralement, l'adresse ip source est autorisée à accéder au port d'une application à travers le pare-feu. | ||
- | La configuration du serveur est très simple puisqu'il suffit d'[[:tutoriel:comment_installer_un_paquet|installer le paquet]] [[apt://knockd]]. | + | La configuration du serveur est très simple puisqu'il suffit d'[[:tutoriel:comment_installer_un_paquet|installer le paquet]] [[apt://knockd|knockd]]. |
Après avoir installé le paquet, [[:tutoriel:comment_editer_un_fichier|éditer son fichier de configuration]] **/etc/knockd.conf**. | Après avoir installé le paquet, [[:tutoriel:comment_editer_un_fichier|éditer son fichier de configuration]] **/etc/knockd.conf**. | ||
Ligne 58: | Ligne 58: | ||
</file> | </file> | ||
- | Explications : | + | Explications : |
* **sequence** : la combinaison à matcher pour effectuer la 'command'. Si aucun protocole n'est mentionné, le protocole par défaut est utilisé : TCP | * **sequence** : la combinaison à matcher pour effectuer la 'command'. Si aucun protocole n'est mentionné, le protocole par défaut est utilisé : TCP | ||
* **seq_timeout** : le temps en secondes pendant lequel la combinaison doit être effectuée, après quoi elle est annulée, et il faut recommencer la séquence depuis le début. | * **seq_timeout** : le temps en secondes pendant lequel la combinaison doit être effectuée, après quoi elle est annulée, et il faut recommencer la séquence depuis le début. | ||
Ligne 64: | Ligne 64: | ||
* **tcpflags** : met en évidence les flags devant être positionnés dans les paquets reçus pour que le port soit pris en compte. Si une erreur survient, il faut recommencer le tout. | * **tcpflags** : met en évidence les flags devant être positionnés dans les paquets reçus pour que le port soit pris en compte. Si une erreur survient, il faut recommencer le tout. | ||
- | Nous avons donc définis 2 séquences : | + | Nous avons donc défini 2 séquences : |
* **openHTTP** ouvre le port HTTP 80 si la séquence de ports 7000, 8000 et 9000 a été exécutée | * **openHTTP** ouvre le port HTTP 80 si la séquence de ports 7000, 8000 et 9000 a été exécutée | ||
* **closeHTTP** ferme le port HTTP 80 si la séquence de ports 9000, 8000 et 7000 a été exécutée | * **closeHTTP** ferme le port HTTP 80 si la séquence de ports 9000, 8000 et 7000 a été exécutée | ||
- | Il est possible de préciser le protocole "frappé" en adaptant la ligne comme suit par exemple : | + | Il est possible de préciser le protocole "frappé" en adaptant la ligne comme suit par exemple : |
<file>sequence = 7000:tcp,8000:udp,9000:tcp</file> | <file>sequence = 7000:tcp,8000:udp,9000:tcp</file> | ||
Ligne 94: | Ligne 94: | ||
FIXME : Cette règle n'est pas présente par défaut ; il faudrait préciser comment la renseigner. (http://doc.ubuntu-fr.org/iptables#autoriser_le_trafic_entrant_d_une_connexion_deja_etablie) | FIXME : Cette règle n'est pas présente par défaut ; il faudrait préciser comment la renseigner. (http://doc.ubuntu-fr.org/iptables#autoriser_le_trafic_entrant_d_une_connexion_deja_etablie) | ||
- | Si un utilisateurs « frappe » dans l'ordre les ports 7000, 8000 puis 9000, la comande sera exécutée (ouvrir le port 22). 10 secondes plus tard, la commande //stop_command// sera exécutée, fermant ainsi le port pour les nouvelles connexions (mais pas celle en cours !) | + | Si un utilisateurs « frappe » dans l'ordre les ports 7000, 8000 puis 9000, la commande sera exécutée (ouvrir le port 22). 10 secondes plus tard, la commande //stop_command// sera exécutée, fermant ainsi le port pour les nouvelles connexions (mais pas celle en cours !) |
Ligne 104: | Ligne 104: | ||
Changez impérativement la séquence d'exemple de votre fichier de configuration, et bien entendu, pensez à communiquer la nouvelle en gardant à l'esprit qu'il est recommandé : | Changez impérativement la séquence d'exemple de votre fichier de configuration, et bien entendu, pensez à communiquer la nouvelle en gardant à l'esprit qu'il est recommandé : | ||
- | * d'utiliser au moins 3 ports (si vous êtes paranoïac, vous pouvez en ajoutant autant que nécessaire pour vous rassurer) | + | * d'utiliser au moins 3 ports (si vous êtes paranoïaque, vous pouvez en ajoutant autant que nécessaire pour vous rassurer) |
* de mélanger pour chaque port les protocoles TCP et UDP | * de mélanger pour chaque port les protocoles TCP et UDP | ||
Ligne 138: | Ligne 138: | ||
===== Liens ===== | ===== Liens ===== | ||
- | * [[http://portknocking.org/|Site officiel]] | + | * [[https://web.archive.org/web/20180726181817/http://www.portknocking.org/|Site officiel]] |
* [[wpfr>Port_knocking|Page sur l'encyclopédie libre Wikipedia]] | * [[wpfr>Port_knocking|Page sur l'encyclopédie libre Wikipedia]] | ||
* [[http://www-igm.univ-mlv.fr/~dr/XPOSE2004/killy/fonctionnement.html|Fonctionnement avec schémas explicatifs]] | * [[http://www-igm.univ-mlv.fr/~dr/XPOSE2004/killy/fonctionnement.html|Fonctionnement avec schémas explicatifs]] | ||
+ | * [[https://www.it-connect.fr/chapitres/configuration-du-port-knocking-ssh/|Mise en place d’un port-knocking SSH]] | ||