Использование 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:
- Откройте squid.conf для редактирования.
- Определите обязательные параметры
id,vectoring_pointиuri:- Установите
idравным любому подходящему идентификатору. Например,srv_kl_respдля режима REQMOD иsrv_kl_reqдля режима RESPMOD. - Установите для
vectoring_pointсоответствующее значение*_precache:- Для режима REQMOD укажите
reqmod_precache. - Для режима RESPMOD укажите
respmod_precache.
- Для режима REQMOD укажите
- Укажите в качестве
uriрасположение Kaspersky Scan Engine:- Для режима REQMOD URI должен иметь следующий формат:
icap://servername:port/req. - Для режима RESPMOD URI должен иметь следующий формат:
icap://servername:port/resp.
- Для режима REQMOD URI должен иметь следующий формат:
- Установите
- Добавьте следующие строки в конец файла конфигурации 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– примеры idrespmod_precacheиreqmod_precache– значенияvectoring_point0– значение параметра Squidbypassvectoring_pointиicaps://127.0.0.1:1344/req– примеры URI
Вы можете использовать 127.0.0.1 в URI, только если Kaspersky Scan Engine установлен на том же компьютере, что и Squid.
- Сохраните и закройте squid.conf.
- Перезапустите службу
squid.service squid restart
Настройка Squid для работы с Kaspersky Scan Engine и включение сканирования SSL
По умолчанию Kaspersky Scan Engine не может проверять SSL/TLS-трафик, но вы можете настроить Squid расшифровывать его с помощью функции SSL Bumping.
Чтобы настроить Squid для работы с Kaspersky Scan Engine и включить SSL Bumping:
- Чтобы удостовериться, что служба 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
- Установите правильное время и дату на сервере, на котором работает Squid. Время и дата проверяются каждый раз, когда клиент пытается проверить сертификат этого сервера.
- Настройте OpenSSL:
- Найдите файл конфигурации OpenSSL по умолчанию
openssl.cnf. Расположение этого файла зависит от вашей операционной системы, но обычно это/etc/ssl/openssl.cnf. - Откройте
openssl.cnfдля редактирования. - Добавьте следующую строку в раздел
[v3_ca]файла конфигурации:keyUsage = cRLSign, keyCertSign
- Сохраните и закройте файл
openssl.cnf.
- Найдите файл конфигурации OpenSSL по умолчанию
- Подготовьте среду для хранения SSL-сертификатов:
- Создайте директорию для хранения SSL-сертификатов:
mkdir /usr/local/squid/etc/ssl_cert -p
- Измените пользователя и группу, которым принадлежит эта директория, на
proxy:chown proxy:proxy /usr/local/squid/etc/ssl_cert -R
- Измените разрешения для этой директории:
chmod 700 /usr/local/squid/etc/ssl_cert -R
- Создайте директорию для хранения SSL-сертификатов:
- Перейдите во вновь созданную директорию:
cd /usr/local/squid/etc/ssl_cert
- Сгенерируйте новый самоподписанный SSL-сертификат и закрытый ключ для сервера Squid:
openssl req -new -newkey rsa:2048 -sha256 -days 365 -nodes -x509 -extensions v3_ca -keyout squid_ca.pem -out squid_ca.pem
- Преобразуйте созданный сертификат в формат DER:
openssl x509 -in squid_ca.pem -outform DER -out squid_ca.der
- Экспортируйте сгенерированный сертификат на клиентские компьютеры и установите его на них как сертификат центра сертификации. Способ выполнения этого действия зависит от браузера и операционной системы клиента.
- Создайте новую базу данных SSL для сервера Squid:
/usr/local/squid/libexec/security_file_certgen -c -s /usr/local/squid/var/logs/ssl_db -M 4MB
- Измените пользователя и группу, которым принадлежит эта директория, на
прокси:chown proxy:proxy /usr/local/squid/var/logs/ssl_db -R
- Настройте Squid:
- Найдите файл конфигурации Squid по умолчанию
squid.conf. Расположение этого файла зависит от вашей операционной системы, но обычно это/usr/local/squid/etc/squid.conf. - Откройте
squid.confи внесите следующие правки: - Найдите следующую строку:
http_port 3128
- Замените его строкой:
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.
- Добавьте следующий раздел:
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
- Укажите Kaspersky Scan Engine в качестве службы ICAP в файле конфигурации Squid, как описано выше в подразделе "Настройка Squid для работы с Kaspersky Scan Engine".
- Сохраните и закройте
squid.conf.
- Найдите файл конфигурации Squid по умолчанию
- Измените пользователя и группу, которым принадлежит директория
/usr/local/squid, наproxy:chown -R proxy:proxy /usr/local/squid
- Запустите 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:
- Чтобы удостовериться, что служба 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
- Если вы сгенерировали сертификаты TLS, как описано в разделе "Безопасные соединения ICAP", используйте уже сгенерированный файл kavicapd.cert. В противном случае создайте новый.
- Чтобы использовать безопасные соединения ICAP, включите параметр Включить безопасное соединение на странице Настройки службы в Kaspersky Scan Engine GUI. Либо вы можете указать SecureConnectionSettings в kavicapd.xml.
- Откройте squid.conf для редактирования.
- Добавьте следующие строки в конец файла 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– примеры idrespmod_precacheиreqmod_precache– значенияvectoring_point0– значение параметра Squidbypass- Параметры
icaps://localhost:11344/respиicaps://localhost:11344/req– примеры URI kavicapd.cert– сертификат, используемый для проверки сертификата сервера ICAP
Вы можете использовать 127.0.0.1 в URI, только если Kaspersky Scan Engine установлен на том же компьютере, что и Squid.