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

14 июля 2026

ID 179904

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

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

  • Операционная система Ubuntu 22.04 LTS или 24.04 LTS.
  • Squid 7.1; 7.2; 7.3; 7.4.

Настройка 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 и icaps://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 поддерживает требуемые параметры, выполните следующую команду:

    squid -v

    Параметр configure options должен содержать значения --enable-icap-client, --enable-ssl-crtd и --with-openssl. Если эти значения отсутствуют, скомпилируйте Squid с необходимыми параметрами:

    ./configure --enable-icap-client --with-openssl --enable-ssl-crtd

    make all

    make install

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

      keyUsage = cRLSign, keyCertSign

    4. Сохраните и закройте файл openssl.cnf.
  4. Подготовьте среду для хранения 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

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

    cd /usr/local/squid/etc/ssl_cert

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

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

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

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

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

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

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

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

  11. Настройте 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.
  12. Измените пользователя и группу, которым принадлежит директория /usr/local/squid, на proxy:

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

  13. Запустите 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

Настройка Squid для работы с Kaspersky Scan Engine через защищенные соединения ICAP

По умолчанию Kaspersky Scan Engine в режиме ICAP взаимодействует со Squid через незащищенное соединение, без поддержки шифрования SSL/TLS (используется схема URI "icap:"). Начиная с версии 2.2, Kaspersky Scan Engine поддерживает безопасные соединения ICAP, и вы можете настроить безопасное взаимодействие между Squid и Kaspersky Scan Engine в режиме ICAP (используется схема URI "icaps:").

Чтобы настроить Squid для работы с Kaspersky Scan Engine и посредством безопасных соединений ICAP:

  1. Чтобы удостовериться, что служба Squid поддерживает требуемые параметры, выполните следующую команду:

    squid -v

    Параметр configure options должен содержать значения --enable-icap-client, --enable-ssl-crtd и --with-openssl. Если эти значения отсутствуют, скомпилируйте Squid с необходимыми параметрами:

    ./configure --enable-icap-client --with-openssl --enable-ssl-crtd

    make all

    make install

  2. Если вы сгенерировали сертификаты TLS, как описано в разделе "Безопасные соединения ICAP", используйте уже сгенерированный файл kavicapd.cert. В противном случае создайте новый.
  3. Чтобы использовать безопасные соединения ICAP, включите параметр Включить безопасное соединение на странице Настройки службы в Kaspersky Scan Engine GUI. Либо вы можете указать SecureConnectionSettings в kavicapd.xml.
  4. Откройте squid.conf для редактирования.
  5. Добавьте следующие строки в конец файла squid.conf:

    icap_enable on

    adaptation_send_client_ip on

    adaptation_send_username on

    icap_client_username_encode on

    icap_client_username_header X-Client-Username

    icap_service srv_kl_resp respmod_precache 0 icaps://localhost:11344/resp tls-cafile=/path/to/kavicapd.cert

    icap_service srv_kl_req reqmod_precache 0 icaps://localhost:11344/req tls-cafile=/path/to/kavicapd.cert

    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
    • Параметры icaps://localhost:11344/resp и icaps://localhost:11344/req – примеры URI
    • kavicapd.cert – сертификат, используемый для проверки сертификата сервера ICAP

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

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