Portknocking
Portknocking 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 Portknocking-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 Portknocking 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 Portknocking-Daemon selbst kann allerdings auch Fehler enthalten, wodurch ein zuvor sicherer Server möglicherweise erst durch den Einsatz von Portknocking 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 Portknocking prinzipiell keinen Schutz. Dienste, die für die Allgemeinheit im Internet angeboten werden, etwa ein Webserver, kann man mit Portknocking ebenfalls nicht absichern.
Literatur
- Roland Bless, Stefan Mink, Erik-Oliver Blaß, Michael Conrad, Hans-Joachim Hof, Kendy Kutzner, Marcus Schöller: Sichere Netzwerkkommunikation. Springer Verlag, Berlin / Heidelberg 2005, ISBN 3-540-21845-9.
- Leonard Barolli, Fatos Xhafa, Kangbin Yim (Hrsg.): Advances on Broad-Band Wireless Computing, Communication and Applications. Springer International Publishing, New York 2017, ISBN 978-3-319-49105-9.
- Joachim Biskup, Javier López: Computer Security – ESORICS 2007. Springer Verlag, Berlin / Heidelberg 2007, ISBN 978-3-540-74834-2.
Weblinks
- portknocking.org (türkisch & englisch)
- Remote einloggen mit Port Knocking (ADMIN-Magazin)
- How to use Port Knocking on Ubuntu to hide the SSH port (abgerufen am 3. August 2017)
- Improved Port Knocking with Strong Authentication (abgerufen am 3. August 2017)
- Port Knocking: Beyond the Basics (abgerufen am 3. August 2017)