Использование Kaspersky Scan Engine в режиме ICAP со Squid

05 марта 2024

ID 179904

Squid – это кеширующий и перенаправляющий прокси-сервер для Windows и UNIX-подобных систем. Вы можете использовать Kaspersky Scan Engine в режиме ICAP для проверки трафика, проходящего через прокси-сервер Squid.

Требования к установленному ПО

  • Операционная система Ubuntu 18.04 или более поздней версии.
  • Squid 4.5 или более поздняя версия.

Настройка Squid для работы с Kaspersky Scan Engine

Чтобы Kaspersky Scan Engine работал со Squid в режиме ICAP, вы должны указать Kaspersky Scan Engine как службу ICAP в файле конфигурации Squid (squid.conf).

В Squid ICAP-служба определяется в следующем формате: icap_service id vectoring_point [options] uri.

Чтобы указать Kaspersky Scan Engine как службу ICAP:

  1. Откройте squid.conf для редактирования.
  2. Определите обязательные параметры id, vectoring_point и uri:
    1. Установите id равным любому подходящему идентификатору. Например, srv_kl_resp для режима REQMOD и srv_kl_req для режима RESPMOD.
    2. Установите для vectoring_point соответствующее значение *_precache:
      • Для режима REQMOD укажите reqmod_precache.
      • Для режима RESPMOD укажите respmod_precache.
    3. Укажите в качестве uri расположение Kaspersky Scan Engine:
      • Для режима REQMOD URI должен иметь следующий формат: icap://servername:port/req.
      • Для режима RESPMOD URI должен иметь следующий формат: icap://servername:port/resp.
  3. Добавьте следующие строки в конец файла конфигурации Squid:

    icap_enable on

    adaptation_send_username on

    adaptation_send_client_ip on

    icap_service srv_kl_resp respmod_precache 0 icap://localhost:1344/resp

    icap_service srv_kl_req reqmod_precache 0 icap://localhost:1344/req

    adaptation_access srv_kl_resp allow all

    adaptation_access srv_kl_req allow all

    icap_service_failure_limit -1

    icap_service_revival_delay 30

    icap_preview_enable off

    В приведенном выше примере srv_kl_resp и srv_kl_req – примеры id; respmod_precache и reqmod_precache – значения vectoring_point; 0 – значение параметра Squid bypass, а vectoring_point и icap://127.0.0.1:1344/req – примеры uri.

    Вы можете использовать 127.0.0.1 в uri, только если Kaspersky Scan Engine установлен на том же компьютере, что и Squid.

  4. Сохраните и закройте squid.conf.
  5. Перезапустите службу squid.

    service squid restart

Настройка Squid для работы с Kaspersky Scan Engine и включение сканирования SSL

По умолчанию Kaspersky Scan Engine не может проверять SSL/TLS-трафик, но вы можете настроить Squid расшифровывать его с помощью функции SSL Bumping.

Чтобы настроить Squid для работы с Kaspersky Scan Engine и включить SSL Bumping:

  1. Установите пакеты, необходимые для компиляции и настройки Squid:

    apt-get install build-essential openssl libssl-dev pkg-config

  2. Загрузите исходный код Squid 4.5 или более поздней версии.
  3. Распакуйте архив с исходным кодом Squid в требуемую директорию.
  4. Перейдите в эту директорию.
  5. Скомпилируйте Squid:

    ./configure --with-default-user=proxy --with-openssl --enable-ssl-crtd

    make all

    make install

    Параметры --with-openssl и --enable-ssl-crtd необходимы, чтобы включить SSL Bumping.

  6. Установите правильное время и дату на сервере, на котором работает Squid. Время и дата проверяются каждый раз, когда клиент пытается проверить сертификат этого сервера.
  7. Настройте OpenSSL:
    1. Найдите файл конфигурации OpenSSL по умолчанию openssl.cnf. Расположение этого файла зависит от вашей операционной системы, но обычно это /etc/ssl/openssl.cnf.
    2. Откройте openssl.cnf для редактирования.
    3. Добавьте следующую строку в раздел [v3_ca] файла конфигурации:

      keyUsage = cRLSign, keyCertSign

    4. Сохраните и закройте файл openssl.cnf.
  8. Подготовьте среду для хранения SSL-сертификатов:
    1. Создайте директорию для хранения SSL-сертификатов:

      mkdir /usr/local/squid/etc/ssl_cert -p

    2. Измените пользователя и группу, которым принадлежит эта директория, на proxy:

      chown proxy:proxy /usr/local/squid/etc/ssl_cert -R

    3. Измените разрешения для этой директории:

      chmod 700 /usr/local/squid/etc/ssl_cert -R

  9. Перейдите во вновь созданную директорию:

    cd /usr/local/squid/etc/ssl_cert

  10. Сгенерируйте новый самозаверяющий SSL-сертификат и закрытый ключ для сервера Squid:

    openssl req -new -newkey rsa:2048 -sha256 -days 365 -nodes -x509 -extensions v3_ca -keyout squid_ca.pem -out squid_ca.pem

  11. Преобразуйте созданный сертификат в формат DER:

    openssl x509 -in squid_ca.pem -outform DER -out squid_ca.der

  12. Экспортируйте сгенерированный сертификат на клиентские компьютеры и установите его на них как сертификат центра сертификации. Способ выполнения этого действия зависит от браузера и операционной системы клиента.
  13. Создайте новую базу данных SSL для сервера Squid:

    /usr/local/squid/libexec/security_file_certgen -c -s /usr/local/squid/var/logs/ssl_db -M 4MB

  14. Измените пользователя и группу, которым принадлежит эта директория, на proxy:

    chown proxy:proxy /usr/local/squid/var/logs/ssl_db -R

  15. Настройте Squid:
    1. Найдите файл конфигурации Squid по умолчанию squid.conf. Расположение этого файла зависит от вашей операционной системы, но обычно это /usr/local/squid/etc/squid.conf.
    2. Откройте squid.conf и внесите следующие правки:
    3. Найдите следующую строку:

      http_port 3128

    4. Замените его строкой:

      http_port 3128 ssl-bump cert=/usr/local/squid/etc/ssl_cert/squid_ca.pem generate-host-certificates=on dynamic_cert_mem_cache_size=4MB

      Эта строка включает SSL Bumping на порту 3128.

    5. Добавьте следующий раздел:

      acl step1 at_step SslBump1

      ssl_bump peek step1

      ssl_bump bump all

      sslcrtd_program /usr/local/squid/libexec/security_file_certgen -s /usr/local/squid/var/logs/ssl_db -M 4MB

    6. Укажите Kaspersky Scan Engine в качестве службы ICAP в файле конфигурации Squid, как описано выше в подразделе "Настройка Squid для работы с Kaspersky Scan Engine".
    7. Сохраните и закройте squid.conf.
  16. Измените пользователя и группу, которым принадлежит директория /usr/local/squid, на proxy:

    chown -R proxy:proxy /usr/local/squid

  17. Запустите Squid и инициализируйте кеш Squid:

    /usr/local/squid/sbin/squid -z

Ниже приведен пример части файла конфигурации Squid: В этом примере Squid использует Kaspersky Scan Engine в режиме ICAP для проверки HTTP-сообщений как в режиме REQMOD, так и в режиме RESPMOD.

# SSL bumping configuration

 

acl step1 at_step SslBump1

ssl_bump peek step1

ssl_bump bump all

http_port 3128 ssl-bump cert=/usr/local/squid/etc/ssl_cert/squid_ca.pem generate-hostcertificates=on dynamic_cert_mem_cache_size=4MB

sslcrtd_program /usr/local/squid/libexec/security_file_certgen -s /usr/local/squid/var/logs/ssl_db -M 4MB

 

 

# ICAP configuration

 

icap_enable on

adaptation_send_username on

adaptation_send_client_ip on

icap_service srv_kl_resp respmod_precache 0 icap://localhost:1344/resp

icap_service srv_kl_req reqmod_precache 0 icap://localhost:1344/req

adaptation_access srv_kl_resp allow all

adaptation_access srv_kl_req allow all

icap_service_failure_limit -1

icap_service_revival_delay 30

icap_preview_enable off

Вам помогла эта статья?
Что нам нужно улучшить?
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!