Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
port-knocking [Le 19/11/2008, 21:49]
213.95.41.13
port-knocking [Le 27/11/2023, 14:39] (Version actuelle)
86.107.127.8 [Liens] Le site Portknoking a changé de propriétaire
Ligne 11: Ligne 11:
 En résumé, **le port knocking est donc une méthode simple pour autoriser un accès distant sur un port non constamment ouvert**. Cela permet d'​éviter les scans de ports et certaines attaques. En résumé, **le port knocking est donc une méthode simple pour autoriser un accès distant sur un port non constamment ouvert**. Cela permet d'​éviter les scans de ports et certaines attaques.
  
-La méthode de port-knocking est considérée comme sécurisée étant donné qu'​elle est située à un niveau bas des couches TCP/IP et qu'​elle ne requière pas de port ouvert (le service knockd est lui aussi invisible). C'est donc une méthode, mais pas infaillible,​ de masquer la présence d'un serveur derrière un port.+La méthode de port-knocking est considérée comme sécurisée étant donné qu'​elle est située à un niveau bas des couches TCP/IP et qu'​elle ne requière pas de port ouvert (le service knockd est lui aussi invisible). C'est donc une méthode, mais pas infaillible, ​permettant ​de masquer la présence d'un serveur derrière un port.
  
 ===== 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 23: Ligne 23:
  
  
-===== Paramétrage du serveur ​=====+===== Paramétrage du serveur ====
  
 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]] ​**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]]
  
  
  • port-knocking.1227127799.txt.gz
  • Dernière modification: Le 18/04/2011, 14:53
  • (modification externe)