ユーザ用ツール

サイト用ツール


サイドバー

目次

ホーム










.

tools:stunnel


stunnelを使った暗号化通信

stunnelとは

https://www.stunnel.org/

暗号化されていない通信を暗号化します。
SSLプロトコルで包むことができるツールです。

stunnelの特徴
  • stunnelは、クライアントに常駐し、事前処理がいらない。
  • 暗号化の目的だけではなく、一般には公開されていない証明書を使った通信をするためにも使われる。
利用例
  • httpをhttpsへ
  • pop3をpop3 over sslへ
  • imap4をimap4 over sslへ
  • smtpをsmtp over sslへ


Linuxで、stunnelをインストール

RPMパッケージのインストール

~]# yum install stunnel
~]# ls -lh /etc/stunnel/stunnel.conf

ソースからインストール

yum install -y gcc openssl-devel tcp_wrappers-devel
curl -o latest-stunnel-version.tar.gz https://www.stunnel.org/downloads/latest-stunnel-version.tar.gz
tar xvfz latest-stunnel-version.tar.gz
cd latest-stunnel-version/
./configure
make
make install
ln -s /usr/local/bin/stunnel /bin/stunnel


stunnelの設定

yumでインストールしたデフォルトの設定ファイルは、/etc/stunnel/stunnel.conf です。
起動時に設定ファイルを指定することによって、任意の設定ファイルを利用できます。

cert = /etc/pki/tls/certs/stunnel.pem
; Allow only TLS, thus avoiding SSL
sslVersion = TLSv1.2
chroot = /var/run/stunnel
setuid = nobody
setgid = nobody
pid = /stunnel.pid
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1

[service_name]
accept = port
connect = port
TIMEOUTclose = 0

上の例では、以下でPIDのディレクトリ設定が必要です。

~]# mkdir /var/run/stunnel
~]# chown nobody:nobody /var/run/stunnel


接続設定

### localの10800に接続すると、相手先の443に接続する例
[test-tasha]
accept  = localhost:10800
connect = x.x.x.x:443
TIMEOUTclose = 0


Proxy経由で接続

[ssh_over_ssl]
client = yes
accept = 9999
protocol = connect
protocolHost = example.com:443  #接続先
connect = x.x.x.x:8888   #Porxy
接続テスト
$ stunnel /etc/stunnel/stunnel.conf
$ ssh -p 9999 localhost
localhostの9999に接続すると、ProxyServer(x.x.x.x:8888)を経由して、接続先(example.com:443)へ行く。


証明書

stunnel 用に自己署名証明書の作成

cd /etc/pki/tls/certs/
make stunnel.pem


stunnel の起動、停止、再起動

コマンドで実行する場合

~]# stunnel /etc/stunnel/stunnel.conf
~]# kill `cat /var/run/stunnel/stunnel.pid`


stunnelのログ

デフォルトでは、/var/log/secure になります。


参考


tools/stunnel.txt · 最終更新: 2021/10/14 15:18 by kurihara

ページ用ツール