Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| port-knocking [Le 27/01/2008, 19:33] – sidney_v | port-knocking [Le 28/11/2019, 14:45] (Version actuelle) – [Liens] 178.237.98.24 | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | {{tag> | ||
| + | ---- | ||
| + | |||
| + | ====== Port Knocking : sécuriser l' | ||
| + | |||
| + | Le **port-knocking** est une méthode permettant de modifier le comportement d'un firewall en temps réel pour provoquer l' | ||
| + | |||
| + | Cette technique est notamment utilisée pour protéger l' | ||
| + | |||
| + | 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' | ||
| + | |||
| + | La méthode de port-knocking est considérée comme sécurisée étant donné qu' | ||
| + | |||
| + | ===== Pré-requis ===== | ||
| + | |||
| + | Pour la suite des opérations, | ||
| + | * Disposer des [[: | ||
| + | * Disposer d'une connexion à Internet configurée et activée pour télécharger le logiciel ; | ||
| + | * Avoir activé l' | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ===== 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, | ||
| + | |||
| + | La configuration du serveur est très simple puisqu' | ||
| + | |||
| + | Après avoir installé le paquet, [[: | ||
| + | |||
| + | Deux approches vont être présentées : | ||
| + | * la première est destinée aux connexions qui ne nécessitent pas d' | ||
| + | * la seconde méthode à celles qui doivent l' | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ==== Connexions non maintenues (no keep-alive) ==== | ||
| + | |||
| + | < | ||
| + | [options] | ||
| + | logfile = / | ||
| + | |||
| + | [openHTTP] | ||
| + | sequence | ||
| + | seq_timeout = 5 | ||
| + | command | ||
| + | tcpflags | ||
| + | |||
| + | [closeHTTP] | ||
| + | sequence | ||
| + | seq_timeout = 5 | ||
| + | command | ||
| + | tcpflags | ||
| + | </ | ||
| + | |||
| + | Explications : | ||
| + | * **sequence** : la combinaison à matcher pour effectuer la ' | ||
| + | * **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. | ||
| + | * **command** : représente la règle iptables qui sera ajoutée au firewall afin de permettre l' | ||
| + | * **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é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 | ||
| + | * **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 " | ||
| + | < | ||
| + | |||
| + | |||
| + | |||
| + | ==== Connexions maintenues (keep-alive) ==== | ||
| + | |||
| + | Ce deuxième exemple est un peu différent du précédent : | ||
| + | |||
| + | < | ||
| + | [options] | ||
| + | logfile = / | ||
| + | |||
| + | [SSH] | ||
| + | sequence | ||
| + | seq_timeout = 5 | ||
| + | command | ||
| + | tcpflags | ||
| + | cmd_timeout | ||
| + | stop_command | ||
| + | </ | ||
| + | |||
| + | Il est recommandé de n' | ||
| + | |||
| + | FIXME : Cette règle n'est pas présente par défaut ; il faudrait préciser comment la renseigner. (http:// | ||
| + | |||
| + | Si un utilisateurs « frappe » dans l' | ||
| + | |||
| + | |||
| + | ==== Attention ==== | ||
| + | |||
| + | Le site officiel du projet knockd (et le fichier de configuration installé par défaut) fait référence à la règle iptables **-A**. Comme vous pouvez le voir, nous utiliserons à la place **-I** pour insérer la règle au début du pare-feu (sinon la règle avec -A ne produit aucun effet puisqu' | ||
| + | |||
| + | FIXME : Tout dépend de la règle par defaut, si la décision est drop le -A fonctionnera, | ||
| + | |||
| + | Changez impérativement la séquence d' | ||
| + | * d' | ||
| + | * de mélanger pour chaque port les protocoles TCP et UDP | ||
| + | |||
| + | |||
| + | Vous devez également changer la configuration par défaut dans le fichier « / | ||
| + | * pour que le service démarre automatiquement, | ||
| + | * pour que le service écoute sur des interfaces, adapter et décommenter la ligne // | ||
| + | * pour que les modifications soient prises en compte, redémarrer le service knockd avec la commande : '' | ||
| + | |||
| + | Pour en savoir plus, exécutez dans un terminal la commande '' | ||
| + | |||
| + | C'est tout ! | ||
| + | |||
| + | |||
| + | |||
| + | ===== Côté client ===== | ||
| + | |||
| + | Pour initier une séquence sur les différents ports, vous pouvez utiliser le client de votre choix, comme **telnet** ou le 'swiss army knife' **nc**... | ||
| + | |||
| + | Ou bien utiliser un logiciel client spécifique au port-knocking comme //knock//, après avoir [[: | ||
| + | |||
| + | Pour l' | ||
| + | < | ||
| + | |||
| + | Ou, si il est nécessaire de préciser dans la combinaison plusieurs protocoles : | ||
| + | < | ||
| + | |||
| + | Ou, si la combinaisons n' | ||
| + | < | ||
| + | |||
| + | Pour en savoir plus, exécutez dans un terminal la commande //man knock// | ||
| + | |||
| + | ===== Liens ===== | ||
| + | |||
| + | * [[http:// | ||
| + | * [[wpfr> | ||
| + | * [[http:// | ||
| + | * [[https:// | ||
| + | |||
| + | |||
| + | ---- | ||
| + | |||
| + | // | ||
