Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
br
Squidguard
- Introdução
O Squidguard é um plugin redirecionador, controlador de acesso e filtro para o Web Proxy Cache Squid. O Squidguard
além de ser livre (segue a licença GPL) é muito flexível, extremamente rápido, fácil de instalar e portável (roda em
AIX, Dec-Unix, FreeBSD, Linux e Solaris).
O Squidguard pode ser usado para:
- limitar o acesso à servidores web para alguns usuários a partir de uma lista de URLs ou servidores conhecidos;
- bloquear o acesso à algumas URLs de acordo com uma lista de expressões regulares ou palavras para alguns
usuários;
- ter diferentes regras de acesso de acordo com o dia, dia da semana, hora e etc;
Portabilidade:
Uma das características do Squidguard é a sua portabilidade. Apesar de ter sido desenvolvido num sistema Sun Solaris
2.8, foi compilado e testado com sucesso nos sistemas:
- AIX;
- Dec-Unix;
- FreeBSD;
- RedHat;
- Solaris.
Toda vez que o Squid é iniciado ele gera um número configurável de subprocessos do Squidguard. Quando o Squid
recebe a requisição de acesso a uma URL, manda uma linha com o formato URL ip-address/fqdn ident method\n através
de um pipe para a entrada padrão de um subprocesso Squidguard. Este então checa a informação de acordo com as suas
lista e decide se a URL deve passar sem mudanças ou não.
A primeira atitude que o Squidguard toma ao receber a requisição é procurar um grupo para o cliente baseado no
endereço ip, num nome de domínio opcional e um id de usuário. Se o cliente não pertence a nenhum grupo, então a ação
definida como padrão é tomada. Depois de achado o grupo o filtro aplica as regras de reescrita de acordo com o grupo,
caso elas não existam, ele aplica a regra padrão. Se a URL foi modificada por uma regra de reescrita, então a nova URL
e as informações complementares são retornadas. Caso não haja modificação na URL, uma linha em branco é retornada.
Depois de todos esse procedimentos o squid recebe a linha com o retorno através de um pipe. Para URLs que foram
"aprovadas" o retorno é um \n, para as bloqueadas ou modificadas o retorno é uma linha como new_URL ip-
address/fqdn ident method\n. Finalmente o Squid redireciona a página sem que o usuário ou o browser percebam.
http://www.jasonnfedora.eti.br Fornecido por Joomla! Produzido em: 3 August, 2009, 12:01
cristianofurtado.eti.br
Há também como fazer com que o usuário perceba o redirecionamento pedindo para o browser requisitar a nova URL.
Distribuição Testada:
- Fedora 8
Dependências Necessárias
- squid-2.6.STABLE17-1.fc8
- squidGuard-1.2.0-15.fc7
- iptables-1.3.8-6.fc8
- iptables-ipv6-1.3.8-6.fc8
1- Passo
2- Passo
Para começarmos vamos fazer a configuração do squid. Como root acesse ao arquivo squid.conf e insira as linhas abaixo:
#vim /etc/squid/squid.conf
hierarchy_stoplist cgi-bin ?
visible_hostname ipx
coredump_dir /var/spool/squid
3- Passo
Agora vamos configurar o squidGuard. Insira o arquivo squidGuard.conf como informado abaixo:
#
# CONFIG FILE FOR SQUIDGUARD
#
dbhome /var/squidGuard/blacklists
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 - 18:00
}
#
# 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 10.114.60.1
# user root foo bar
within workhours
}
src rede_local {
ip 192.168.0.0/24
}
src bar-clients {
ip 10.114.60.5
}
http://www.jasonnfedora.eti.br Fornecido por Joomla! Produzido em: 3 August, 2009, 12:01
cristianofurtado.eti.br
#
# DESTINATION CLASSES:
#
dest good {
}
dest local {
}
dest adult {
domainlist blacklists/porn/domains
urllist blacklists/porn/urls
expressionlist blacklists/porn/expressions
redirect http://192.168.0.1/index.html
}
dest mail {
domainlist blacklists/mail/domains
urllist blacklists/mail/urls
redirect http://192.168.0.1/index.html
}
acl {
admin {
pass any
}
rede_local {
pass good !in-addr !adult !mail any
} else {
pass any
}
bar-clients {
pass local none
}
default {
pass local none
rewrite dmz
redirect
http://admin.foo.bar.no/cgi/blocked?clientaddr=%a+clientname=%n+clientident=%i+srcclass=%s+targetclass=%t+url=%u
}
}
dest adult - Local dos arquivos de bloqueio de rede adult (sexo, gays (lembrei de um amigo meu do rio)).
dest mail - Local dos arquivos de bloqueio de emails (gmail, yahoo, hotmail, e outros).
admin {
pass any - Internet 100% liberada para os ips que estão na lista admin
rede_local {
pass good !in-addr !adult !mail any - Fazendo o controle da rede local. e segue da seguinte forma, tudo que for difer
de !in-addr !adult !mail seja liberado.
bar-clients {
pass local none - Liberando lista de acesso para a segunda rede. Neste caso não esta em funcionamento.
default {
pass local none
rewrite dmz
redirect
http://admin.foo.bar.no/cgi/blocked?clientaddr=%a+clientname=%n+clientident=%i+srcclass=%s+targetclass=%t+url=%u
(CONFIGURAÇÃO DEFAULT)