Назад | Перейти на главную страницу

Как включить фильтрацию URL-адресов с помощью Just Squid и C-ICAP

Прежде чем опубликовать этот вопрос, я прочитал несколько руководств по настройке в Интернете, документацию по squid, c-icap docus, а также ICAP RFC (3507). К сожалению, документация для SQUID и C-ICAP не дает много примеров, когда дело доходит до фильтрации URL-адресов, только когда дело доходит до простой настройки использования ClamAv.

Итак, я пытаюсь понять, как настроить простую фильтрацию URL-адресов с помощью Squid и сервера C-ICAP. В частности, я начинаю с попытки использовать базы данных SquidGuard (но не программу Squidguard) в качестве источника черных списков. У меня Squid настроен и работает (проксирование) просто отлично, и у меня есть настроенный и работающий C-ICAP (отвечающий на запрос параметров) просто отлично. Однако я понятия не имею, почему не работает фильтрация URL-адресов, поскольку я как можно точнее следил за примерами.

Мой squid.conf настроен для ICAP следующим образом:

#Icap Options
icap_enable on
icap_service svcBlocker reqmod_precache icap://127.0.0.1:1344/srv_url_check bypass=off

Внизу файла c-icap.conf я включил службу icap, которую хочу использовать:

# End module: ldap_module
#URL Check Services
Include srv_url_check.conf

Я установил файл srv_url_check.conf, следуя документации c-icap:

# Default:
#None set
#Example: url_check.LoadSquidGuardDB audio-video /home/dranfu/Downloads/blacklists/audio-video/

Когда я отправляю запрос параметров в C-ICAP, он отлично работает:

ICAP server:localhost, ip:127.0.0.1, port:1344

OPTIONS:
    Allow 204: Yes
    Preview: 1024
    Keep alive: Yes

ICAP HEADERS:
    ICAP/1.0 200 OK:
    Methods:RESPMOD, REQMOD
    Service:C-ICAP/0.2.4 server - Echo demo service
    ISTag:CI0001-XXXXXXXXX
    Transfer-Preview:*
    Options-TTL:3600
    Date:Tue, 26 Feb 2013 10:57:13 GMT
    Preview:1024
    Allow:204
    X-Include:X-Authenticated-User, X-Authenticated-Groups
    Encapsulated:null-body=0

Но когда я отправляю стандартный веб-запрос на сайт, который находится в черном списке, я получаю довольно пустой ответ:

/usr/local/c-icap/bin/c-icap-client -p 8080 -req http://mp3.com.au 

ICAP server:localhost, ip:127.0.0.1, port:8080

Более того, я все еще могу без проблем подключаться к сайту через прокси. Итак, если у кого-то есть опыт настройки squid с чистым C-ICAP с использованием фильтрации URL-адресов, было бы здорово получить любую помощь или базовое руководство о том, как заставить это работать. Документация слишком скудна, по крайней мере для меня, чтобы понять, что идет не так. Без сомнения, это то, что мне не хватает.

Я пытаюсь сделать то же самое. Мне удалось настроить c-icap для блокировки запроса.

Ваш srv_url_check.conf кажется неполным. Моя настроена следующим образом:

Service urlcheck /usr/lib/x86_64-linux-gnu/c_icap/srv_url_check.so
url_check.LookupTableDB denyhosts url hash:/etc/c-icap/denyhosts.txt "Denied Host"
url_check.Profile denyProfile block denyhosts
url_check.ProfileAccess denyProfile all

Файл denyhosts.txt - это простой текстовый файл. Каждая строка должна содержать блокируемый узел, например:

mp3.com.au
xvideos.com
sex.com

И наконец, раскомментируйте строку acl all src 0.0.0.0/0.0.0.0 в c-icap.conf.

Запустите свой c-icap сервер, например /usr/bin/c-icap -D -N -d 1 (отрегулируйте уровень журнала (-d) по своему усмотрению) и проверьте его, используя /usr/bin/c-icap-client -s url_check -req http://sex.com -v -d 1.

В ответ вы получите:

ICAP HEADERS:
    ICAP/1.0 200 OK
    Server: C-ICAP/0.4.2
    Connection: keep-alive
    ISTag: CI0001-XXXXXXXXX
    X-ICAP-Profile: denyProfile
    X-Attribute: denyhosts
    X-Attribute-Prefix: 7
    X-Response-Info: BLOCKED
    X-Response-Desc: URL category denyhosts is BLOCKED
    Encapsulated: res-hdr=0, res-body=108

RESPMOD HEADERS:
    HTTP/1.0 403 Forbidden
    Server: C-ICAP
    Content-Type: text/html
    Connection: close
    Content-Language: en

Это то, что я делал до сих пор ...

Существуют и другие решения, специально разработанные для веб-фильтрации ICAP, представленные на веб-сайте Squid (http://www.squid-cache.org/Misc/icap.html), например qlproxy. ICAP может быть проще настроить, чем C-ICAP.