Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

3.6.2. stunnel を TLS Wrapper として設定

stunnel を設定するには、以下の手順に従います。
  1. stunnel に有効な証明書が必要になりますが、それを使用するサービスに関係なく必要です。適切な証明書がない場合は、認証局 に適用して取得するか、自己署名のセマンティクスを作成できます。
    警告
    実稼働環境で実行しているサーバーには、認証局が署名した証明書を常に使用してください。自己署名証明書は、テスト目的またはプライベートネットワークにのみ適しています。
    stunnel 用の自己署名証明書を作成するには、/etc/pki/tls/certs/ ディレクトリーを入力し、root で以下のコマンドを入力します。
    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 は 2 つの独立した暗号化プロトコルですが、TLS ここで使用することができます。
    • chroot : stunnel プロセスが実行され、セキュリティーを強化するために変更したルートディレクトリー。
    • setuid,setgid - stunnel プロセス nobody が実行するユーザーおよびグループは、制限されたシステムアカウントです。
    • pid : stunnel がプロセス ID を保存するファイル(と相対的に)。 chroot
    • Socket : ローカルおよびリモートのソケットオプション - この場合 は Nagle のアルゴリズム を無効にしてネットワークレイテンシーを向上させます。
    • [service_name] : サービス定義の開始 - この行で使用されているオプションは指定のサービスにのみ適用されますが、上記のオプションは stunnel にグローバルに影響します。
    • accept : リッスンするポート
    • connect : 接続するポート。これは、セキュリティー保護するサービスに使用するポートでなければなりません。
    • TIMEOUTclose : クライアントから close_notify アラートを待機する秒数。stunnel が全く待機しないように 0 指示します。
    • options : OpenSSL ライブラリーオプション

    例3.1 OpenLDAP のセキュリティー保護

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

    例3.2 CUPS のセキュリティー保護

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