Bien que je ne l'ai pas encore déployé, je connais de nombreuses personnes qui l'ont déployé. Chacun d'entre eux a noté une réduction significative de la quantité de bande passante consommée par des choses comme les attaques SSH par force brute.
Cependant, cela ne veut pas dire qu'il n'y a pas d'inconvénients. AFAIK, il n'y a pas d'implémentations de frappe de port basées sur le noyau disponibles, ce qui pour moi serait la vraie clé de l'adoption. Les démons de frappe de port reposent sur la lecture des entrées de fichier journal échouées (et filtrées / interdites) à partir d'un système de pare-feu. C'est très bien, mais que se passe-t-il si le système de fichiers est plein? Que se passe-t-il lorsque le démon est tué à cause d'un processus incontrôlable qui consomme la RAM et l'échange du système? Que se passe-t-il si quelque chose d'autre dont l'une ou l'autre de ces deux choses dépend est juste en place et cesse de fonctionner? Vous vous retrouverez probablement avec un serveur auquel vous devrez accéder physiquement. Cela pourrait s'avérer plus coûteux que ce qui est raisonnable, surtout si vous êtes à plus de quelques dizaines de kilomètres du serveur et que vous n'avez personne à appeler pour vous y rendre rapidement.
Un ce que je peux dire, c'est que ce n'est pas "la sécurité par l'obscurité". Le cliquetis de port est une forme d'authentification et, comme tout système d'authentification, il peut être aussi simple ou complexe que souhaité. Quelque chose d'aussi simple que "frapper sur le port 10 000 + realPortNumber" peut être fait, ce qui équivaudrait à une rupture triviale, ou le cliquetis de port pourrait lui-même être utilisé pour transmettre une forme d'authentification réelle (par exemple, 1 bloc de données encodées AES clé dérivée par une autre méthode). Cependant, il ne serait pas possible d'utiliser le cliquetis de port pour transmettre de grandes quantités de données, car cela prendrait beaucoup plus de temps que l'envoi d'un seul paquet, et si le paquet est sur TCP, au moins on peut savoir s'il a été reçu avec succès ou rencontré une forme d'erreur.
Une question intéressante que cela soulève, cependant, est de savoir comment gérer les fichiers journaux - les implémentations du userland nécessitent principalement les fichiers journaux afin de déterminer si oui ou non un coup a été envoyé avec succès, et que se passe-t-il si ces journaux sont fuites? Les données d'authentification deviennent connues, et ce n'est évidemment pas une très bonne chose.
Je ne peux pas vous dire si vous devez ou non utiliser le port knocking dans votre configuration. Je ne le suis pas encore, et je ne suis pas sûr à 100% de le devenir un jour. Il est plus logique pour moi d'utiliser des systèmes d'authentification forte basés sur une cryptographie forte (comme une infrastructure PKI) que de gêner les ports. De plus, ajouter un point de défaillance unique pour accéder aux infrastructures critiques, pour moi en tout cas, semble être une mauvaise idée, et bien plus difficile à prendre en charge correctement avec toute sorte de garantie. Encore une fois, cependant, cela est basé sur la notion du logiciel de frappe de port n'étant pas intégré au pare-feu au niveau du noyau du système d'exploitation; si jamais cela change, je pourrais aussi changer ce que je ressens de son utilisation.