Port knocking
# Port knocking

Port knocking ist ein Verfahren, um Server bzw. einzelne Serverdienste in TCP/IP-Netzwerken abzusichern, das heißt vor unbefugtem Zugriff zu schützen. Der Name kommt von engl. „to knock“ (klopfen) und „Port“ (Anschluss). Er soll versinnbildlichen, dass man zunächst in einer vorher vereinbarten Sequenz „anklopft“, bevor sich ein Port öffnet und man so Zugang zu einem bestimmten Serverdienst erhält.

Die Kommunikation auf dem gewünschten Port wird dabei zunächst von einer Firewall vollständig blockiert. Um diesen Port zu öffnen, sendet man mehrere SYN-Pakete mit zuvor vereinbartem Inhalt und in der richtigen zeitlichen Abfolge an den Server (der sogenannte „Knock“). Mit einem SYN-Paket wird im Transmission Control Protocol normalerweise der Verbindungsaufbau eingeleitet, aber die Firewall blockiert diese Verbindungsversuche zunächst und antwortet nicht auf die Kommunikationsversuche, oder sie sendet ein RST-Paket und weist damit die Verbindung zunächst ab. Ein Port knocking Daemon hört aber mit, zum Beispiel indem er die Logdatei der Firewall auswertet, und öffnet bei korrekter Abfolge und Inhalt der SYN-Pakete den gewünschten Port in der Firewall.

Der Vorteil dieses Verfahrens ist, dass man ohne Kenntnis der zuvor vereinbarten Abfolge von SYN-Paketen von außen nicht feststellen kann, ob an einem Port ein Serverdienst lauscht – ein Portscan kann den Dienst nicht entdecken. Eingesetzt wird Port knocking deshalb vor allem, um Zugriffsmöglichkeiten für Fernwartung, zum Beispiel SSH, zu verbergen. Gut implementierte Dienste für entfernte Administration bieten zwar selbst schon durch Verschlüsselung des Kommunikationsweges und Authentifizierung Sicherheit vor unbefugtem Zugriff, aber es könnten Fehler in der Server-Software existieren, über die man auch ohne Authentifizierung die Gewalt über den Server erlangen könnte. Der Port knocking Daemon selbst kann allerdings auch Fehler enthalten, wodurch ein zuvor sicherer Server möglicherweise erst durch den Einsatz von Port knocking angreifbar wird.

Gegen Angreifer, die den Datenverkehr per Paket-Sniffer mitlesen, helfen verschlüsselte Hashwerte im Knock-Paket. Bei Man-in-the-middle-Angriffen bietet Port knocking prinzipiell keinen Schutz.

