Show Table of Contents
4.9. stunnel の使用
stunnel プログラムは、クライアントとサーバー間の暗号化ラッパーです。設定ファイルで指定されたポートをリッスンし、クライアントとの通信を暗号化し、通常のポートでリッスンしているオリジナルのデーモンにデータを転送します。こうすることで、それ自体で暗号化をサポートしていないサービスをセキュアにすることができます。また、SSL バージョン 2 や 3 など、POODLE SSL 脆弱性 (CVE-2014-3566) の影響を受け、安全上の理由から使用を避けたい暗号化サービスのセキュリティーを改善することもできます。詳細は、https://access.redhat.com/solutions/1234773 を参照してください。CUPS は、自身の設定で SSL を無効にする方法がないコンポーネントの例です。
4.9.1. stunnel のインストール
stunnel パッケージをインストールするには、
root で以下のコマンドを実行します。
~]# yum install stunnel4.9.2. stunnel の TLS ラッパーとしての設定
stunnel の設定は、以下の手順にしたがいます。
- stunnel とどのサービスを使うにしても、有効な証明書が必要になります。適切な証明書がない場合は、認証機関 に申し込むか、自己署名の証明書を自身で作成することもできます。
警告
実稼働環境で稼働しているサーバーには、常に認証機関で署名された証明書を使用してください。自己署名証明書は、テスト目的またはプライベートネットワークのみで使用することをお勧めします認証局が提供する証明書についての詳細情報は、「証明書署名要求の作成」 を参照してください。stunnel 用に自己署名証明書を作成するには、rootで/etc/pki/tls/certs/ディレクトリーに移動し、以下のコマンドを実行します。certs]#
make stunnel.pemすべての質問に回答して、プロセスを完了します。 - 証明書ができたら、stunnel 用の設定ファイルを作成します。これはテキストファイルで、各行でオプションまたはサービス定義の開始を指定します。また、コメントや空の行使って、読みやすくすることもできます。コメントはセミコロンで開始します。stunnel RPM パッケージには
/etc/stunnel/ディレクトリーが含まれ、設定ファイルはここで保存します。stunnel ではファイル名で特定の形式や拡張子は必要ありませんが、/etc/stunnel/stunnel.confとしてください。以下のコンテンツでは、stunnel を TLS ラッパーとして設定します。cert = /etc/pki/tls/certs/stunnel.pem ; Allow only TLS, thus avoiding SSL sslVersion = TLSv1 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
別の方法では、sslVersion = TLSv1の行を以下の行で置き換えると SSL を避けられます。options = NO_SSLv2 options = NO_SSLv3
オプションの目的は、以下のとおりです。cert— 証明書へのパスです。sslVersion— SSL のバージョンです。SSL と TLS は別個の暗号化プロトコルですが、ここではTLSが使えることに注意してください。chroot— 変更後の root ディレクトリーです。ここでは、stunnel プロセスがより安全に実行できます。setuid,setgid— stunnel プロセスを実行するユーザーおよびグループ。nobodyは制限されたシステムアカウントになります。pid— stunnel がプロセス ID を保存するファイルで、chrootに相対的になります。socket— ローカルおよびリモートのソケットオプション。このケースでは、ネーグルのアルゴリズムを無効にして、ネットワーク遅延を改善します。[service_name]— サービ定義の開始点。この下に続く行で使用されるオプションは、該当サービスのみに適用されます。この上にあるオプションは、 stunnel でグローバルに適用されます。accept— リッスンするポートです。connect— 接続先のポートです。このポートは、セキュアにしているサービスが使用するものである必要があります。TIMEOUTclose— クライアントから close_notify 警告が出されるまでの待ち時間です。これが0の場合は、stunnel はまったく待機しません。options— OpenSSL ライブラリーのオプション。
例4.10 CUPS のセキュア化
CUPS 用に stunnel を TLS ラッパーとして設定するには、以下の値を使用します。[cups] accept = 632 connect = 631
632の代わりに使用されていないポートを使うこともできます。631は CUPS が通常使用するポートです。 chrootディレクトリーを作成し、setuidオプションで指定されているユーザーにこのディレクトリーへの書き込みアクセスを与えます。これを行うには、rootで以下のコマンドを実行します。~]#
mkdir /var/run/stunnel~]#chown nobody:nobody /var/run/stunnelこれで、stunnel が PID ファイルを作成できるようになります。- 使用中のシステムでファイアウォールが新たなポートへのアクセスを許可しない設定となっている場合は、この設定を許可するように変更します。詳細は、「ファイアウォールのポート開放」 を参照してください。
- 設定ファイルと
chrootディレクトリーを作成し、指定されたポートがアクセス可能なことを確認したら、stunnel を開始することができます。
4.9.3. stunnel の起動、停止、再起動
stunnel を起動するには、
root で以下のコマンドを実行します。
~]# stunnel /etc/stunnel/stunnel.conf
デフォルトでは、stunnel は出力のログに
/var/log/secure を使用します。
stunnel を停止するには、
root で以下のコマンドを実行してプロセスを強制終了させます。
~]# kill `cat /var/run/stunnel/stunnel.pid`
stunnel の実行中に設定ファイルを編集した場合は、stunnel を停止して再起動すると、変更が反映されます。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.