Как настроить Squid так, чтобы он возвращал пользовательские страницы ошибок на основе результатов адаптеров eCAP?

Адаптер eCAP настроен в squid.conf как:

acl bypass_scan_types_req req_mime_type -i ^text/     
acl bypass_scan_types_req req_mime_type -i ^application/x-javascript 
acl bypass_scan_types_req req_mime_type -i ^application/x-shockwave-flash  
acl bypass_scan_types_req req_mime_type -i ^image/ 
acl bypass_scan_types_req req_mime_type -i ^video     
acl bypass_scan_types_req req_mime_type -i ^audio 

acl bypass_scan_types_req req_mime_type -i ^.*application\/x-mms-framed.*$
acl bypass_scan_types_rep rep_mime_type -i ^text/ 
acl bypass_scan_types_rep rep_mime_type -i ^application/x-javascript 
acl bypass_scan_types_rep rep_mime_type -i ^application/x-shockwave-flash 
acl bypass_scan_types_rep rep_mime_type -i ^image/ 
acl bypass_scan_types_rep rep_mime_type -i ^video 
acl bypass_scan_types_rep rep_mime_type -i ^audio 
acl bypass_scan_types_rep rep_mime_type -i ^.*application\/x-mms-framed.*$

loadable_modules /usr/local/lib/ecap_clamav_adapter.so 

ecap_service clamav_service_req reqmod_precache uri=ecap://e-cap.org/ecap/services/clamav?mode=REQMOD bypass=off 
ecap_service clamav_service_resp respmod_precache uri=ecap://e-cap.org/ecap/services/clamav?mode=RESPMOD bypass=on 

adaptation_access clamav_service_req allow !bypass_scan_types_req all 
adaptation_access clamav_service_resp allow !bypass_scan_types_rep all

В случае обнаружения вируса адаптер возвращает некоторые подробности вируса, а Squid выдает страницу ошибки по умолчанию. Я хочу отобразить пользовательскую страницу ошибки вместо страницы по умолчанию.

Я попробовал добавив deny_info но я не знаю точно, как указать acl в этом случае. deny_info Я попробовал это как:

deny_info custom_error.html <my_acl_here>

куда custom_error.html существует в ~/ecap/squid-XXXX/errors/en/, Пока я не ищу информацию о вирусах на странице ошибок, это может быть любая статическая страница.

Заранее спасибо!

1 ответ

Решение

Я нашел решение как:

Создать страницу на /usr/local/squid/share/errors/templates/ERR_ANY_NAME, Затем добавьте следующую строку в конце squid.conf:

deny_info ERR_ANY_NAME clamav_service_req

clamav_service_req такой же, как указано в ecap_service директива и ERR_ANY_NAME пользовательская страница для отображения

Другие вопросы по тегам