Obwohl ich es noch nicht bereitgestellt habe, kenne ich viele Leute, die es bereitgestellt haben. Jeder einzelne von ihnen hat eine signifikante Reduzierung des Bandbreitenverbrauchs von SSH-Brute-Force-Angriffen festgestellt.
Dies bedeutet jedoch nicht, dass es keine Nachteile gibt. AFAIK, es gibt keine kernelbasierten Port-Knocking-Implementierungen, was für mich der eigentliche Schlüssel zur Einführung wäre. Port-Knocking-Daemons basieren auf dem Lesen fehlgeschlagener (und gefilterter / verbotener) Protokolldateieinträge von einem Firewall-System. Das ist alles in Ordnung und gut, aber was passiert, wenn das Dateisystem voll wird? Was passiert, wenn der Dämon aufgrund eines außer Kontrolle geratenen Prozesses getötet wird, der den Arbeitsspeicher und den Austausch des Systems aufzehrt? Was passiert, wenn etwas anderes, von dem eines dieser beiden Dinge abhängt, einfach aufhört und nicht mehr funktioniert? Sie haben höchstwahrscheinlich einen Server, auf den Sie physisch zugreifen müssen. Dies könnte teurer sein als vernünftig, insbesondere wenn Sie mehr als ein paar zehn Meilen vom Server entfernt sind und niemanden haben, den Sie anrufen können, um schnell dorthin zu gelangen.
Eins Was ich sagen kann ist, dass es nicht "Sicherheit durch Dunkelheit" ist. Port Knocking ist eine Form der Authentifizierung und kann wie jedes Authentifizierungssystem so einfach oder komplex wie gewünscht gestaltet werden. Es kann etwas so Einfaches wie "Klopfen an Port 10.000 + realPortNumber" durchgeführt werden, was eine geringfügige Unterbrechung bedeuten würde, oder das Klopfen des Ports könnte selbst verwendet werden, um irgendeine Form der echten Authentifizierung zu übertragen (z. B. 1 Block von AES-codierten Daten, wenn a gegeben ist Schlüssel abgeleitet von einer anderen Methode). Es wäre jedoch nicht möglich, Port-Knocking zum Übertragen großer Datenmengen zu verwenden, da dies erheblich länger dauern würde als nur das Senden eines einzelnen Pakets. Wenn das Paket über TCP übertragen wird, kann zumindest festgestellt werden, ob es erfolgreich empfangen wurde oder auf irgendeine Form von Fehler gestoßen.
Eine interessante Frage, die sich daraus ergibt, ist jedoch, wie die Protokolldateien verwaltet werden. Für Userland-Implementierungen sind meistens die Protokolldateien erforderlich, um festzustellen, ob ein Klopfen erfolgreich gesendet wurde oder nicht, und was passiert, wenn diese Protokolle erstellt werden sind durchgesickert? Authentifizierungsdaten werden bekannt, und das ist offensichtlich keine sehr gute Sache.
Ich kann Ihnen nicht sagen, ob Sie Port Knocking in Ihrem Setup verwenden sollen oder nicht. Ich bin noch nicht und ich bin nicht 100% sicher, dass ich es jemals sein werde. Für mich ist es sinnvoller, starke Authentifizierungssysteme zu verwenden, die auf einer starken Kryptografie basieren (z. B. eine PKI-Infrastruktur), als Port-Knocking in die Quere zu bringen. Außerdem scheint es mir eine schlechte Idee zu sein, einen einzigen Fehlerpunkt für den Zugriff auf kritische Infrastrukturen hinzuzufügen, und es ist viel schwieriger, ihn mit irgendeiner Art von Garantie ordnungsgemäß zu unterstützen. Dies basiert jedoch wiederum auf der Vorstellung, dass die Port-Knocking-Software auf Kernel-Ebene des Betriebssystems nicht in die Firewall integriert ist. Sollte sich dies jemals ändern, kann ich auch meine Einstellung zur Verwendung ändern.