Задача была простой: Поставить сквид на старенький сервер под управлением Федоры 10 и прикрутить к кальмару антивирус Касперского.
После долгой возни с ключами лицензии Касперский поднял свою голову, да и SQUID 3.0.STABLE20 из репозитория уже имеет включённый icap-клиент и проблем ничто не предвещало.
По окончании настройки кальмара с антивирусом друг на друга я прицепиля браузером к сквиду (127.0.0.1:3128, так как сквид, KAV и браузер на одном хосте) и решил скачать тестовый вирус... Жду. Долго жду. Страница висит в режиме ожидания ответа от сервера. Думал сначала на KAV, но быстро упёрся в тот факт что независимо от него при ЛЮБОМ адресе браузер задумыватся и не грузит ничего. Сниффер по этому поводу сказал что запрос с моего компьютера уходит, а диалога с сервером нет.
Отключил проксирование в браузере - работает! Я сижу за NAT`ом, и хост Федоры на виртуализации. Появилась идея что программа виртуализации ВМваре тупит и включил серевую виртуалки в бриджирование. Ситуация не изменилась: при настройке браузера через прокси нет никакого намёка на диалог.
Приведу конфигурацию сквида без строк-комментариев ($ cat /etc/squid/squid.conf | sed '/ *#/d; /^ *$/d'). Строки, помеченные «+» отредактированы согласно докам Касперского:
+ acl acl_kav_GET method GET
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
acl SSL_ports port 443
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localnet
http_access allow localhost
http_access deny all
icp_access allow localnet
icp_access deny all
htcp_access allow localnet
htcp_access deny all
http_port 3128
hierarchy_stoplist cgi-bin ?
cache_dir ufs /var/spool/squid 1024 16 16
access_log /var/log/squid/access.log squid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern (cgi-bin|\?) 0 0% 0
refresh_pattern . 0 20% 4320
cache_effective_user squid
icp_port 3130
+ icap_enable on
+ icap_send_client_ip on
+ icap_service is_kav_resp respmod_precache 0 icap://127.0.0.1:1344/av/respmod
+ icap_service is_kav_req reqmod_precache 0 icap://127.0.0.1:1344/av/reqmod
+ icap_class ic_kav_resp is_kav_resp
+ icap_class ic_kav_req is_kav_req
+ icap_access ic_kav_req allow all !acl_kav_GET
+ icap_access ic_kav_resp allow all
coredump_dir /var/spool/squid
cache_effective_group squid