stunnel を適切に使用するにはどうすればいいですか?

stunnel を適切に使用するにはどうすればいいですか?

Wireshark SSLデバッグを設定しようとしています。これを行うには、この記事

私は現在stunnelパートタイムで、実行しようとしています

sudo stunnel -p ps.pem -d 443 -r 8080

この出力は

Clients allowed=500
stunnel 4.53 on i686-pc-linux-gnu platform
Compiled/running with OpenSSL 0.9.8k 25 Mar 2009
Threading:PTHREAD SSL:ENGINE Auth:LIBWRAP Sockets:POLL,IPv6
Reading configuration from file -p
-p: No such file or directory (2)
Cannot read configuration

Syntax:
stunnel [<filename>] ] -fd <n> | -help | -version | -sockets
    <filename>  - use specified config file
    -fd <n>     - read the config file from a file descriptor
    -help       - get config file help
    -version    - display version and defaults
    -sockets    - display default socket options
str_stats: 1 block(s), 3 data byte(s), 34 control byte(s)

この場合、おそらくこれは予想されたことではありません。

提供された証明書を使用して stunnel を適切に使用するにはどうすればよいですか?

答え1

stunnel はバージョン 4 以降、下位互換性のない新しいインターフェースに変更されました。しかし、Debian は、/usr/bin/stunnel従来のインストールと連携するために、stunnel-3.x のように動作するラッパー スクリプトを同梱しています。このラッパー スクリプトは、従来の方法に従うと正しく動作しますが、小さな間違いがあると、ラッパー スクリプトはそれを処理せず、実際のバイナリからのエラー メッセージが/usr/bin/stunnel4表示されて混乱を招きます。

したがって、これを今後使用しないでください。バイナリman stunnel4を明示的に実行し/usr/bin/stunnel4、新しい構文を使用する必要があります。

stunnel 4.x 以降で何が変わったかを簡単に説明すると、コマンドラインで何も指定できなくなりました。実行できること、実行しなければならないことは、設定ファイルを作成し、ファイル名を唯一の引数として指定することだけです。

ここで、このような設定ファイルの書き方を説明します。

## this is an INI'ish file
##  
foreground = yes
sslVersion = all
pid =                     ## in most cases it is okay to leave pid empty
##  
## above are global options
##  
[ service_A ]             ## you can have as many as you want service sections
                          ## to listen on different ports , have different keys
                          ## and forward to different destinations
                          ##  
client = no               ##"client" set to "no" , mean stunnel speaks ssl on
                          ## listening port , and plaintext on the remote side
                          ## while "yes" is the reverse
verify = 0                ## do not check peer certification
cert = /etc/ssl/certs/stunnel.pem
accept = 443
connect = 80
[ another_section ]
...

ただし、このような単純な状況では stunnel を使用することは強くお勧めしません。socat の方がはるかに便利なユーティリティです。

socat openssl-listen:443,certificate=a.pem,fork tcp:localhost:80

これ以外にも、ソカットはとても甘くてシャープで、他にもたくさんの素晴らしいことができます。試してみると、間違いなく気に入るはずです。

関連情報