Использование 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:
- Откройте 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
– примерыid
;respmod_precache
иreqmod_precache
– значенияvectoring_point
;0
– значение параметра Squidbypass
, аvectoring_point
иicap://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:
apt-get install build-essential openssl libssl-dev pkg-config
- Загрузите исходный код Squid 4.5 или более поздней версии.
- Распакуйте архив с исходным кодом Squid в требуемую директорию.
- Перейдите в эту директорию.
- Скомпилируйте Squid:
./configure --with-default-user=proxy --with-openssl --enable-ssl-crtd
make all
make install
Параметры
--with-openssl
и--enable-ssl-crtd
необходимы, чтобы включить SSL Bumping. - Установите правильное время и дату на сервере, на котором работает 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
- Измените пользователя и группу, которым принадлежит эта директория, на
proxy
: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
http_port 3128 ssl-bump cert=/usr/local/squid/etc/ssl_cert/squid_ca.pem generate-hostcertificates=on dynamic_cert_mem_cache_size=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 |