Squid サービスでの SSL Bump の設定

Squid サービスで SSL Bump を設定するには:

  1. 使用している Squid サービスが必要なオプションをサポートしていることを確認します。この操作には、次のコマンドを実行します:

    squid -v

    configure options パラメータの値に --enable-ssl-crtd および --with-openssl が含まれている必要があります。

  2. Squid サービスのディレクトリに移動します。この操作には、次のコマンドを実行します:

    cd /etc/squid

  3. 自己署名 SSL 証明書を作成します。この操作には、次のコマンドを実行します:

    openssl req -new -newkey rsa:2048 -days <証明書の有効期間の日数> -nodes -x509 -keyout squidCA.pem -out squidCA.pem

    自己署名 SSL 証明書のフィールドに入力するよう求められます。

  4. 自己署名 SSL 証明書のフィールドに入力します。
  5. ブラウザーにインポートするための信頼する証明書を作成します。この操作には、次のコマンドを実行します:

    openssl x509 -in squidCA.pem -outform DER -out squid.der

  6. squid.der ファイルを、ローカルコンピューターユーザーのブラウザーにインポートします。

    squid.der ファイルをブラウザーにインポートする方法は、ブラウザーの種別によって異なります。

  7. 自己署名証明書ファイルを使用するための権限を設定します。この操作には、使用しているオペレーティングシステムに応じて、以下のコマンドを実行します:
    • CentOS、Red Hat Enterprise Linux、SUSE Linux Enterprise Server:

      chown squid:squid squidCA.pem

      chmod 400 squidCA.pem

    • Ubuntu、Debian:

      chown proxy:proxy squidCA.pem

      chmod 400 squidCA.pem

  8. 将来の証明書のためのディレクトリを作成します。この操作には、使用しているオペレーティングシステムに応じて、以下のコマンドを実行します:
    • CentOS、Red Hat Enterprise Linux:

      mkdir -p /var/lib/squid

      /usr/lib64/squid/ssl_crtd -c -s /var/lib/squid/ssl_db

      chown -R squid:squid /var/lib/squid

    • Ubuntu:

      mkdir -p /var/lib/squid

      /usr/lib/squid/ssl_crtd -c -s /var/lib/squid/ssl_db

      chown -R proxy:proxy /var/lib/squid

    • SUSE Linux Enterprise Server:

      mkdir -p /var/lib/squid

      /usr/sbin/ssl_crtd -c -s /var/lib/squid/ssl_db

      chown -R squid:squid /var/lib/squid

    • Debian では、Squid サービスは既定では SSL Bump をサポートしません。Squid サービスを SSL Bump のサポートを有効にしてコンパイルした場合は、今後の証明書のためのディレクトリを作成します:

      mkdir -p /var/lib/squid

      <コンパイル時に指定したパス>/ssl_crtd -c -s /var/lib/squid/ssl_db

      chown -R <コンパイル時に指定したユーザー>:<コンパイル時に指定したグループ> /var/lib/squid

  9. Squid サービスの設定を変更します。それには、ファイル /etc/squid/squid.conf で次の操作を実行します:
    1. http_port 3128http_port 3128 ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/etc/squid/squidCA.pem に置き換えます。
    2. ファイルの末尾に次の行を追加します:
      • CentOS、Red Hat Enterprise Linux:

        sslcrtd_program /usr/lib64/squid/ssl_crtd -s /var/lib/squid/ssl_db -M 4MB

        sslcrtd_children 5

        ssl_bump server-first all

        sslproxy_cert_error deny all

      • Ubuntu:

        sslcrtd_program /usr/lib/squid/ssl_crtd -s /var/lib/squid/ssl_db -M 4MB

        sslcrtd_children 5

        ssl_bump server-first all

        sslproxy_cert_error deny all

      • SUSE Linux Enterprise Server:

        sslcrtd_program /usr/sbin/ssl_crtd -s /var/lib/squid/ssl_db -M 4MB

        sslcrtd_children 5

        ssl_bump server-first all

        sslproxy_cert_error deny all

      • Debian(Squid サービスを SSL Bump のサポートを有効にしてコンパイルした場合):

        sslcrtd_program <コンパイル時に指定したパス>/ssl_crtd -s /var/lib/squid/ssl_db -M 4MB

        sslcrtd_children 5

        ssl_bump server-first all

        sslproxy_cert_error deny all

    3. 信頼するドメインの証明書の確認を除外する場合は、以下の行を追加します:
      • CentOS、Red Hat Enterprise Linux:

        sslcrtd_program /usr/lib64/squid/ssl_crtd -s /var/lib/squid/ssl_db -M 4MB

        sslcrtd_children 5

        ssl_bump server-first all

        acl BrokenButTrustedServers dstdomain <example.com>

        sslproxy_cert_error allow BrokenButTrustedServers

        sslproxy_cert_error deny all

      • Ubuntu:

        sslcrtd_program /usr/lib/squid/ssl_crtd -s /var/lib/squid/ssl_db -M 4MB

        sslcrtd_children 5

        ssl_bump server-first all

        acl BrokenButTrustedServers dstdomain <example.com>

        sslproxy_cert_error allow BrokenButTrustedServers

        sslproxy_cert_error deny all

      • SUSE Linux Enterprise Server:

        sslcrtd_program /usr/sbin/squid/ssl_crtd -s /var/lib/squid/ssl_db -M 4MB

        sslcrtd_children 5

        ssl_bump server-first all

        acl BrokenButTrustedServers dstdomain <example.com>

        sslproxy_cert_error allow BrokenButTrustedServers

        sslproxy_cert_error deny all

      • Debian(Squid サービスを SSL Bump のサポートを有効にしてコンパイルした場合):

        sslcrtd_program <コンパイル時に指定したパス>/ssl_crtd -s /var/lib/squid/ssl_db -M 4MB

        sslcrtd_children 5

        ssl_bump server-first all

        acl BrokenButTrustedServers dstdomain <example.com>

        sslproxy_cert_error allow BrokenButTrustedServers

        sslproxy_cert_error deny all

    4. すべてのドメインの証明書の確認を無効にする場合は、以下の行を追加します:
      • CentOS、Red Hat Enterprise Linux:

        sslcrtd_program /usr/lib64/squid/ssl_crtd -s /var/lib/squid/ssl_db -M 4MB

        sslcrtd_children 5

        ssl_bump server-first all

        sslproxy_cert_error allow all

        sslproxy_flags DONT_VERIFY_PEER

      • Ubuntu:

        sslcrtd_program /usr/lib/squid/ssl_crtd -s /var/lib/squid/ssl_db -M 4MB

        sslcrtd_children 5

        ssl_bump server-first all

        sslproxy_cert_error allow all

        sslproxy_flags DONT_VERIFY_PEER

      • SUSE Linux Enterprise Server:

        sslcrtd_program /usr/sbin/squid/ssl_crtd -s /var/lib/squid/ssl_db -M 4MB

        sslcrtd_children 5

        ssl_bump server-first all

        sslproxy_cert_error allow all

        sslproxy_flags DONT_VERIFY_PEER

      • Debian(Squid サービスを SSL Bump のサポートを有効にしてコンパイルした場合):

        sslcrtd_program <コンパイルの設定に応じたパス>/ssl_crtd -s /var/lib/squid/ssl_db -M 4MB

        sslcrtd_children 5

        ssl_bump server-first all

        sslproxy_cert_error allow all

        sslproxy_flags DONT_VERIFY_PEER

  10. Squid サービスを再起動します。この操作には、次のコマンドを実行します:

    service squid restart

Squid サービスでの SSL Bump の設定が完了します。

ページのトップに戻る