Können die Telnet-oder Netcat-Clients über SSL kommunizieren?

Ich möchte Clientverbindungen mit IMAP über SSL, HTTPS und andere sichere textbasierte Internetprotokolle über SSL/TLS testen, genauso wie ich Telnet oder Netcat verwenden würde, wenn sie 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?

Author: sleske, 2011-10-15

4 answers

Es gibt keinen Telnet / Netcat-Client – es handelt sich um zwei separate Programme, und es gibt mindestens [[11]}10 verschiedene Telnet-Clients und mindestens 6 verschiedene Netcat-Versionen (original netcat, GNU netcat, OpenBSD netcat, nmap ' s ncat; den Rest vergessen).

Die bevorzugten Tools stammen aus TLS-Bibliotheken selbst. Sie könnten jedoch etwas ausführlich sein.

  • GnuTLS hat ein TLS-Client-Tool unter Linux:

    gnutls-cli imap.gmail.com -p 993
    

    Verwenden Sie -s für STARTTLS; sie müssen die erforderlichen Protokollbefehle manuell eingeben und Strg drückenD wenn bereit.

    Unterstützt IPv6, validiert standardmäßig Serverzertifikate.

  • OpenSSL hat ein TLS-client-tool:

    openssl s_client -connect imap.gmail.com:993
    

    Dies ist für alle Betriebssysteme verfügbar. STARTTLS wird über die Optionen -starttls imap oder -starttls smtp unterstützt,und das Programm verhandelt es automatisch. (Obwohl es die anfängliche Serverantwort danach wegwirft, aber es ist normalerweise gut.)

    Nur version ≥ 1.1 unterstützt IPv6.

    Nur Version ≥ 1.0.2 (IIRC) validiert standardmäßig das Serverzertifikat; ältere Versionen erfordern eine manuelle CApath-Spezifikation.

(Ich möchte auch Tools zum Testen von NSS und SChannel haben, konnte aber keine finden.)

Die Programme verwenden auch die gleichen Bibliotheken, haben aber möglicherweise weniger Konfigurationsregler. Einige überspringen sogar Peer-Zertifikatsprüfungen durch Standard...

  • Schockiert:

    socat openssl:imap.gmail.com:993 stdio
    

    readline modus kann für bequemlichkeit verwendet werden:

    socat ssl:imap.gmail.com:993 readline
    

    STARTTLS wird nicht unterstützt.

  • Ncat von nmap unterstützt TLS (aber nicht STARTTLS):

    ncat --ssl imap.gmail.com 993
    
  • Einige Telnet-Clients, wie das Paket telnet-ssl unter Debian, unterstützen auch TLS:

    telnet-ssl -z ssl imap.gmail.com 993
    

    STARTTLS können mit starttls aus dem Strg] escape-Menü.

 150
Author: user1686,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-05-05 11:54:51

Möchten Sie vielleicht zu schauen in openssl s_client:

openssl s_client -connect dummy.com:8443
 7
Author: dchampion,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-06-25 15:06:48

Es gibt ein Programm namens stunnel, das einen Client oder Server, der SSL nicht unterstützt, in ein Programm verwandelt, das für clientseitig, serverseitig oder beides funktioniert, und Sie sagen ihm, welchen Port Sie abhören und weiterleiten sollen.

Hinweis-Das ist ok-ish, obwohl ich das etwas anders formuliert hatte. Sie können sich frühere Bearbeitungen ansehen, um zu sehen, was ich geschrieben habe.

 2
Author: barlop,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-06-25 20:19:11

Wenn Sie plattformübergreifende Unterstützung benötigen, gibt es sclient (Git):

  • Erstellen Sie einen lokalen Server, der TLS für {[3 entpackt]}:
    sclient example.com:443 localhost:3000
      [listening] example.com:443 <= localhost:3000
    
  • Stellen Sie eine Anfrage an example.com über telnet:
    telnet localhost 3000
      Trying 127.0.0.1...
      Connected to localhost.
      Escape character is '^]'.
      GET / HTTP/1.1
      Host: example.com
      Connection: close 
    
 1
Author: coolaj86,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-06-25 15:05:29