Squid 2.7+ Bannerfilter + squidGuard 1.2.0 no Ubuntu 9.04 server

Iniciado por giant_trunade, 08 de Julho de 2009, 12:57

tópico anterior - próximo tópico

giant_trunade

Olá pessoal,

Estou fazendo um proxy / cache para um laboratório de faculdade com o intuito de melhorar a navegaçao (performance pois possui um link de internet ruim) e restringir pouca coisa: pornografia, sites com vírus, banners (que medesculpem os publicitarios mas é um disperdicio enorme de banda), e messengers / orkut em alguns horarios (aula).

Já consegui navegar pelo proxy anteriormente, porem com as configurações que fiz recentemente o ficou intermitente...


Os problemas que estou encontrando são:

- Fui aconselhado a usar o squidGuard em conjunto com o squid pois a lista do que eu bloquearia seria grande, porem após alguma "caca" que eu ainda nao identifiquei, para que o squid funcione eu preciso ficar movendo a tag "regirect_program" do squidGuard de lugar para que funcione.

- Verificando em foruns e outros, encontrei o Bannerfilter que seria um plugin para o squid bloquear banners comuns e em flash (genial!!!  ::)) porem se eu o coloco junto com o squidguard, quando tento subir o squid ele da erro no que estiver listado por ultimo no squid.conf (se o squidguard estiver antes, da erro no bannerfilter / se o bannerfilter esiver antes, da erro na linha do squidGuard).


Ainda estou construindo o squid.conf abaixo:

#ARQUIVO DE CONFIGURAçÃO DO SQUID:
#CRIADO POR ALTAIR CAMPOS LAGE FILHO 02/07/09
#E-MAIL ALTAIRLAGE@YAHOO.COM.BR

#PORTA EM QUE O SQUID IRÁ RECEBER REQUISIçÕES:
http_port 3128 transparent

#NOME DO SERVIDOR:
visible_hostname proxyLab

#CACHE DE MEMÃ"RIA:
cache_mem 900 MB
#fqdncache_size 1024 #cache fqdn DNS
maximum_object_size_in_memory 256 KB

#CACHE EM DISCO:
#cache_dir ufs /var/spool/squid 4084 12 256
cache_dir ufs /var/spool/squid 10000 12 256
maximum_object_size 100 MB
minimum_object_size 0 KB

##NÃO MEXER!! -- inicio
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
##NÃO MEXER!! -- fim

#LOG DE ACESSO:
access_log /var/log/squid/access.log squid

#ARQUIVO DE HOSTS:
hosts_file /etc/hosts

#SQUIDGUARD/BANNERFILTER -- INICIO
redirect_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf
redirect_children 8
redirector_bypass on
redirect_program /etc/squid/bannerfilter/redirector.pl
#SQUIDGUARD/BANNERFILTER -- FIM


##NÃO MEXER!! 2 -- inicio:
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320

connect_timeout 2 minutes

acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 # https
acl SSL_ports port 563 # snews
acl SSL_ports port 873 # rsync
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 Safe_ports port 631 # cups
acl Safe_ports port 873 # rsync
acl Safe_ports port 901 # swat
acl purge method PURGE
acl CONNECT method CONNECT

http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
##NÃO MEXER!! 2 -- fim

#http_access deny all
http_access allow all
icp_access allow all

http_reply_access allow all

icp_access allow all
cache_effective_group proxy

#DIRETORIO DO CACHE
coredump_dir /var/spool/squid



CRIEI APENAS UMA ACL NO SQUIDGUARD.CONF PARA TESTE:


#
# CONFIG FILE FOR SQUIDGUARD
#

dbhome /var/lib/squidguard/db
logdir /var/log/squid

#
# TIME RULES:
# abbrev for weekdays:
# s = sun, m = mon, t =tue, w = wed, h = thu, f = fri, a = sat

time workhours {
weekly mtwhf 08:00 - 16:30
date *-*-01  08:00 - 16:30
}

#
# REWRITE RULES:
#

#rew dmz {
# s@://admin/@://admin.foo.bar.no/@i
# s@://foo.bar.no/@://www.foo.bar.no/@i
#}

#
# SOURCE ADDRESSES:
#

#src admin {
# ip 1.2.3.4 1.2.3.5
# user root foo bar
# within workhours
#}

#src foo-clients {
# ip 172.16.2.32-172.16.2.100 172.16.2.100 172.16.2.200
#}

#src bar-clients {
# ip 172.16.4.0/26
#}

src note_altair_wireless {
ip 192.168.3.208
}

#
# DESTINATION CLASSES:
#

dest good {
}

dest local {
}

dest teste {
 domainlist testedominios
 urllist testeurl
}
#dest adult {
# domainlist adult/domains
# urllist adult/urls
# expressionlist adult/expressions
# redirect http://admin.foo.bar.no/cgi-bin/squidGuard.cgi?clientaddr=%a+clientname=%n+clientident=%i+srcclass=%s+targetclass=%t+url=%u
#}


acl {
# admin {
# pass any
# }

# foo-clients within workhours {
# pass good !in-addr !adult any
# } else {
# pass any
# }

# bar-clients {
# pass local none
# }

teste1{
pass !teste all
}

note_altair_wireless{
pass !teste all
}

default {
pass none
#pass local none
# rewrite dmz
redirect http://www.fai-mg.br
# redirect http://admin.foo.bar.no/cgi-bin/squidGuard.cgi?clientaddr=%a+clientname=%n+clientident=%i+srcclass=%s+targetclass=%t+url=%u
}
}


a maquina e' um:

Citar
Pentium 4 3.0GHz
1536 MB de RAM
80 GB de HD

(sim e' o proxy mais cavalo que j'a vi  :o)

Por favor se alguem souber o que acontece por favor me informe o que est'a errado.

Criticas e sujestoes serao bem vindas.

pauloleoni

Vamos por partes,

primeiro pra que usar o squidguard? o squid sozinho em conjunto com o iptables naum atende? eu uso no trampo tranquilamente. o squid pode te dar lista com ips liberados, sites bloqueados, e libarar o horario também.

Faz igual a mim, começa devagar, passo a passo. Primeiro instala uma versao clean do ubuntu, eu usei o 9.04 server edition (sem interface grafica). e aí comecei atacando primeiro as interfaces, depois o resolv.conf, aí instalei o squid pelo apt-get

depois peguei um squid.conf de modelo, um simples com o basico somente, e fui adequando conforme necessitei.

Depois ataquei o iptables, pois precisava liberar umas portas de entrada (para usuarios receberem emails pop e enviar smtp) e para programas da receita (impostos).

Naum sei se conseguiu alguma coisa já, mas fica aí minha sugestão.


Eu agora vou começar um novo servidor para rodar o samba (to em duvida entre o linux e o 2003 server) e preciso de um servidor de intranet também, esse vai ser meu projeto surpresa para a chefia.

Valeu e boa sorte !!



giant_trunade

Olá pauloleoni,

Primeiramente obrigado pela opiniao.

1°:
esta implementação que estou fazendo (e outras que já vi minha antiga empresa fazendo) não permite que eu use whitelist de forma alguma e nem mesmo acls por palavras. é uma faculdade, e entre os cursos há cursos da área da educação, se eu bloqueio "sexo", se a pessoa buscar por "como ensinar sexo seguro" já ir´dar problema.
esta é a razão de precisar de uma black list grande, para principalmente sites "virus infected", pornografia e web proxys.

2°: em DIVERRRRRSOS sites especializados encontrei (resumidamente) a informação: "o squid não é bom e nao possui um bom desemprenho com blacklists grandes".
    Não sei se é de tudo verdade (e gostaria de saber, se alguem souber...  :P)
COMPROVEI ASSIM:

não sabia que precisava converter as blacklists para berkeley database (com o comando squidguard -C all) que convenhamos é um saco de fazer.. da muuuuito pau... e ao subir o squid + squidGuard + blacklist grande o processador ia para 100% de uso, e estava consumindo 1GB de ram  :o

por isso: Creio que o squid realmente nao é bom para grandes listas de bloqueio (o que acontece com o tempo).

STATUS DO MEU PROXY:
- Meu server está funcionando, mas nao exibe pagina ao bloquear (se o acesso ao site está proibido ele fica carregando infinitamente). na minha antiga empresa ao acessar um site bloqueado era exibida uma pagina notificando: "este site está bloqueado e seu acesso foi registrado. regirecionando..." e era redirecionado para o site da empresa... queria fazer isso... alguem sabe como ???

- estou achando o tempo de resposta dele, e o carregamento da pagina meio lento... alguem sabe como resolver ???


- Quanto ao bannerfilter eu já desisti.. eu entrei em contato com os desenvolvedores (que foram, oi foi rsrsrs, muuuuuito atencioso) e me respondeu que "acha que o squid nao suporta mais de um redirect_program...". OBS.: foi muito atencioso mesmo, me propos algumas soluções e se propos até a verificar uma correção!  :o

Apesar de possuir uma grande lista de endereços em "ads" (reio ser adversment) não sei ainda como bloquear banners pelo squid...


pauloleoni


CitarEu agora vou começar um novo servidor para rodar o samba (to em duvida entre o linux e o 2003 server) e preciso de um servidor de intranet também, esse vai ser meu projeto surpresa para a chefia.


MINHA SUJESTAO:

PRIMEIRAMENTE ME PERDOEM TODOS PELO QUE VOU DIZER, EU AMO LINUX MAS TENHO QUE ADMITIR...

Se vc vai somente implementar acesso a pastas na rede, e nao vai ter muitos ajustes a manutenção, ataque de samba, dizem nao ser tao dificil implementar (nao implementei, somente administrei e dei manutenções).

mas...

se vai cadastrar muitas contas, vai fazer muitas modificações (criar usuarios, excluir, mexer em permissoes, etc..) constantemente, implemente um 2003 server... essas manutenções constantes quando feitas no samba (linux - texto) sao trabalhosas, braçais e levam bem mais tempo... esta é minha opiniao até este momento.