SSLに非対応のクライアントまたはサーバをSSLに対応させる Stunnel

Stunnelを使うと、SSLに対応していないメールソフトやファイル転送ソフトをSSL暗号化通信に対応させたり、SSLの設定がされていないメールサーバやファイルサーバをSSLに対応させたりすることができます。

SSLに対応していないこれらのプロトコルでは、ログイン時のアカウントやパスワードを含む送信内容は暗号化されておらずそのままのテキストまたは複合化可能なテキストで送信されるため、 通信経路で悪意のあるユーザに盗み見られる(盗聴)危険性があります。

サーバ側でSSLに対応した代替のサービスが用意されていたとしても、クライアント側のソフトが対応していなかった場合、 使い慣れたソフトの使用をあきらめ、別のSSLに対応しているソフトに変更しなければならないということになります。
またサーバ側についても様々なサービスを個別にSSLの設定をするのは面倒ですし、SSLの設定がされていない既存のサービスを変更するのは手間のかかるものです。

そこでSSLに対応していないアプリケーションやサービスのポートを、SSLに対応した外部ポートに切り替える(マッピング)というソフトが汎用SSL WrapperのStunnelです。
UNIX系OSでもWindowsでもインストールが可能で、Stunnel 自体をインストールするのは使用する端末と同じ端末内でもよいし、別の端末でも大丈夫です。

サービス暗号化なし暗号化あり
プロトコル名ポート番号プロトコル名ポート番号
メール受信POP3110POP3s995
メール受信IMAP143IMAPs993
メール送信SMTP25/587SMTPs465
ファイル転送FTP21FTPs21
ウェブHTTP80HTTPS443
ディレクトリアクセスLDAP389LDAPS636

厳密にはSSL(Secure Socket Layer)ではなくTLS(Transport Layer Security)が使用されるものもある。

Stunnel公式サイト
ダウンロード
Windows用ダウンロード

TLSまたはSSLプロトコルの実装にはOpenSSLやSSLeayなどのライブラリが別途必要になる場合がある。

Stunnelのインストール(Windows)









スタートメニューにはサービスの登録・解除のためのショートカットなどが作成されます。

Stunnelの実行(Windows)

Stunnelを実行するとWindowsセキュリティの重要な警告コンピュータを保護するため、このプログラムの機能の一部がWindowsファイアウォールでブロックされています。と表示されることがありますが、別端末からの接続を許可する場合は『ブロックを解除する』をクリックします。


実行中はタスクトレイに表示されます。


動作の状況は次のように表示されます。

Stunnelの設定(Windows)

Stunnelの設定はstunnel.confで行います。
stunnel.confの記述法

C:\Program Files\stunnel\stunnel.conf
; Sample stunnel configuration file by Michal Trojnara 2002-2006
; Some options used here may not be adequate for your particular configuration

; Certificate/key is needed in server mode and optional in client mode
; The default certificate is provided only for testing and should not
; be used in a production environment
cert = stunnel.pem
;key = stunnel.pem

; Some performance tunings
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1

; Workaround for Eudora bug
;options = DONT_INSERT_EMPTY_FRAGMENTS

; Authentication stuff
;verify = 2
; Don't forget to c_rehash CApath
;CApath = certs
; It's often easier to use CAfile
;CAfile = certs.pem
; Don't forget to c_rehash CRLpath
;CRLpath = crls
; Alternatively you can use CRLfile
;CRLfile = crls.pem

; Some debugging stuff useful for troubleshooting
;debug = 7
;output = stunnel.log

; Use it for client mode
;client = yes

; Service-level configuration

[pop3s]
accept  = 995
connect = 110

[imaps]
accept  = 993
connect = 143

[ssmtp]
accept  = 465
connect = 25

;[https]
;accept  = 443
;connect = 80
;TIMEOUTclose = 0

; vim:ft=dosini

スポンサーリンク

関連記事

スポンサーリンク

clearTimeout

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る