Menu Close

Red Hat Training

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

4.8.2. stunnel を TLS Wrapper として設定する

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 は 2 つの独立した暗号化プロトコルですが、ここでは TLS を使用できることに注意してください。
    • chroot — セキュリティーを強化するために stunnel プロセスが実行される変更された root ディレクトリー
    • setuidsetgidstunnel プロセスが実行されるユーザーとグループ。nobody は制限されたシステムアカウントです
    • pidstunnel がプロセス ID を保存するファイル。chroot に対して相対的です
    • socket — ローカルおよびリモートのソケットオプション。この場合、ネットワーク遅延を改善するために Nagle のアルゴリズム を無効にします。
    • [service_name] — サービス定義の始まり。この行より下で使用されるオプションは指定されたサービスのみに適用され、上のオプションは stunnel にグローバルに影響します。
    • accept — リッスンするポート
    • connect — 接続先のポート。これは、セキュリティー保護対象のサービスが使用するポートである必要があります
    • TIMEOUTclose — クライアントからの close_notify アラートを待機する秒数。0 は、stunnel にまったく待機しないように指示します
    • options — OpenSSL ライブラリーオプション

    例4.3 CUPS のセキュア化

    stunnel を CUPS の 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. システムが新しいポートへのアクセスを許可しないファイアウォール設定を使用している場合は、それに応じて変更してください。詳細は「GUI を使用してポートを開く」を参照してください。
  5. 設定ファイルと chroot ディレクトリーを作成し、指定したポートにアクセスできることを確認したら、stunnel を使い始める準備が整ったことになります。