Por muitas vezes temos que criar regras para fazer bloqueio de palavras dentro do proxy, porém essas palavras podem compor outras palavras.
Quando instalamos o squid na forma padrão o aplicativo já inicia trabalhando, basicamente terá (sem os comentários) os seguintes itens no arquivo /etc/squid3/squid.conf.
Nessa primeira parte do squid.conf teremos as configurações dos “apelidos” das ACL's (Access Control List), essas regras definem o comportamento do nosso servidor, irei comentar as linhas importantes.
acl manager proto cache_object
## Essa acl abaixo informa ao squid que
o endereço IP 127.0.0.1/32 (ipv4) e o ::1 (ipv6) tem acesso ao
servidor
## o item src
é o responsável por definir um endereço ip ou de uma rede para
acesso ao servidor
##
pode-se criar uma acl, com a opção src
para definir por exemplo um computador da
## gerencia ou direção
com a intenção livre dos
controles de acesso.
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8
0.0.0.0/32 ::1
## essas linhas são padrão do squid,
definindo as portas em que ele controlará.
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 #
unregistered ports
acl Safe_ports port 280 #
http-mgmt
acl Safe_ports port 488 #
gss-http
acl Safe_ports port 591 #
filemaker
acl Safe_ports port 777 #
multiling http
acl CONNECT method CONNECT
## Após as informações das ACL, é
necessário informar o que será feito com elas, é aonde se
## encontra as linhas abaixo, o
http_access definirá se o acesso será liberado (allow) ou negado
(deny)
## é aqui que devemos ter cuidado, pois
quando o squid encontra, o que ele conhece como MISMATCH, ele não
vai acessar o restante do arquivo.
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
## Todas as regras que você for incluir
deverá ser antes dessa linha, por padrão o squid fecha toda a
## internet, se chegar aqui as regras
anteriores não tiveram controle. A opção http_access
deny all bloqueia
tudo, para liberar toda a internet e fazer bloqueios anteriores mude
essa linha para http_access
allow all
http_access deny all
http_port 3128
coredump_dir /var/spool/squid3
refresh_pattern ^ftp: 1440
20% 10080
refresh_pattern ^gopher: 1440
0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0
0% 0
refresh_pattern
(Release|Packages(.gz)*)$ 0 20% 2880
refresh_pattern . 0
20% 4320
Pronto, com o arquivo padrão em uso
podemos fazer nossas mudanças, vamos trabalhar com toda a internet
bloqueada e vamos fazer liberações de determinados sites. Nossa
mudança será bastante simples, criaremos uma ACL, e depois vamos
fazer um http_access para fazer nossa liberação.
Por recomendação devemos colocar
nossas ACL's após essa linha
acl CONNECT method CONNECT
## nova acl
acl sitesLiberados dstdomain
.google.com.br
## observe que nessa regra usamos o
dstdomain para definir que
esse site esta liberado (existe um
##
“ponto” antes do nome do google.com.br informando que todo o
domínio será controlado, neste
##
caso liberado.
Ao
colocar uma acl devemos informar ao http_access que essa acl deverá
ser permitida, mais uma vez por recomendação devemos colocar essa
regra deve estar antes da linha.http_access deny all.
http_access
allow sitesLiberados
http_access
deny all
neste
formato temos um pequeno problema, se desejamos liberar mais de um
site alem do google.com.br, devemos duplicar a linha, conforme o
exemplo abaixo.
acl sitesLiberados dstdomain
.google.com.br
acl sitesLiberados dstdomain
.terra.com.br
acl sitesLiberados dstdomain
.uol.com.br
o que
pode tornar o arquivo muito grande e de difícil leitura para
posterior manutenção, para resolver isso o squid aceita que esses
domínios possam ficar
dentro de um arquivo, conforme abaixo:
acl
sitesLiberados dstdomain “/etc/squid3/sitesLivres.txt”
o http_access que
já foi definido não precisa modificar, porem o arquivo deverá ser
criado.
vi
/etc/squid3/sitesLivres.txt
dentro desse
arquivo simplesmente colocamos os domínios que devemos liberar
.google.com.br
.terra.com.br
.uol.com.br
Pronto, para
liberar outros domínios simplesmente adicione mais domínios dentro
do arquivo /etc/squid3/sitesLivres.txt e re-inicie o squid. (squid3
-k reconfigure é mais rápido).
Seguindo a mesma ideia podemos fazer
controle de palavras, mãos a obra.
acl palavras url_regex
-i “/etc/squid3/palavrasPriobidas.txt”
neste
caso usamos a opção url_regex
que informa ao squid que se a palavra aparecer na url deve ser tomada
uma ação definida no http_access.
Já no
http_access deve ficar assim.
http_access deny palavras
http_access
allow sitesLiberados
http_access
deny all
Exatamente
como você esta vendo o bloqueio antes da liberação, lembre-se do
MISMATCH que falei acima.
temos
também que criar o arquivo palavrasProibidas.txt,
vi
/etc/squid3/palavrasPriobidas.txt
e
dentro as palavras que você não quer que seja consultada.
sex
sexo
rola
Agora
estamos prontos, para irmos ao tópico principal as palavras
compostas.
Exemplo:
rola → rolamentoAgora vamos a uma situação, você controla a palavra “rola” evitando assim que um usuário possa pesquisar na rede o seguinte:
o que rola na minha cidade no google por exemplo.
essas palavras podem conter dentro de uma outra palavra (composta), vamos agora por "a mão na massa". Para isso o squid também aceita que as palavras dentro do arquivo tenha também expressões regulares, neste caso devemos fazer algumas modificações dentro do arquivo palavrasProibidas e colocar as palavras assim
sex
sexo
Neste caso a palavra “rola” será bloqueada somente se ele vier sozinha e não composta como “rolamento” (essa dica foi passada pelo nosso amigo Ney para entrar em contato com ele manda uma e-mail para vtj@vtjinformatica.com)
IMPORTANTE: TODA VEZ QUE FOR MODIFICADA OS ARQUIVOS (sitesLiberados.txt ou palavrasProibidas.txt) O SQUID DEVERÁ SER RE-INICIADO (squid3 -k reconfigure), essas informações também funcionam no squid versão 2)
bom, como tive problemas de encontrar algum lugar que me fornecesse essas informações de uma forma direta passo essa dica para vocês que tem esse tipo de problema.
Não deixem de comentar se gostaram
ate a próxima.
7 comentários:
Embora já tinha conhecimento dessa informação,o texto está bem claro!!.
o que facilita em muito....
abraço
Marcio
obg. Espero ajudar aos outros administradores que tem a necessidade dessa informação
meu amigo é dificil falar com você não...cara posta alguma coisa sobre como bloquear downloads na rede usando as regras do squid.
já tentei um momte de acls que muitos caras ai dizem que funciona mais aqui nada, o squid até que reconfigura mas não bloqueia
download de .mp3, .exe, .bat, continuo baixando normal e coloco a regras bem antes da regra de autenticação...estou usando o proxy o
squid é o 2.7 e o servidor é o ubuntu 10.04
Muito bom mesmo.
já trabalhei com squid, mas vou guardar o seu artigo, valeu
valeu paulo
klleberson Sillva eu uso a seguinte ACL para bloqueio de downloads:
acl downloads req_mime_type application/octet-stream application/zip audio/mpeg audio/mp3 audio/wav video/mpeg video/avi video/quicktime video/x-msvideo video/x-ms-wmv
depois é só por http_access deny downloads
Boa tarde ,
Estou tentando bloquear palavras compostas no squid como :
- Mulher+nua
- homem+nu , tem como ?
qual seria o procedimento ?
Obrigado a todos
Postar um comentário