Настройка SSL Bumping в сервисе Squid

Чтобы настроить SSL Bumping в сервисе Squid, выполните следующие действия:

  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 Bumping. Если сервис Squid был скомпилирован с включенной поддержкой SSL Bumping, вам требуется создать директорию для будущих сертификатов с помощью следующих команд:

      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 3128 на http_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 Bumping):

        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 Bumping):

        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 Bumping):

        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

Настройка SSL Bumping в сервисе Squid будет завершена.

В начало