3.6.2. stunnel を TLS ラッパーとして設定する

stunnel の設定は、以下の手順にしたがいます。
  1. stunnel とどのサービスを使うにしても、有効な証明書が必要になります。適切な証明書がない場合は、認証機関 に申し込むか、自己署名の証明書を自身で作成することもできます。

    警告

    実稼働環境で稼働しているサーバーには、常に認証機関で署名された証明書を使用してください。自己署名証明書は、テスト目的またはプライベートネットワークのみで使用することをお勧めします
    stunnel 用に自己署名証明書を作成するには、root/etc/pki/tls/certs/ ディレクトリーに移動し、以下のコマンドを実行します。
    certs]# make stunnel.pem
    すべての質問に回答して、プロセスを完了します。
  2. 証明書ができたら、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, setgidstunnel プロセスを実行するユーザーおよびグループ。nobody は制限されたシステムアカウントになります。
    • pidstunnel がプロセス ID を保存するファイルで、chroot に相対的になります。
    • socket — ローカルおよびリモートのソケットオプション。このケースでは、ネーグルのアルゴリズムを無効にして、ネットワーク遅延を改善します。
    • [service_name] — サービ定義の開始点。この下に続く行で使用されるオプションは、該当サービのみに適用されます。この上にあるオプションは、 stunnel でグローバルに適用されます。
    • accept — リッスンするポートです。
    • connect — 接続先のポートです。このポートは、セキュアにしているサービスが使用するものである必要があります。
    • TIMEOUTclose — クライアントから close_notify 警告が出されるまでの待ち時間です。これが 0 の場合は、stunnel はまったく待機しません。
    • options — OpenSSL ライブラリーのオプション。

    例3.1 OpenLDAP のセキュア化

    2.4.39 以前の OpenLDAP で stunnel を TLS ラッパーとして設定するには、以下の値を使用します。
    [openldap]
    accept = 636
    connect = 389
    636 は、セキュアな LDAP の標準ポートです。389 は、OpenLDAP デーモンがリッスンするポートです。

    例3.2 CUPS のセキュア化

    同様に、CUPS 用に stunnel を TLS ラッパーとして設定するには、以下の値を使用します。
    [cups]
    accept = 632
    connect = 631
    632 の代わりに使用されていないポートを使うこともできます。631CUPS が通常使用するポートです。
  3. chroot ディレクトリーを作成し、setuid オプションで指定されているユーザーにこのディレクトリーへの書き込みアクセスを与えます。これを行うには、root で以下のコマンドを実行します。
    ~]# mkdir /var/run/stunnel
    ~]# chown nobody:nobody /var/run/stunnel
    これで、stunnel が PID ファイルを作成できるようになります。
  4. 使用中のシステムでファイアウォールが新たなポートへのアクセスを許可しない設定となっている場合は、この設定を許可するように変更します。詳細は、「ファイアウォール」「他のポート」 を参照してください。
  5. 設定ファイルと chroot ディレクトリーを作成し、指定されたポートがアクセス可能なことを確認したら、stunnel を開始することができます。