Essa vai a pedidos, quando controlamos a internet usando o squid, por muitas vezes temos a necessidade de fazermos o bloqueio de download de certos arquivos, por exemplo bloquear alguns tipos de arquivos para o nosso computador, os testes usados nessa postagem foi usado o Ubuntu e Opensuse.
Esse controle se deve a necessidade de termos uma navegação mais limpa e também que um usuário acesse uma pagina e que nessa pagina contenha arquivos maliciosos. Para isso usaremos a extensão dos arquivos para fazer esse tipo de controle.
Vamos colocar a mão na massa.
primeiro vamos criar um arquivo que conterá as extensões que não permitiremos que seja feito download.
vi downloads.txt
\.exe$
\.scr$
\.mp4$
\.mp3$
\.flv$
salvamos o arquivo e agora vamos colocar nossas regras dentro do arquivo do squid.
vi /etc/squid3/squid.conf (tambem funciona na versão 2)
após a linha
acl CONNECT method CONNECT
vamos colocar a nossa regra
acl extensao_bloqueada url_regex -i "/etc/squid3/downloads.txt"
após criarmos a nossa acl (Access Control List ), devemos localizar a linha
# INSERT YOUR OWN RULE(S) HERE ...
e colocamos a seguinte ação no http_access
http_access deny extensao_bloqueada
Lembrando que todo o bloqueio tem que vir antes de qualquer liberação.
salve o arquivo e reinicie o serviço
squid3 -k reconfigure
[]'s
Até a proxima.
Pesquisar neste blog
terça-feira, 26 de fevereiro de 2013
terça-feira, 12 de fevereiro de 2013
Palavras compostas no squid (Ubuntu, RedHat e Opensuse)
Antes de mais nada, nesse post terá palavras que algumas pessoas
possam achar "de baixo calão ou simplesmente palavrão",
para essas pessoas antecipadamente peço desculpas, mas a intenção
não é de propagar nenhuma forma de agressividade mas, sim de
mostrar de forma direta o uso de expressões regulares no squid.
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.
Agora 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
.rola[/?/&]
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.
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.
Assinar:
Postagens (Atom)