Forum général.cherche-logiciel Port knocking

Posté par  .
Étiquettes : aucune
0
15
déc.
2009
Bonjour à tous,

je me penche sur le port knocking. Pour les cas simples c'est facile, il suffit de quelques règles iptables ou d'un petit démon et le tour est joué. On peu déverrouiller des ports avec de simples ping ou netcat, telnet, etc.

Par contre, dès qu'on souhaite quelque chose d'un peu évolué (plusieurs utilisateurs avec accès différents, mot de passe, etc), il faut un client spécifique. Le client en question est capable d'envoyer les bons paquets aux bons endroits, avec le bon contenu. Sur le serveur il y a une liste de "codes" avec les actions correspondantes.
Si on veut quelque chose de cryptographiquement solide, les délais de transmission deviennent gênants.

Je trouve que c'est bien compliqué. Quitte à avoir un client, autant que le client soit simplement capable d'envoyer un paquet sur un port déterminé, et que ce paquet contienne le bon mot de passe. Pas la peine d'envoyer 36 paquets sur 36 ports différents.
Pour plus de sécurité, la cible peut répondre avec un sel, et le client devrait envoyer de nouveau un mot de passe (pas le même) chiffré avec une pincée de sel. On a ainsi un premier mot de passe rejouable (commun à tous les utilisateurs éventuellement), et un second non rejouable.

Donc je ne saisi pas bien pourquoi on complique le port knocking jusqu'à produire quelque chose de pas bien efficace. J'ai raté quelque chose ?
  • # simplement parce que ...

    Posté par  . Évalué à 1.

    je ne connais pas le mecanisme exact, mais si on simplifie à l'extreme, il faut quand meme plus d'info pour identifier les utilisateurs que pour le port knocking de base

    dans le cas simple :
    1 paquet vers le port A => ca ouvre le port B

    dans le cas complexe
    1 paquet sur le port A => reponse qui es tu
    1 paquet sur le port A, je suis X => reponse bien, dis moi ton mot de passe
    1 paquet sur le port A, mon passe est => bien examinons ton identification
  • # port knocking vs authentification par clef

    Posté par  . Évalué à 2.

    de ce que j'en avais compris, l'idée du port knocking part du constat que les méchants pirates^w script kiddies tentent de casser les mots de passe faibles pour les utilisateurs habituels sur les ports standards (genre le mdp root/admin/www-data ou autre sur ssh).

    L'idée du port knocking est que le port 22 soit fermé par défaut, et que seule une combinaison de ping sur des ports dans un ordre déterminé l'ouvre pendant quelques minutes.
    Ensuite, c'est une connexion ssh classique avec authentification classique.
    Au bout d'un certain temps (configuré quelque part), le port 22 se referme.

    Pour tout attaquant scannant les ports en dehors de cette plage de quelque minutes, la probabilité qu'il scan les ports dans le bon ordre étant faible, le service ssh n'est pas accessible (donc pas troutable)

    ce que tu décris (grosso modo, l'envoi d'un challenge), c'est finalement l'authentification par clefs . Ca existe aussi, mais c'est pas du port knocking.
  • # fwknop

    Posté par  . Évalué à 2.

    J'utilise ça: http://www.cipherdyne.org/fwknop/

    Ca fait (presque) exactement ce que tu indiques. C'est beaucoup plus rapide que du port knocking si tu cherches des choses sécurisées. Et ça reste simple.
  • # Rien a voir mais ça marche aussi

    Posté par  (site web personnel) . Évalué à 3.

    Si tu n'as pas un impératif de mettre un linux sur ta machine (exemple une passerelle qui doit juste gérer les flux entrant et sortant), tu as authpf sur OpenBSD (NetBSD et FreeBSD l'ont surement aussi).

    authpf c'est un deamon qui attend qu'un utilisateur se connecte sur ssh. Une fois logué, il ouvre les ports, redirige le trafique ou tout ce que tu veux faire dans ton firewall. Pour arrêter il suffit de fermer la connexion ssh. Personnellement j'utilise ça dans mon réseau wifi personnel avec succés et j'ai même fait un petit client windows tout simple avec putty et un .bat.

    Voici un exemple concret des possibilités d'authpf dans le cadre d'un réseau wifi :
    http://wiki.openbsd-france.org/documentations/reseau/monter_(...)
    • [^] # Re: Rien a voir mais ça marche aussi

      Posté par  . Évalué à 1.

      Je pensais bêtement utiliser ssh pour prouver qu'on est bien la bonne personne. C'est ce qui me semble le mieux. D'autant plus que sur les machines que j'administre j'ai deux démons ssh. Un pour l'administration avec un seul utilisateur qui peut se connecter (puis su pour passer en root), et un pour lancer les robots, sauvegardes etc.
      Et même un troisième démon ssh qui tourne sur le port 22. Toute saisie d'un identifiant sur ce port entraîne un bannissement de l'ip source jusqu'au redémarrage de la machine.

      putty et un .bat ?
      Ca te permet d'exécuter des commandes ?
      Dans la doc je vois l'option -m. C'est ce que tu utilises ?

      Je viens de voir que authpf est disponible sur Debian Lenny :)
      Je regarde ça, merci !
      • [^] # Re: Rien a voir mais ça marche aussi

        Posté par  (site web personnel) . Évalué à 2.

        En fait c'est moi qui ai écrit la doc ;)

        Sinon je ne vois pas comment authpf peut être dans debian lenny vu que ça se base sur PF qui est le firewall des BSD et qui ne peut en aucun cas fonctionner sur un linux.

        Sinon google me dit de regarder nufw qui ferait quelque chose dans le genre mais vu que je trouve la syntaxe d'iptables vraiment à chier comparé à PF je n'irai pas plus loin.

        Pour ne pas paraitre trop poilu sur ma dernière phrase voilà mon exemple préféré pour démontrer la simplicité de PF par le même auteur : http://wiki.openbsd-france.org/documentations/reseau/introdu(...)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.