Escolar Documentos
Profissional Documentos
Cultura Documentos
24 de novembro de 2006
Sumário
II Informações Básicas 5
III SquidGuard 10
1 O que é o squidGuard 11
2 Plano de ensino 12
2.1 Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2 Público Alvo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3 Pré-requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.4 Descrição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.5 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.6 Cronograma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.7 Programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.8 Avaliação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.9 Bibliografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
2
Parte I
3
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
Conteúdo
O conteúdo dessa apostila é fruto da compilação de diversos materiais livres publicados na in-
ternet, disponíveis em diversos sites ou originalmente produzido no CDTC em http://www.cdtc.org.br.
O formato original deste material bem como sua atualização está disponível dentro da licença
GNU Free Documentation License, cujo teor integral encontra-se aqui reproduzido na seção de
mesmo nome, tendo inclusive uma versão traduzida (não oficial).
A revisão e alteração vem sendo realizada pelo CDTC (suporte@cdtc.org.br), desde outubro
de 2006. Criticas e sugestões construtivas são bem-vindas a qualquer tempo.
Autores
A autoria deste conteúdo, atividades e avaliações é de responsabilidade de Frederico Oliveira
de Paula (fredaodepaula@cdtc.org.br) .
O texto original faz parte do projeto Centro de Difusão de Tecnolgia e Conhecimento, que vem
sendo realizado pelo ITI em conjunto com outros parceiros institucionais, atuando em conjunto
com as universidades federais brasileiras que tem produzido e utilizado Software Livre, apoiando
inclusive a comunidade Free Software junto a outras entidades no país.
Garantias
O material contido nesta apostila é isento de garantias e o seu uso é de inteira responsabi-
lidade do usuário/leitor. Os autores, bem como o ITI e seus parceiros, não se responsabilizam
direta ou indiretamente por qualquer prejuízo oriundo da utilização do material aqui contido.
Licença
Copyright ©2006,Frederico Oliveira de Paula (fredaodepaula@cdtc.org.br) .
Permission is granted to copy, distribute and/or modify this document under the terms
of the GNU Free Documentation License, Version 1.1 or any later version published by
the Free Software Foundation; with the Invariant Chapter being SOBRE ESSA APOS-
TILA. A copy of the license is included in the section entitled GNU Free Documentation
License.
4
Parte II
Informações Básicas
5
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
Sobre o CDTC
Objetivo Geral
Objetivo Específico
Guia do aluno
Neste guia, você terá reunidas uma série de informações importantes para que você comece
seu curso. São elas:
• Primeiros passos
É muito importante que você entre em contato com TODAS estas informações, seguindo o
roteiro acima.
Licença
Copyright ©2006, Frederico Oliveira de Paula (fredaodepaula@cdtc.org.br) .
É dada permissão para copiar, distribuir e/ou modificar este documento sob os termos
da Licença de Documentação Livre GNU, Versão 1.1 ou qualquer versão posterior
6
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
públicada pela Free Software Foundation; com o Capitulo Invariante SOBRE ESSA
APOSTILA. Uma cópia da licença está inclusa na seção entitulada "Licença de Docu-
mentação Livre GNU".
• 5. Organização pessoal: planejar e organizar tudo é fundamental para facilitar a sua revisão
e a sua recuperação de materiais.
• 6. Vontade para realizar as atividades no tempo correto: anotar todas as suas obrigações e
realizá-las em tempo real.
• 10. Responsabilidade: ser responsável por seu próprio aprendizado. O ambiente virtual não
controla a sua dedicação, mas reflete os resultados do seu esforço e da sua colaboração.
A primeira é o uso dos fóruns de notícias e de dúvidas gerais que se distinguem pelo uso:
. O fórum de notícias tem por objetivo disponibilizar um meio de acesso rápido a informações
que sejam pertinentes ao curso (avisos, notícias). As mensagens postadas nele são enviadas a
todos participantes. Assim, se o monitor ou algum outro participante tiver uma informação que
interesse ao grupo, favor postá-la aqui.
Porém, se o que você deseja é resolver alguma dúvida ou discutir algum tópico específico do
curso. É recomendado que você faça uso do Forum de dúvidas gerais que lhe dá recursos mais
7
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
. O fórum de dúvidas gerais tem por objetivo disponibilizar um meio fácil, rápido e interativo
para solucionar suas dúvidas e trocar experiências. As mensagens postadas nele são enviadas
a todos participantes do curso. Assim, fica muito mais fácil obter respostas, já que todos podem
ajudar.
Se você receber uma mensagem com algum tópico que saiba responder, não se preocupe com a
formalização ou a gramática. Responda! E não se esqueça de que antes de abrir um novo tópico
é recomendável ver se a sua pergunta já foi feita por outro participante.
. Uma wiki é uma página web que pode ser editada colaborativamente, ou seja, qualquer par-
ticipante pode inserir, editar, apagar textos. As versões antigas vão sendo arquivadas e podem
ser recuperadas a qualquer momento que um dos participantes o desejar. Assim, ela oferece um
ótimo suporte a processos de aprendizagem colaborativa. A maior wiki na web é o site "Wikipé-
dia", uma experiência grandiosa de construção de uma enciclopédia de forma colaborativa, por
pessoas de todas as partes do mundo. Acesse-a em português pelos links:
Primeiros Passos
Para uma melhor aprendizagem é recomendável que você siga os seguintes passos:
• Ler a Ambientação do Moodle para aprender a navegar neste ambiente e se utilizar das
ferramentas básicas do mesmo;
Perfil do Tutor
Segue-se uma descrição do tutor ideal, baseada no feedback de alunos e de tutores.
• fornece explicações claras acerca do que ele espera, e do estilo de classificação que irá
utilizar;
8
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
• identifica as nossas falhas, mas corrige-as amavelmente’, diz um estudante, ’e explica por-
que motivo a classificação foi ou não foi atribuída’;
• tece comentários completos e construtivos, mas de forma agradável (em contraste com um
reparo de um estudante: ’os comentários deixam-nos com uma sensação de crítica, de
ameaça e de nervossismo’)
9
Parte III
SquidGuard
10
Capítulo 1
O que é o squidGuard
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).
Ao final deste curso o aluno terá conhecimento suficiente para instalar, configurar e manter
um Web Proxy Squid utilizando o filtro Squidguard.
O curso, com base na distribuição Debian, tem uma semana, o conteúdo do curso estará
visível somente a partir da data de início. Para começar o curso você deve ler o Guia do aluno a
seguir.
11
Capítulo 2
Plano de ensino
2.1 Objetivo
Qualificar técnicos para a instalação e configuração do filtro squidGuard.
2.3 Pré-requisitos
Os usuários deverão ser, necessariamente, indicados por empresas públicas e ter conhecimento
básico internet, filtros, pacotes, Squid e redes.
2.4 Descrição
O curso de squidGuard será realizado na modalidade EAD e utilizará a plataforma Moodle como
ferramenta de aprendizagem. Ele é composto de um módulo de aprendizado que contém ao seu
final uma avaliação de aprendizado. O material didático estará disponível on-line de acordo com
as datas pré-estabelecidas no calendário. A versão utilizada para o squidGuard será a 1.1.4.
2.5 Metodologia
O curso está dividido da seguinte maneira:
2.6 Cronograma
• Semana 1
• Introdução;
• Instalando o squidGuard;
12
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
• Configurando o squidGuard;
• A base de dados.
As lições, disponíveis em cada módulo, contém o contéudo principal. Elas poderão ser acessadas
quantas vezes forem necessárias, desde que esteja dentro da semana programada. Ao final de
uma lição, você receberá uma nota de acordo com o seu desempenho. Caso sua nota numa
determinada lição for menor do que 6.0, sugerimos que você faça novamente esta lição. // Ao final
do curso serão disponibilizadas as avaliações referentes aos módulos estudados anteriormente.
Somente as notas das avaliações serão consideradas para a nota final. Todos os módulos ficarão
visíveis para que possam ser consultados durante a avaliação final. // Para conhecer as demais
atividades de cada módulo leia o tópico seguinte: "Ambientação do Moodle". // Os instrutores
estarão a sua disposição ao longo de todo curso. Qualquer dúvida deve ser enviada ao fórum
correspondente. Diariamente os monitores darão respostas e esclarecimentos.
2.7 Programa
O curso oferecerá o seguinte conteúdo:
• Introdução
• Instalação do squidGuard
• Configuração
2.8 Avaliação
Toda a avaliação será feita on-line.
Aspectos a serem considerados na avaliação:
Instrumentos de avaliação:
• AF = Avaliações
13
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
2.9 Bibliografia
• http://www.squidguard.org/
• http://www.squid-cache.org/
• http://www.linuxman.pro.br/node/1/
14
Capítulo 3
3.1 Introdução
Uma pequena lição introdutória sobre o squidGuard e suas principais características.
3.1.1 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;
3.1.2 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;
15
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
• Dec-Unix;
• FreeBSD;
• RedHat;
• Solaris.
3.2.1 Instalação
Para fazer a instalação do squidGuard é necessário, antes de mais nada, ter o Squid instalado
e configurado. A instalação do Squid é abordada rápidamente no texto Instalando o Squid na
página principal do curso.
Serão abordados aqui dois métodos de instalação do squidGuard. O primeiro é o mais fácil,
mas além de ser pouco customizável é apenas para a distribuição Debian e derivadas (Ubuntu,
Xandros, Kurumin ...). O Segundo método pode ser aplicado em qualquer distribuição, inclusive
Debian.
16
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
3.2.2 Pré-requisitos
Para instalar o squidGuard alguns requisitos devem estar instalados previamente no sistema.
Vários deles já foram utilizados para a instalação do Squid, então você já deve possuí-los. Para
a instalação via apt-get (Debian e derivados), os pacotes necessários são:
• debconf
• libc6
• libc6.1
• libdb4.1
• liburi-perl
• libwww-perl
• perl
• squid
Provavelmente se o computador não tiver esses pacotes, eles serão instalados automática-
mentes pelo apt.
Como esses são programas utilizados na instalação de diversos outros programas, será abor-
dada apenas a instalação da biblioteca Berkeley DB, quanto a instalação dos demais, podem ser
feitas perguntas no Fórum de dúvidas gerais.
usuario@debian: $ su Password:
Depois de logado como o usuário root basta dar o comando a seguir para instalar o programa:
17
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
Depois disso aparecerão duas telas de configuração como as que seguem abaixo:
18
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
19
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
Na segunda e última tela aparece uma pergunta a respeito da lista negra do squidguard, isso
será explicado mais à frente, por enquanto selecione a opção <Não> e precione Enter.
20
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
Depois de baixar o pacote, como o usuário root, crie uma pasta onde ele será descompactado.
debian: # cd /local/src
debian:/local/src#: gzip -dc /local_onde_está_o_pacote/db-versão.tar.gz | tar xvf -
Com isso será criada a pastra db-versão dentro do diretório /local/src. Entre nessa pasta.
debian:/local/src#: cd db-versão
Dependendo da versão do pacote que foi baixado o arquivo de configuração pode estar na pasta
principal ou na pasta dist. Depois de achar o arquivo de configuração, execute com o comando:
debian:/local/src/db-versão#: ./configure
ou
debian:/local/src/db-versão#: cd dist
debian:/local/src/db-versão/dist#: ./configure
debian:/local/src/db-versão#: make
debian:/local/src/db-versão#: make install
debian: # cd /local/src
debian:/local/src# gzip -dc /local_onde_está_o_pacote/squidGuard-versão.tar.gz | tar xvf -
debian:/local/src# cd squidGuard-versão
debian:/local/src/squidGuard-versão# ./configure
debian:/local/src/squidGuard-versão# make
21
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
É possivel compilar e instalar o squidGuard com outras opções, para isso leia a documentação
que vem com o pacote ou entre no site do Squidguard http://www.squidguard.org/install/ .
Se o programa foi instalado "na mão", então provavelmente o arquivo terá que ser criado.
Agora, para editar, escolha o seu editor de texto preferido (gedit, VIM, nano, ...).
1. No começo do arquivo devem vir os caminhos para os demais arquivos utilizados pelo squid-
Guard (como logdir e dbhome);
5. Regras de reescrita;
Algumas coisas como regras de reescrita e declarações de tempo podem parecer estranhas
ou incompreensíveis no momento, mas serão explicadas no decorrer do curso.
Palavras reservadas
Algumas palavras são reservadas para o próprio squidGuard, por isso devem ser evitadas.
Abaixo segue a lista com essas palavras:
• acl;
22
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
• fri;
• outside;
• sun;
• urllist;
• anonymous;
• friday;
• pass;
• sunday;
• user;
• date;
• fridays;
• redirect;
• sundays;
• userlist;
• dbhome;
• ip;
• rew;
• thu;
• wed;
• dest;
• log;
• rewrite;
• thursday;
• wednesday;
• destination;
• logdir;
• sat;
• thursdays;
• wednesdays;
23
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
• domain;
• logfile;
• saturday;
• time;
• weekly;
• domainlist;
• mon;
• saturdays;
• tue;
• within;
• else;
• monday;
• source;
• tuesday;
• expressionlist;
• mondays;
• src;
• tuesdays;
A diretiva logdir define o diretório com os arquivos de log do filtro. Os arquivos padrões são o
squidGuard.error e o squidGuard.log.
24
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
time workhours {
weekly mtwhf 08:00 - 16:30
date *-*-01 08:00 - 16:30
}
Se, por exemplo, quiséssemos bloquear o site Youtube apenas durante a semana e em horá-
rio de expediente, então faríamos:
time youtube_livre { weekly mtwhf 00:00 - 08:00 18:00 - 24:00 #Libera o Youtube apenas
fora do horário comercial
weekly saturdays sundays # Libera nos fins de semana
}
Se quiséssemos bloquear o acesso ao Orkut durante todos os dias, incluido os fins de semana
e liberá-lo apenas entre 00:00 e 07:00 :
Nesse caso todo natal seria liberado o acesso a tudo para um determinado grupo. (Opção
nada recomendável!!!!!)
Várias outras configurações podem ser feitas, como combinar vários dias para serem libera-
dos, um intervalo de tempo numa determinada data... Para saber um pouquinho mais entre no
site do squidGuard e leia sobre o arquivo de configuração.
Obs.: Os dias da semana podem ser representados de várias maneiras diferentes no arquivo
de configuração:
25
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
• pode ser, por exemplo, 192.168.1.198 para bloquear apenas a máquina com esse ip;
Para que seja usado esse arquivo deve ser posto ou o caminho absoluto do arquivo ou o
caminho relativo à diretiva dbhome. Se a diretiva dbhome for /var/squidguard/db e o arquivo
estiver em /var/squidguard/db/ips/lista, então deve-se usar iplist ip/lista.
dest sites_improprios {
domainlist improprios/dominios
urllist improprios/urls
expressionlist improprios/expressoes
}
26
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
Assim como nos grupos de usuários, pode ser declarado o caminho relativo ou o caminho
absoluto do arquivo.
rew get-local {
s@.*/cb32e46.exe$@http://ftp/pub/www/client/windows/cb32e46.exe@r
s@.*/cc32e46.exe$@http://ftp/pub/www/client/windows/cc32e46.exe@r
s@.*/cp32e46.exe$@http://ftp/pub/www/client/windows/cp32e46.exe@r
}
src usuarios {
ip 192.168.20.0/24
}
dest sites_improprios {
domainlist improprios/dominios
urllist improprios/urls
expressionlist improprios/expressoes
}
dest youtube{
domainlist youtube/dominios
urllist youtube/urls
}
Vamos então construir uma acl que libere o youtube para todos os empregados de uma em-
presa em um determinado horario mas continue bloqueando os sites impróprios.
acl { usuarios within youtube_livre {
pass !sites_improprios all
} else {
pass !sites_improprios !youtube all
27
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
}
}
Vamos agora entender a acl linha por linha. A linha usuarios within youtube_livre significa que
a regra se aplica aos usuários do grupo usuarios, dentro do tempo youtube_livre (entre 18:00
e 08:00). Na linha pass !sites_improprios all é definido que eles terão acesso à todos os sites
exceto os que estão no grupo sites_impróprios. Mas se esses usuários estiverem fora do intervalo
de tempo então pass !sites_improprios !youtube all, eles terão acesso à todos os sites menos o
youtube e os site_improprios.
default {
pass none
redirect http://localhost/pagina_de_redirecionamento/redireciona.html
}
ou tente:
squid -k reconfigure
Se tudo estiver certo bastar abrir o browser e tentar acessar os sites que supostamente não
poderiam ser acessados.
28
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
devem ser mais completas quanto possível. Existem na intenet diversas dessas listas, inclusive
no site do filtro podem ser encontradas para download
29
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
3.5.1 Instalação
Todo o material dessa página foi baseado no texto "Configurando um Squid ’Ninja’"de Eri Ramos
Bastos com pequenas alterações. O material original encontra-se no endereço http://www.linuxman.pro.br/squ
Se você não precisa de nenhuma feature muito sofisticada no seu squid (90% dos casos não
precisa), não há porque instalar via código-fonte baixado do site do squid.
Além de estar disponível nos CDs da distribuição, ainda é possível baixar as mais novas ver-
sões já empacotadas no sistema RPM (Red Hat Package Manager). Para isso acesse o link
http://www.rpmfind.net/linux/rpm2html/search.php?query=squid& submit=Search+...& system=redhat&
arch=\
E depois:
# rpm -ivh squid.x.y.z.rpm
Instalando em um sistema baseado em Debian
O Debian sempre prezou pela facilidade de instalação a atualização de pacotes, com seu sistema
apt, que facilita muito a vida dos administradores. Para instalar o squid basta executar o comando:
# apt-get install squid
Baixando o código-fonte
Caso queira o controle de banda, tópico avançado abordado aqui, instale o squid pelo fonte, de
acordo com as instruções.
Na data de criação desse documento, a versão mais recente (estável) do squid era a 2.5STA-
BLE1.
Verifique a versão mais recente em http://www.squid-cache.org/Versions/v2/.
# groupadd squid
# useradd -g squid -s /dev/null squid >/dev/null 2>&1
# wget http://www.squid-cache.org/Versions/v2/2.5/squid-2.5.STABLE1-src.tar.gz
# tar zxvf squid-2.5.STABLE1-src.tar.gz
#cd squid-2.5.STABLE1
# ./configure –enable-delay-pools –enable-cache-digests –enable-poll –disable-ident-lookups
–enable-truncate –enable-removal-policies –enable-arp-acl
# make all
# make install
# cd auth_modules/NCSA
# make
# make install
Limpando o squid.conf
O arquivo de configuração do squid é o squid.conf, normalmente ele se encontra em /etc/squid.conf
ou em /usr/local/squid/etc/squid.conf. Caso não encontre o seu em nenhum desses lugares,
procure-o com:
# locate squid.conf
ou
30
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
# find squid.conf
Pode parecer fútil, mas uma limpeza inicial no arquivo squid.conf pode ser bem útil. O arquivo de
configuração original tem, em média, 2000 linhas.
# cp squid.conf squid.conf.original # egrep -v "#̂|$̂"squid.conf.original > squid.conf
Para mais informações sobre o Squid, sua instalação e suas configurações matricule-se no nosso
curso de Squid, entre no site http://www.linuxman.pro.br/squid/, ou no site de documentação do
próprio programa http://www.squid-cache.org/Doc/
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 {
31
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
#src bar-clients {
# ip 172.16.4.0/26
#}
#
# DESTINATION CLASSES:
#
dest good {
}
dest local {
}
#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+srcc
/>#}
acl {
# admin {
# pass any
#}
# bar-clients {
# pass local none
#}
default {
pass local none
# rewrite dmz
# redirect http://admin.foo.bar.no/cgi-bin/squidGuard.cgi?clientaddr=%a+clientname=%n+clientident=%i+srcc
/> }
}
32