Ich muss überprüfen, ob ein OpenVPN-Server (UDP) auf einem bestimmten Host-Port verfügbar ist.
Ich besitze nur einen einfachen Windows XP-Computer ohne OpenVPN-Client (und ohne die Möglichkeit, ihn zu installieren) und ohne die für die Verbindung zum Server erforderlichen Schlüssel. Ich verfüge lediglich über die üblichen WinXP-Befehlszeilentools, einen Browser und PuTTY.
Wenn ich so etwas wie einen SMTP- oder POP3-Server testen würde, würde ich Telnet verwenden und sehen, ob es reagiert, aber wie geht das mit OpenVPN (UDP)?
tls-auth
Konfigurationsoption verwendet, ist dies UNMÖGLICH (wenn Sie nicht mindestens den äußeren Wrapper-Schlüssel haben)! Jedes Paket mit einer falschen HMAC-Signatur wird ohne Antwort vom Server verworfen.Antworten:
Hier ist ein Shell-Einzeiler:
Wenn es auf der anderen Seite ein OpenVPN gibt, wird es ausgegeben
Andernfalls wird es nur nach 10 Sekunden stumm geschaltet und es wird eine Zeitüberschreitung angezeigt.
HINWEIS: Dies funktioniert nur, wenn die
tls-auth
Konfigurationsoption nicht aktiviert ist. Andernfalls weist der Server Nachrichten mit falschem HMAC zurück.quelle
tls-auth
Konfigurationsoption zum Verwerfen von Paketen mit falschem HMAC-Sig verwendet.od -x -N 14
stattcat -v
ist viel nützlicher, weil Sie a) den tatsächlichen binären Inhalt anstelle von ASCII-Müll sehen und b) jede Ausgabezeile sofort empfangen können, wenn der Server jedes Handshake-Paket sendet und es sofort nach dem ersten anhält.-N 14
weil das Handshake-Paket 14 Bytes lang ist und sich nur wiederholt.Entschuldigung, wenn ich mit meiner Antwort etwas zu spät komme;)
Senden Sie ein udp-Paket mit folgendem Inhalt:
$ 38 $ 01 $ 00 $ 00 $ 00 $ 00 $ 00 $ 00
Der Server muss etwas antworten.
Sie können udp-Pakete mit Python wie folgt fälschen:
quelle
tls-auth
.Sie können versuchen, Folgendes in der CLI auszuführen
Dies sollte alle Prozesse auflisten, die auf Ihrem Server / System empfangsbereit sind. Grep nach der gewünschten Portnummer
quelle
Für alle Benutzer, die versuchen, einen
tls-auth
aktivierten Server zu überwachen , können Sie das Python-Skript hier verwenden: https://github.com/liquidat/nagios-icinga-openvpnDie Ausgabe ist für die Verwendung in Nagios oder Icinga formatiert, kann jedoch von jedem / jeder ausgeführt werden, vorausgesetzt, Sie haben Python und die tls-Schlüsseldatei verfügbar.
Wenn Sie beispielsweise
SHA256
als Digest verwenden, verwenden Sie Folgendes:python check-openvpn.py -p 1194 --tls-auth ta.key --digest SHA256 vpn-server.example.com
Hinweis:
--tls-auth-inverse
Abhängig vomkey-direction
Wert des Servers müssen Sie möglicherweise hinzufügen .quelle
Wenn Sie einen Teil der gültigen Interaktion zwischen OpenVPN-Client und OpenVPN-Server erhalten, können Sie die ersten Pakete mit etwas wie netcat modellieren, wie von TiZon vorgeschlagen.
Grundsätzlich möchten Sie genug von einem gültigen ersten Paket haben, damit der Server mindestens mit einer Fehlermeldung antwortet. Es muss also nicht perfekt sein, sondern nur gut genug.
Ich habe versucht, http://pcapr.net aufzurufen , habe dort jedoch kein OpenVPN-Beispiel gesehen. Wenn jemand anderes behauptet, der Dienst sei in Betrieb, könnten Sie ihn möglicherweise dazu bringen, einen Teil der Transaktion zu übernehmen.
quelle
Wenn Sie OpenVPN auf einem TCP-Listen eingerichtet haben, ist es so einfach wie
Angenommen, 1194 ist der Port, den Sie abhören
Dies sollte Ihnen eine Art Antwort geben, um zu zeigen, dass der OpenVPN-Server lauscht
quelle