Existem outras soluções especificamente projetadas para a filtragem ICAP presente no site do Squid ( link ), qlproxy como um exemplo. Pode ser mais fácil configurar o ICAP do que o C-ICAP.
Antes de postar esta pergunta, li vários guias de configuração online, os documentos do squid, o c-icap docus e também o ICAP RFC (3507). Infelizmente, a documentação do SQUID e do C-ICAP não fornece muitos exemplos quando se trata de filtragem de URL, apenas quando se trata da simples configuração do uso do ClamAv.
Então, estou tentando descobrir como configurar uma filtragem de URL simples usando o Squid e o C-ICAP Server. Especificamente, estou começando a tentar usar bancos de dados do SquidGuard (mas não o programa Squidguard) como fonte de listas negras. Eu tenho o Squid configurado e executando (proxying) muito bem, e eu tenho C-ICAP configurado e funcionando (respondendo a solicitação de opções) muito bem. No entanto, não tenho idéia de por que a filtragem de URL não está em execução, já que segui os exemplos o mais próximo possível.
Meu squid.conf está configurado da seguinte forma para o ICAP:
#Icap Options
icap_enable on
icap_service svcBlocker reqmod_precache icap://127.0.0.1:1344/srv_url_check bypass=off
Na parte inferior do arquivo c-icap.conf, incluí o serviço icap que desejo usar:
# End module: ldap_module
#URL Check Services
Include srv_url_check.conf
Eu configurei o arquivo srv_url_check.conf, seguindo a documentação do c-icap:
# Default:
#None set
#Example: url_check.LoadSquidGuardDB audio-video /home/dranfu/Downloads/blacklists/audio-video/
Quando envio uma solicitação de opções para o C-ICAP, tudo funciona bem:
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
Mas quando eu envio uma solicitação da web padrão para um site que está na lista negra, recebo uma resposta bastante vazia:
/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
E, além disso, ainda posso fazer proxy no website sem problemas. Assim, se alguém tiver alguma experiência com a configuração do squid com o C-ICAP puro usando URL filtragem, seria fantástico ter qualquer assistência ou guia básico sobre como faça isso funcionar. A documentação é muito escassa, pelo menos para mim, descobrir o que está errado. Sem dúvida, é algo que estou perdendo, no entanto.
Existem outras soluções especificamente projetadas para a filtragem ICAP presente no site do Squid ( link ), qlproxy como um exemplo. Pode ser mais fácil configurar o ICAP do que o C-ICAP.
Estou tentando fazer o mesmo. Eu tenho sucesso configurando o c-icap para bloquear um pedido.
Seu srv_url_check.conf
parece estar incompleto. O meu é configurado da seguinte forma:
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
O arquivo denyhosts.txt, é um arquivo de texto simples. Cada linha deve conter um host para ser bloco, como:
mp3.com.au
xvideos.com
sex.com
E, finalmente, você deve descomentar a linha acl all src 0.0.0.0/0.0.0.0
em c-icap.conf
.
Inicie o seu servidor c-icap como /usr/bin/c-icap -D -N -d 1
(ajuste o nível de registro (-d) como você deseja) e teste-o usando /usr/bin/c-icap-client -s url_check -req http://sex.com -v -d 1
.
Como resposta, você receberá:
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
Isso foi o que eu fiz até agora ...