connection – telnet や netcat クライアントは SSL で通信できますか?

connection netcat ssl telnet tls

SSL、HTTPS、その他のセキュアなテキストベースのインターネットプロトコルをSSL/TLSを介してIMAPとのクライアント接続をテストしたいのですが、telnetやnetcatがセキュアなプロトコルを介してトンネルされていない場合と同じ方法でテストしたいのです。telnetやnetcatをパイプや代替プログラムなどを使ってSSL/TLSを通過させる方法はありますか?

  67  user553702  2011-10-15


ベストアンサー

Telnet/Netcat クライアントは存在しません – それらは 2 つの別個のプログラムであり、少なくとも 10 種類の Telnet クライアントと 6 種類の Netcat バージョン (オリジナルの netcat, GNU netcat, OpenBSD netcat, nmap’s ncat; 残りは忘れてしまいました) が存在します

好ましいツールは、TLS ライブラリ自体から提供されています。少し冗長かもしれませんが

  • GnuTLSにはLinux上のTLSクライアントツールがあります

    gnutls-cli imap.gmail.com -p 993
    

    STARTTLS には -s を使用してください。必要なプロトコルコマンドを手動で入力し、準備ができたら CtrlD を押してください

    IPv6 をサポートし、デフォルトでサーバ証明書を検証します

  • OpenSSLにはTLSクライアントツールがあります

    openssl s_client -connect imap.gmail.com:993
    

    これはすべてのオペレーティングシステムで利用可能です。STARTTLSは-starttls imapまたは-starttls smtpオプションでサポートされており、プログラムが自動的にネゴシエートします。(ネゴシエートした後に最初のサーバからの返信を捨ててしまいますが、通常は問題ありません)

    バージョン1.1以上のみIPv6に対応しています

    バージョン1.0.2以上(IRC)のみがデフォルトでサーバ証明書を検証します

(NSSやSChannelをテストするためのツールも欲しいのですが、見つかりませんでした)

プログラムも同じライブラリを使用していますが、設定ノブの数は少ないかもしれません。いくつかのプログラムはデフォルトでピア証明書のチェックをスキップします

  • socat:

    socat openssl:imap.gmail.com:993 stdio
    

    readlineモードを便利に使うことができます

    socat ssl:imap.gmail.com:993 readline
    

    STARTTLSはサポートされていません

  • nmap の ncat は TLS をサポートしています(STARTTLS はサポートしていません)

    ncat --ssl imap.gmail.com 993
    
  • Debian の telnet-ssl パッケージのようないくつかの Telnet クライアントは TLS もサポートしています

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

    STARTTLSは、Ctrl]のエスケープメニューからstarttlsを使用して起動することができます

147  user1686  2011-10-15


openssl s_clientを見てみるといいかもしれません

openssl s_client -connect dummy.com:8443

5  dchampion  2015-04-22


stunnelと呼ばれるプログラムがあります。これはSSLをサポートしていないクライアントやサーバをサポートしているものに変え、クライアント側、サーバ側、あるいはその両方で動作します

注:これは少し違う言い方をしていましたが、大丈夫です。私が書いたものを見るために、以前の編集を見ることができます

2  barlop  2015-04-14


クロスプラットフォームのサポートが必要な場合は、sclient (Git) があります

  • example.comのTLSをアンラップするローカルサーバーを作成します。
    sclient example.com:443 localhost:3000 [listening] example.com:443 <= localhost:3000
  • example.comtelnet経由でリクエストを行う。
    telnet localhost 3000 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. GET / HTTP/1.1 Host: example.com Connection: close

1  coolaj86  2018-08-07


タイトルとURLをコピーしました