Ich möchte Clientverbindungen mit IMAP über SSL, HTTPS und andere sichere textbasierte Internetprotokolle über SSL / TLS testen, genauso wie ich es mit Telnet oder Netcat tun würde, wenn diese nicht über ein sicheres Protokoll getunnelt würden. Gibt es eine Möglichkeit, Telnet oder Netcat dazu zu bringen, SSL / TLS zu durchlaufen, z. B. mit einer Pipe oder einem alternativen Programm?
62
Antworten:
Es gibt keinen Telnet / Netcat-Client - es handelt sich um zwei separate Programme, und es gibt mindestens 10 verschiedene Telnet-Clients und mindestens 6 verschiedene Netcat-Versionen (Original- Netcat , GNU- Netcat , OpenBSD- Netcat , nmaps ncat; den Rest vergessen).
Die bevorzugten Tools stammen aus TLS-Bibliotheken. Sie könnten jedoch etwas ausführlich sein.
GnuTLS hat ein TLS-Client-Tool unter Linux:
Verwenden Sie
-s
für STARTTLS; Sie müssen die erforderlichen Protokollbefehle manuell eingeben und drücken, CtrlDwenn Sie fertig sind.Unterstützt IPv6 und überprüft standardmäßig Serverzertifikate.
OpenSSL verfügt über ein TLS-Client-Tool:
Dies ist für alle Betriebssysteme verfügbar. STARTTLS wird über
-starttls imap
oder-starttls smtp
Optionen unterstützt und das Programm wird es automatisch aushandeln. (Die erste Serverantwort wird danach zwar verworfen, ist aber normalerweise in Ordnung.)Nur Version ≥ 1.1 unterstützt IPv6.
Nur Version ≥ 1.0.2 (IIRC) überprüft das Serverzertifikat standardmäßig. ältere Versionen erfordern die manuelle Angabe des Pfads.
(Ich möchte auch Tools zum Testen von NSS und SChannel haben, konnte aber keine finden.)
Die Programme verwenden auch dieselben Bibliotheken, haben jedoch möglicherweise weniger Konfigurationsknöpfe. Einige überspringen sogar standardmäßig die Überprüfung von Peer-Zertifikaten ...
socat :
Der Readline- Modus kann wie folgt verwendet werden:
STARTTLS wird nicht unterstützt.
ncat von nmap unterstützt TLS (aber nicht STARTTLS):
Einige Telnet-Clients, wie das Paket telnet-ssl unter Debian, unterstützen auch TLS:
STARTTLS kann über
starttls
das Ctrl]Escape-Menü aktiviert werden .quelle
s_client
unterstützt IPv6 in der Version 1.1.s_client
haben eine "nützliche" Funktion, bei der Zeilen, die mit R oder Q beginnen, als Befehle behandelt werden (siehe Handbuch ). Verwenden Sie-ign_eof
, um dies zu deaktivieren. Wird auchs_client
dann fortgesetzt, wenn die Überprüfung fehlschlägt. Sie müssen überprüfen, ob dort "Verify return code: 0 (ok)" steht und hoffen, dass der Server nicht versucht, diese Nachricht zu fälschen. Besser zu benutzen,gnutls-cli
wenn möglich.-verify_return_error
dafür.Vielleicht möchten Sie sich openssl s_client ansehen , z
quelle
Ja, es gibt ein Programm namens Stunnel
es hat eine Konfigurationsdatei,
Sie geben an, welchen Port Sie abhören und an welchen Port Sie weiterleiten möchten.
es funktioniert für Client-Seite oder Server-Seite oder beides.
Auf diese Weise kann ein Server, der ssl nicht unterstützt, effektiv zu einem Server werden, der ssl nicht unterstützt.
oder ein Client, der ssl nicht unterstützt, effektiv einer, der dies tut.
oder stellen Sie sicher, dass sowohl ein Client als auch ein Server eine SSL-Verbindung haben.
quelle
Es gibt auch sclient ( git ), wenn Sie plattformübergreifende Unterstützung benötigen (z. B. Windows).
Erstellen Sie einen lokalen Server, der tls für example.com entpackt
Stellen Sie mit telnet eine Anfrage an example.com
quelle