SlideShare uma empresa Scribd logo
1 de 33
Baixar para ler offline
SquidGuard
18 de abril de 2007
Sumário
I Sobre essa Apostila 2
II Informações Básicas 4
III SquidGuard 9
1 O que é o squidGuard 10
2 Plano de ensino 11
2.1 Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2 Público Alvo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3 Pré-requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.4 Descrição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.5 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.6 Cronograma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.7 Programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.8 Avaliação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.9 Bibliografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3 Módulo I - Introdução, instalação e configuração 14
3.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.1.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.1.2 Portabilidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.1.3 Como funciona o Squidguard? . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2 Instalando o squidGuard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2.1 Instalação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2.2 Pré-requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2.3 Instalando com o apt-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2.4 Instalando a partir do código fonte . . . . . . . . . . . . . . . . . . . . . . . . 19
3.2.5 Compilando e instalando o Squidguard . . . . . . . . . . . . . . . . . . . . . 20
3.3 Configurando o squidGuard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.3.1 Configurando o squidGuard . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.3.2 Aspectos relevantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.3.3 Declarando o caminho dos arquivos . . . . . . . . . . . . . . . . . . . . . . . 23
3.3.4 Declarando os intervalos de tempo . . . . . . . . . . . . . . . . . . . . . . . . 24
3.3.5 Declarando os grupos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.3.6 Grupos de destino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
3.3.7 Regras de reescrita . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.3.8 Configurando as ACLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.3.9 Configurando as ACLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.3.10 Fazendo o squidGuard funcionar com o Squid . . . . . . . . . . . . . . . . . 27
3.4 A base de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.4.1 A base de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.4.2 Listas de domínio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.4.3 Listas de URLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.4.4 Listas de expressões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.5 Texto complementar - Instalando o Squid . . . . . . . . . . . . . . . . . . . . . . . . 28
3.5.1 Instalação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.6 Exemplo do squidGuard.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2
Parte I
Sobre essa Apostila
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. Críticas e sugestões construtivas são bem-vindas a qualquer tempo.
Autores
A autoria deste é de responsabilidade de Frederico Oliveira de Paula (fredaodepaula@cdtc.org.br)
.
O texto original faz parte do projeto Centro de Difusão de Tecnologia e Conhecimento, que
vem sendo realizado pelo ITI (Instituto Nacional de Tecnologia da Informação) 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.
Informações adicionais podem ser obtidas através do email ouvidoria@cdtc.org.br, ou da
home page da entidade, através da URL http://www.cdtc.org.br.
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, Instituto Nacional de Tecnologia da Informação (cdtc@iti.gov.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
O Projeto CDTC visa a promoção e o desenvolvimento de ações que incentivem a dissemina-
ção de soluções que utilizem padrões abertos e não proprietários de tecnologia, em proveito do
desenvolvimento social, cultural, político, tecnológico e econômico da sociedade brasileira.
Objetivo Específico
Auxiliar o Governo Federal na implantação do plano nacional de software não-proprietário e
de código fonte aberto, identificando e mobilizando grupos de formadores de opinião dentre os
servidores públicos e agentes políticos da União Federal, estimulando e incentivando o mercado
nacional a adotar novos modelos de negócio da tecnologia da informação e de novos negócios
de comunicação com base em software não-proprietário e de código fonte aberto, oferecendo
treinamento específico para técnicos, profissionais de suporte e funcionários públicos usuários,
criando grupos de funcionários públicos que irão treinar outros funcionários públicos e atuar como
incentivadores e defensores de produtos de software não proprietários e código fonte aberto, ofe-
recendo conteúdo técnico on-line para serviços de suporte, ferramentas para desenvolvimento de
produtos de software não proprietários e de seu código fonte livre, articulando redes de terceiros
(dentro e fora do governo) fornecedoras de educação, pesquisa, desenvolvimento e teste de pro-
dutos de software livre.
Guia do aluno
Neste guia, você terá reunidas uma série de informações importantes para que você comece
seu curso. São elas:
• Licenças para cópia de material disponível
• Os 10 mandamentos do aluno de Educação a Distância
• Como participar dos foruns e da wikipédia
• Primeiros passos
É muito importante que você entre em contato com TODAS estas informações, seguindo o
roteiro acima.
Licença
Copyright ©2006, Instituto Nacional de Tecnologia da Informação (cdtc@iti.gov.br).
6
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
É 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
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".
Os 10 mandamentos do aluno de educação online
• 1. Acesso à Internet: ter endereço eletrônico, um provedor e um equipamento adequado é
pré-requisito para a participação nos cursos a distância.
• 2. Habilidade e disposição para operar programas: ter conhecimentos básicos de Informá-
tica é necessário para poder executar as tarefas.
• 3. Vontade para aprender colaborativamente: interagir, ser participativo no ensino a distân-
cia conta muitos pontos, pois irá colaborar para o processo ensino-aprendizagem pessoal,
dos colegas e dos professores.
• 4. Comportamentos compatíveis com a etiqueta: mostrar-se interessado em conhecer seus
colegas de turma respeitando-os e fazendo ser respeitado pelo mesmo.
• 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.
• 7. Curiosidade e abertura para inovações: aceitar novas idéias e inovar sempre.
• 8. Flexibilidade e adaptação: requisitos necessário à mudança tecnológica, aprendizagens
e descobertas.
• 9. Objetividade em sua comunicação: comunicar-se de forma clara, breve e transparente é
ponto - chave na comunicação pela Internet.
• 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.
Como participar dos fóruns e Wikipédia
Você tem um problema e precisa de ajuda?
Podemos te ajudar de 2 formas:
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
7
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
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
efetivos para esta prática.
. 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.
A segunda forma se dá pelas Wikis:
. 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:
• Página principal da Wiki - http://pt.wikipedia.org/wiki/
Agradecemos antecipadamente a sua colaboração com a aprendizagem do grupo!
Primeiros Passos
Para uma melhor aprendizagem é recomendável que você siga os seguintes passos:
• Ler o Plano de Ensino e entender a que seu curso se dispõe a ensinar;
• Ler a Ambientação do Moodle para aprender a navegar neste ambiente e se utilizar das
ferramentas básicas do mesmo;
• Entrar nas lições seguindo a seqüência descrita no Plano de Ensino;
• Qualquer dúvida, reporte ao Fórum de Dúvidas Gerais.
Perfil do Tutor
Segue-se uma descrição do tutor ideal, baseada no feedback de alunos e de tutores.
O tutor ideal é um modelo de excelência: é consistente, justo e profissional nos respectivos
valores e atitudes, incentiva mas é honesto, imparcial, amável, positivo, respeitador, aceita as
idéias dos estudantes, é paciente, pessoal, tolerante, apreciativo, compreensivo e pronto a ajudar.
8
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
A classificação por um tutor desta natureza proporciona o melhor feedback possível, é crucial, e,
para a maior parte dos alunos, constitui o ponto central do processo de aprendizagem.’ Este tutor
ou instrutor:
• fornece explicações claras acerca do que ele espera, e do estilo de classificação que irá
utilizar;
• gosta que lhe façam perguntas adicionais;
• 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’)
• dá uma ajuda complementar para encorajar um estudante em dificuldade;
• esclarece pontos que não foram entendidos, ou corretamente aprendidos anteriormente;
• ajuda o estudante a alcançar os seus objetivos;
• é flexível quando necessário;
• mostra um interesse genuíno em motivar os alunos (mesmo os principiantes e, por isso,
talvez numa fase menos interessante para o tutor);
• escreve todas as correções de forma legível e com um nível de pormenorização adequado;
• acima de tudo, devolve os trabalhos rapidamente;
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 Ca-
che 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.2 Público Alvo
Técnicos que desejam trabalhar com o squidGuard.
2.3 Pré-requisitos
Os usuários deverão ser, necessariamente, indicados por empresas públicas e ter conheci-
mento 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:
• Iniciativa e autonomia no processo de aprendizagem e de produção de conhecimento;
• Capacidade de pesquisa e abordagem criativa na solução dos problemas apresentados.
Instrumentos de avaliação:
• Participação ativa nas atividades programadas.
• Avaliação ao final do curso.
• O participante fará várias avaliações referente ao conteúdo do curso. Para a aprovação e
obtenção do certificado o participante deverá obter nota final maior ou igual a 6.0 de acordo
com a fórmula abaixo:
• Nota Final = ((ML x 7) + (AF x 3)) / 10 = Média aritmética das lições
• 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
Módulo I - Introdução, instalação e
configuração
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, extrema-
mente 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;
• redirecionar URLs bloqueadas para uma página informativa;
• redirecionar usuários não registrados para uma página de registro;
• redirecionar os downloads mais populares para uma cópia local;
• redirecionar banners para um GIF vazio;
• ter diferentes regras de acesso de acordo com o dia, dia da semana, hora e etc;
• ter diferentes regras de acesso para diferentes tipos de usuários.
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.1.3 Como funciona o Squidguard?
Toda vez que o Squid é iniciado ele gera um número configurável de subprocessos do Squid-
guard. Quando o Squid recebe a requisição de acesso a uma URL, manda uma linha com o
formato URL ip-address/fqdn ident methodn 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 methodn. Finalmente o Squid redireciona a
página sem que o usuário ou o browser percebam. Há também como fazer com que o usuário
perceba o redirecionamento pedindo para o browser requisitar a nova URL.
Para saber mais sobre a interface de redirecionamento do Squid, que é a utilizada pelo Squid-
guard, entre em http://www.squid-cache.org/Versions/v1/1.1/1.1.22/Release-Notes-1.1.txt.
3.2 Instalando o squidGuard
Instalação do squidGuard a partir do código fonte e também do apt.
3.2.1 Instalação
Para fazer a instalação do squidGuard é necessário, antes de mais nada, ter o Squid insta-
lado 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.
Para a instalação utilizando o código fonte os requisitos são:
• uma ferramenta de make compatível (Gmake);
• um compilador ANSI C (gcc-2.7.2.3 ou superior);
• parser generator compatível com yacc (Bison);
• gerador de análise lexical compatível com lex (Flex);
• uma biblioteca de expressões regulares compatível com regcomp()/regexec (Regex) ;
• gzip para descompactar o pacote;
• a versão 2.x da biblioteca Berkeley DB.
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.
3.2.3 Instalando com o apt-get
A instalação utilizando a ferramenta apt é a mais rápida e fácil. Com o terminal aberto, logue
como o usuário root:
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
debian:/home/usuario# apt-get install squidguard
Aparecerá algo como:
Lendo Lista de Pacotes... Pronto
Construindo Árvore de Dependências... Pronto
Pacotes sugeridos :
chastity-list
Os NOVOS pacotes a seguir serão instalados:
squidguard
0 pacotes atualizados, 1 pacotes novos instalados, 0 a serem removidos e 0 não atualiza-
dos.
É preciso fazer o download de 136kB/136kB de arquivos.
Depois de desempacotamento, 451kB adicionais de espaço em disco serão usados.
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
Nessa primeira tela aperte apenas a tecla Enter.
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.
3.2.4 Instalando a partir do código fonte
Para instalar o Squidguard a partir do código fonte todos os pré-requisitos anteriormente ci-
tados devem estar disponíveis. Como um pré-requisito para a instalação do Squidguard é ter o
Squid instalado, então a maioria dos pacotes já devem estar disponíveis na máquina. Será abor-
dada aqui apenas a instalação da biblioteca Berkeley DB e do Squidguard em si.
Instalando a biblioteca Berkeley DB
O primeiro passo para a instalação é baixar o pacote do endereço http://dev.sleepycat.com/downloads/rele
O Squidguard foi desenvolvido sobre a versão 2.x da Berkeley DB, por isso utilize a versão dois
ou posteriores.
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: # mkdir -p /local/src
O próximo passo é descompactar o pacote.
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
Se tudo der certo agora basta compilar e instalar a biblioteca.
debian:/local/src/db-versão#: make
debian:/local/src/db-versão#: make install
3.2.5 Compilando e instalando o Squidguard
O primeiro passo para instalar o Squidguard é baixar o pacote do endereço http://ftp.tdcnorge.no/pub/www/
Depois de baixado o pacote, se você ainda não criou, crie o diretório /local/src.
debian: # mkdir -p /local/src
Entre nesse diretório e descompacte o pacote.
debian: # cd /local/src
debian:/local/src# gzip -dc /local_onde_está_o_pacote/squidGuard-versão.tar.gz | tar xvf -
Com isso será criado o diretório squidGuard-versão, entre nele:
debian:/local/src# cd squidGuard-versão
Agora basta compilar e instalar o programa.
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
debian:/local/src/squidGuard-versão# make install
É 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/ .
3.3 Configurando o squidGuard
Como configurar o filtro.
3.3.1 Configurando o squidGuard
Se o squidGuard foi instalado a partir do apt, provavelmente haverá um arquivo de configu-
ração comentado no diretório /etc/squid/ chamado squidGuard.conf, nesse caso basta altererá-lo
como for necessário.
Se o programa foi instalado "na mão", então provavelmente o arquivo terá que ser criado.
debian: # touch /etc/squid/squidGuard.conf
Agora, para editar, escolha o seu editor de texto preferido (gedit, VIM, nano, ...).
3.3.2 Aspectos relevantes
Estrutura do arquivo
Alguns aspectos devem ser observados quanto a criação do arquivo squidGuard.conf. O
arquivo tem uma estrutura que é recomendada pelos criadores do filtro. A estrutura é a seguinte:
1. No começo do arquivo devem vir os caminhos para os demais arquivos utilizados pelo squid-
Guard (como logdir e dbhome);
2. Em seguida devem vir as declarações de tempo;
3. Logo depois as declarações de grupo;
4. Declarações de grupo de destino;
5. Regras de reescrita;
6. Por último as regras de controle de acesso.
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;
Além dessas palavras devem ser evitados também os símbolos:
• # - usado para comentar o arquivo;
• { } - usados para delimitar o começo e o fim das declarações de grupo;
• - - freqüentemente usado para delimitar um intervalo de tempo.
3.3.3 Declarando o caminho dos arquivos
O squidGuard utiliza alguns arquivos auxiliares como arquivos de log e base de sites. Para
especificar os endereços desses arquivos utilizamos as diretivas logdir e dbhome.
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.
A diretiva dbhome define o diretório com a lista dos arquivos da base.
No caso do padrão, essas configurações ficariam assim:
logdir /usr/local/squidGuard/logs dbhome /usr/local/squidGuard/db
24
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
3.3.4 Declarando os intervalos de tempo
No squidGuard podemos definir em qual espaço de tempo um determindado grupo pode aces-
sar um endereço na internet, qual não pode e etc. Podem haver diversos intervalos de tempo
diferentes para serem utilizados por grupos diferentes. Olhando a estrutura do squidGuard.conf,
dado como exemplo nesse curso notamos a existência de um intervalo de tempo chamado de
workhours e que esse intervalo vale apenas para os dias da semana entre 8:00 e 16:30. As re-
gras aplicadas utilizando essa diretiva time so valerão no espaço de tempo que estiver coberto
por ela.
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 :
time orkut_bloqueado { weekly * 07:00 - 24:00
} Pode-se também bloquear um endereço pela data de acesso:
time dia_de_natal { date *.12.25
}
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:
• s, sun, sunday, sundays - domingo
• m, mon, monday, mondays - segunda
• t, tue, tuesday, tuesdays - terça
• w, wed, wednesday, wednesdays - quarta
25
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
• h, thu, thursday, thursdays - quinta
• f, fri, friday, fridays - sexta
• a, sat, saturday, saturdays - sábado
3.3.5 Declarando os grupos
Para negar acesso a algum site a um determindo usuário devemos ter esse usuário inserido
num grupo. Para definir grupos usamos o parâmetro source ou src.
Por exemplo, o setor de gerência de redes da empresa usa as máquinas da classe 192.168.10.0/24
enquanto os demais empregados usam as com endereço ip 192.168.20.0/24. Devemos então
separá-los em dois grupos diferentes.
src redes {
ip 192.168.10.0/24
}
src usuarios {
ip 192.168.20.0/24
}
A descrição dos ips podem vir de diversas maneiras:
• pode ser, por exemplo, 192.168.1.198 para bloquear apenas a máquina com esse ip;
• 192.168.10.0/24 como foi usado acima;
• 192.168.10.0/255.255.254.0, onde o endereço depois da barra é a máscara da rede;
Os endereços ip também podem vim de uma lista de um determinado arquivo do sistema,
para isso utilizamos o parâmetro iplist. O arquivo deve ter um formato como:
10.0.0.0/8
192.168.0.0./24
10.10.0.0/12
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.
3.3.6 Grupos de destino
Os grupos de destinos são os endereços que serão bloqueados em si. Para criar um grupo
devemos usar o parâmetro dest ou destination. Dentre destes grupos nós teremos as listas de
domínios, lista de URLs e a lista de expressões. Veremos mais a frente como construir essas
listas e até utilizar algumas que já estão prontas e são bem completas.
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.
3.3.7 Regras de reescrita
A última parte antes de definir as regras de controle de acesso é a definição das regras de
reescrita. Para as regras de reescrita utilizamos rew ou rewrite.
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
}
Segundo o site do squidGuard, para um bom desempenho, é recomendável que as regras de
reescrita sejam limitadas. Em substituição as regras de reescrita utilize redirecionamentos.
3.3.8 Configurando as ACLs
A última parte da criação do squidGuard.conf é a definição das listas de controle de acesso
(ACL). Para isso utilizamos o parâmetroa acl seguido das definições necessárias.
Vamos definir uma acl utilizando os exemplos definidos nas páginas passadas.
time youtube_livre {
weekly mtwhf 00:00 - 08:00 18:00 - 24:00
weekly saturdays sundays
}
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.
3.3.9 Configurando as ACLs
Existe uma regra especial para acls que é a default. Caso nenhuma das regras anteriores seja
verificada numa requisição então a default é aplicada. Se o usuário a acessar um determinado
endereço não estiver em nenhum grupo, essa regra é aplicada. Você pode por exemplo definir
para o default ser negar tudo e redirecionar para uma página local contendo um aviso.
default {
pass none
redirect http://localhost/pagina_de_redirecionamento/redireciona.html
}
3.3.10 Fazendo o squidGuard funcionar com o Squid
Depois de terminadas as alterações no arquivo de configuração, é a hora de fazer o squid-
Guard funcionar. Para isso já é necessário um Squid instalado e funcional. No arquivo de confi-
guração do Squid descomente ou crie a linha:
redirect_program /usr/bin/squidGuard -c /local_onde_está/o_arquivo/squidGuard.conf
Depois disso mande um sinal HUP para o Squid:
kill -HUP ’cat /var/run/squid.pid’
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.
3.4 A base de dados
3.4.1 A base de dados
Para que o squidGuard funcione como um filtro bem eficiente é necessário uma base de dados
bem completa. Por esse motivo as listas de domínios, as listas de URLs e as de expressões
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
3.4.2 Listas de domínio
As listas de domínio devem estar num arquivo texto normal, apenas com os domínios sepa-
rados por linhas. O tamanho dessas listas, segundo os criadores do filtro, "tem uma influência
desprezível no desmpenho", logo, quanto maior a lista, mais eficiente será o filtro em relação
aos bloqueios. Quando um domíno é bloqueado, todos os seus subdomínios também são. Se,
por exemplo, o domínio cdtc.org.br fosse colocado na lista, tanto o site cursos.cdtc.org.br quanto
comunidade.cdtc.org.br seriam bloqueados. Segue abaixo um pequeno fragmento de um arquivo
de domínios relativos à áudio e vídeo.
209.157.71.50 199.85.4.59 212.110.152.70 64.37.112.8 148.122.210.8 66.179.230.80 80.237.216.82
69.46.28.92 mp3hitz.dr.ag mp3.place.cc migliamp3.sites.cc mp3.sites.cc tnpg.cc 40best.com chulo.8m.com
allmp3s.com cream.crimea.com cyberpoolgames.com
3.4.3 Listas de URLs
As listas de URLs seguem o mesmo formato das listas de domínio, cada URL é separada ape-
nas por uma nova linha. Segue abaixo um trecho de um arquivo de URLs utilizado no squidguard.
66.218.77.68/paris/4114 66.218.77.68/researchtriangle/lab/3225 66.218.77.68/sunsetstrip/frontrow/8717
66.218.77.68/sunsetstrip/studio/9490 83.80.16.26/ brouns angelfire.com/az2/freemusic angelfire.com/mb/hon
board.to/soundhouse casema.net/ brouns come.to/cyberjack come.to/deejayc come.to/euro20 come.to/mp3alb
come.to/mtvhits come.to/top_mp3 come.to/voe download.at/mp3universe fly.to/mp3 forward.to/bsp
free.prohosting.com/ eileider geocities.com/damien350 geocities.com/malachi3000 geocities.com/paris/4114
3.4.4 Listas de expressões
As listas de expressões regulares seguem o formato das anteriores, cada expressão numa
linha. As expressões regulares devem ser feitas com muito cuidado para evitar que endereços
que não deviam, sejam bloquados. Diferentemente das listas de domínios e de URLs, listas de
expressões regulares contendo expressões muito longas e complexas podem fazer com que a efi-
ciência do programa caia significadamente, por isso muito cuidado com as expressões utilizadas!
Segue abaixo expressões regulares com o intuito de bloquear sites com conteúdo indevido.
(adultos|adultsight|adultsite|adultsonly|adultweb|blow-?job|bondage|centerfold|cumshot|cyberlust|cyberco
( ˆ|[-.?+=/_0-9])?(anal|babe|boob|breast|busty|clit|cum|cunt|dick|fetish|fuck|hooter|lust|naked|nude|oral|orgy|po
.?+=/_0-9]|$)
3.5 Texto complementar - Instalando o Squid
Uma pequena explicação sobre como instalar o Squid.
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 Ra-
mos Bastos com pequenas alterações. O material original encontra-se no endereço http://www.linuxman.pro.b
Instalando e configurando o Squid
Instalando via binário ou com facilidades do sistema
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.
Instalando em um sistema baseado em Red Hat Linux
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/
3.6 Exemplo do squidGuard.conf
#
# 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 {
31
CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
# 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
#}
#
# 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
# }
# foo-clients within workhours {
# pass good !in-addr !adult any
# } else {
# 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

Mais conteúdo relacionado

Mais procurados

Ruby on rails
Ruby on railsRuby on rails
Ruby on railsTiago
 
Tunelamento
TunelamentoTunelamento
TunelamentoTiago
 
Quanta
QuantaQuanta
QuantaTiago
 
Servidor de emails_seguro
Servidor de emails_seguroServidor de emails_seguro
Servidor de emails_seguroTiago
 
Shell script
Shell scriptShell script
Shell scriptTiago
 
Tcl tk
Tcl tkTcl tk
Tcl tkTiago
 
Java applet
Java appletJava applet
Java appletTiago
 
Java swing
Java swingJava swing
Java swingTiago
 
Python gtk
Python gtkPython gtk
Python gtkTiago
 
De javaparapython
De javaparapythonDe javaparapython
De javaparapythonTiago
 
Nessus
NessusNessus
NessusTiago
 

Mais procurados (20)

Ruby on rails
Ruby on railsRuby on rails
Ruby on rails
 
Vim
VimVim
Vim
 
Squid
SquidSquid
Squid
 
Samba
SambaSamba
Samba
 
Tunelamento
TunelamentoTunelamento
Tunelamento
 
Xdmcp
XdmcpXdmcp
Xdmcp
 
Qemu
QemuQemu
Qemu
 
Quanta
QuantaQuanta
Quanta
 
Servidor de emails_seguro
Servidor de emails_seguroServidor de emails_seguro
Servidor de emails_seguro
 
Shell script
Shell scriptShell script
Shell script
 
Tcl tk
Tcl tkTcl tk
Tcl tk
 
Jspservlets
JspservletsJspservlets
Jspservlets
 
Jdbc
JdbcJdbc
Jdbc
 
Java Basico
Java BasicoJava Basico
Java Basico
 
Java applet
Java appletJava applet
Java applet
 
Java swing
Java swingJava swing
Java swing
 
Python gtk
Python gtkPython gtk
Python gtk
 
J2me
J2meJ2me
J2me
 
De javaparapython
De javaparapythonDe javaparapython
De javaparapython
 
Nessus
NessusNessus
Nessus
 

Destaque

T rnor config_2014
T rnor config_2014T rnor config_2014
T rnor config_2014jmoya222
 
Den otevřených dveří 2014
Den otevřených dveří 2014Den otevřených dveří 2014
Den otevřených dveří 2014Vercaa
 
Intro redes
Intro redesIntro redes
Intro redesTiago
 
Alex Thomson - Resume
Alex Thomson - ResumeAlex Thomson - Resume
Alex Thomson - ResumeAlex Thomson
 
Homicidios Calificado, agravado, concausal y preterintencional.
Homicidios Calificado, agravado, concausal y preterintencional.Homicidios Calificado, agravado, concausal y preterintencional.
Homicidios Calificado, agravado, concausal y preterintencional.al3jandravp
 
Успех снабжения закладывается на этапе разработки 2006 Eeproject Ru
Успех снабжения закладывается на этапе разработки 2006 Eeproject RuУспех снабжения закладывается на этапе разработки 2006 Eeproject Ru
Успех снабжения закладывается на этапе разработки 2006 Eeproject RuYuri Goncharov
 
HASSAN TALEB works CV 111
HASSAN TALEB works CV 111HASSAN TALEB works CV 111
HASSAN TALEB works CV 111Hassan Taleb
 

Destaque (10)

Zope
ZopeZope
Zope
 
T rnor config_2014
T rnor config_2014T rnor config_2014
T rnor config_2014
 
Den otevřených dveří 2014
Den otevřených dveří 2014Den otevřených dveří 2014
Den otevřených dveří 2014
 
Cert_2731677
Cert_2731677Cert_2731677
Cert_2731677
 
Sql
SqlSql
Sql
 
Intro redes
Intro redesIntro redes
Intro redes
 
Alex Thomson - Resume
Alex Thomson - ResumeAlex Thomson - Resume
Alex Thomson - Resume
 
Homicidios Calificado, agravado, concausal y preterintencional.
Homicidios Calificado, agravado, concausal y preterintencional.Homicidios Calificado, agravado, concausal y preterintencional.
Homicidios Calificado, agravado, concausal y preterintencional.
 
Успех снабжения закладывается на этапе разработки 2006 Eeproject Ru
Успех снабжения закладывается на этапе разработки 2006 Eeproject RuУспех снабжения закладывается на этапе разработки 2006 Eeproject Ru
Успех снабжения закладывается на этапе разработки 2006 Eeproject Ru
 
HASSAN TALEB works CV 111
HASSAN TALEB works CV 111HASSAN TALEB works CV 111
HASSAN TALEB works CV 111
 

Semelhante a Squid guard

Monitoramento
MonitoramentoMonitoramento
MonitoramentoTiago
 
Java basico
Java basicoJava basico
Java basicoTiago
 
Instalacao xoops
Instalacao xoopsInstalacao xoops
Instalacao xoopsTiago
 
Jspservlets
JspservletsJspservlets
JspservletsTiago
 
Postfix
PostfixPostfix
PostfixTiago
 
Dovecot
DovecotDovecot
DovecotTiago
 
Iptables
IptablesIptables
IptablesTiago
 
Inst configdebian
Inst configdebianInst configdebian
Inst configdebianTiago
 
Open vpn
Open vpnOpen vpn
Open vpnTiago
 
Open solaris
Open solarisOpen solaris
Open solarisTiago
 
Inkscape
InkscapeInkscape
InkscapeTiago
 
Planejamento em desenvolvimento_de_sistemas
Planejamento em desenvolvimento_de_sistemasPlanejamento em desenvolvimento_de_sistemas
Planejamento em desenvolvimento_de_sistemasTiago
 
Nagios2
Nagios2Nagios2
Nagios2Tiago
 
Drupal
DrupalDrupal
DrupalTiago
 
Ppt pd
Ppt pdPpt pd
Ppt pdTiago
 

Semelhante a Squid guard (20)

Monitoramento
MonitoramentoMonitoramento
Monitoramento
 
Java basico
Java basicoJava basico
Java basico
 
Instalacao xoops
Instalacao xoopsInstalacao xoops
Instalacao xoops
 
Mrtg
MrtgMrtg
Mrtg
 
Jspservlets
JspservletsJspservlets
Jspservlets
 
Postfix
PostfixPostfix
Postfix
 
Dovecot
DovecotDovecot
Dovecot
 
Iptables
IptablesIptables
Iptables
 
Plone
PlonePlone
Plone
 
Ltsp
LtspLtsp
Ltsp
 
Horde
HordeHorde
Horde
 
Inst configdebian
Inst configdebianInst configdebian
Inst configdebian
 
Open vpn
Open vpnOpen vpn
Open vpn
 
Open solaris
Open solarisOpen solaris
Open solaris
 
Inkscape
InkscapeInkscape
Inkscape
 
Planejamento em desenvolvimento_de_sistemas
Planejamento em desenvolvimento_de_sistemasPlanejamento em desenvolvimento_de_sistemas
Planejamento em desenvolvimento_de_sistemas
 
Nagios2
Nagios2Nagios2
Nagios2
 
Drupal
DrupalDrupal
Drupal
 
J2me
J2meJ2me
J2me
 
Ppt pd
Ppt pdPpt pd
Ppt pd
 

Mais de Tiago

Programacao php moodle
Programacao php moodleProgramacao php moodle
Programacao php moodleTiago
 
6572501 ldp-apostila-de-turbo-pascal
6572501 ldp-apostila-de-turbo-pascal6572501 ldp-apostila-de-turbo-pascal
6572501 ldp-apostila-de-turbo-pascalTiago
 
Guia rapido de_pascal
Guia rapido de_pascalGuia rapido de_pascal
Guia rapido de_pascalTiago
 
Python bge
Python bgePython bge
Python bgeTiago
 
Curso python
Curso pythonCurso python
Curso pythonTiago
 
Curso python
Curso pythonCurso python
Curso pythonTiago
 
Aula 01 python
Aula 01 pythonAula 01 python
Aula 01 pythonTiago
 
Threading in c_sharp
Threading in c_sharpThreading in c_sharp
Threading in c_sharpTiago
 
Retirar acentos de_determinado_texto_em_c_sharp
Retirar acentos de_determinado_texto_em_c_sharpRetirar acentos de_determinado_texto_em_c_sharp
Retirar acentos de_determinado_texto_em_c_sharpTiago
 
Remover caracteres especiais_texto_em_c_sharp
Remover caracteres especiais_texto_em_c_sharpRemover caracteres especiais_texto_em_c_sharp
Remover caracteres especiais_texto_em_c_sharpTiago
 
Obter ip da_internet_em_c_sharp
Obter ip da_internet_em_c_sharpObter ip da_internet_em_c_sharp
Obter ip da_internet_em_c_sharpTiago
 
Metodo using no_c_sharp
Metodo using no_c_sharpMetodo using no_c_sharp
Metodo using no_c_sharpTiago
 
Introdução ao c# para iniciantes
Introdução ao c# para iniciantesIntrodução ao c# para iniciantes
Introdução ao c# para iniciantesTiago
 
Interfaces windows em c sharp
Interfaces windows em c sharpInterfaces windows em c sharp
Interfaces windows em c sharpTiago
 
Filestream sistema arquivos
Filestream  sistema arquivosFilestream  sistema arquivos
Filestream sistema arquivosTiago
 
Curso linux professor rafael
Curso linux professor rafaelCurso linux professor rafael
Curso linux professor rafaelTiago
 
Curso de shell
Curso de shellCurso de shell
Curso de shellTiago
 
Controle lpt em_c_sharp
Controle lpt em_c_sharpControle lpt em_c_sharp
Controle lpt em_c_sharpTiago
 
Classes csharp
Classes csharpClasses csharp
Classes csharpTiago
 
C# o basico
C#   o basicoC#   o basico
C# o basicoTiago
 

Mais de Tiago (20)

Programacao php moodle
Programacao php moodleProgramacao php moodle
Programacao php moodle
 
6572501 ldp-apostila-de-turbo-pascal
6572501 ldp-apostila-de-turbo-pascal6572501 ldp-apostila-de-turbo-pascal
6572501 ldp-apostila-de-turbo-pascal
 
Guia rapido de_pascal
Guia rapido de_pascalGuia rapido de_pascal
Guia rapido de_pascal
 
Python bge
Python bgePython bge
Python bge
 
Curso python
Curso pythonCurso python
Curso python
 
Curso python
Curso pythonCurso python
Curso python
 
Aula 01 python
Aula 01 pythonAula 01 python
Aula 01 python
 
Threading in c_sharp
Threading in c_sharpThreading in c_sharp
Threading in c_sharp
 
Retirar acentos de_determinado_texto_em_c_sharp
Retirar acentos de_determinado_texto_em_c_sharpRetirar acentos de_determinado_texto_em_c_sharp
Retirar acentos de_determinado_texto_em_c_sharp
 
Remover caracteres especiais_texto_em_c_sharp
Remover caracteres especiais_texto_em_c_sharpRemover caracteres especiais_texto_em_c_sharp
Remover caracteres especiais_texto_em_c_sharp
 
Obter ip da_internet_em_c_sharp
Obter ip da_internet_em_c_sharpObter ip da_internet_em_c_sharp
Obter ip da_internet_em_c_sharp
 
Metodo using no_c_sharp
Metodo using no_c_sharpMetodo using no_c_sharp
Metodo using no_c_sharp
 
Introdução ao c# para iniciantes
Introdução ao c# para iniciantesIntrodução ao c# para iniciantes
Introdução ao c# para iniciantes
 
Interfaces windows em c sharp
Interfaces windows em c sharpInterfaces windows em c sharp
Interfaces windows em c sharp
 
Filestream sistema arquivos
Filestream  sistema arquivosFilestream  sistema arquivos
Filestream sistema arquivos
 
Curso linux professor rafael
Curso linux professor rafaelCurso linux professor rafael
Curso linux professor rafael
 
Curso de shell
Curso de shellCurso de shell
Curso de shell
 
Controle lpt em_c_sharp
Controle lpt em_c_sharpControle lpt em_c_sharp
Controle lpt em_c_sharp
 
Classes csharp
Classes csharpClasses csharp
Classes csharp
 
C# o basico
C#   o basicoC#   o basico
C# o basico
 

Último

ANATOMIA-EM-RADIOLOGIA_light.plçkjkjiptx
ANATOMIA-EM-RADIOLOGIA_light.plçkjkjiptxANATOMIA-EM-RADIOLOGIA_light.plçkjkjiptx
ANATOMIA-EM-RADIOLOGIA_light.plçkjkjiptxlvaroSantos51
 
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxSlides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxLuizHenriquedeAlmeid6
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividadeMary Alvarenga
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?Rosalina Simão Nunes
 
Mapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docxMapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docxBeatrizLittig1
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalJacqueline Cerqueira
 
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdfPortfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdfjanainadfsilva
 
CLASSE DE PALAVRAS completo para b .pptx
CLASSE DE PALAVRAS completo para b .pptxCLASSE DE PALAVRAS completo para b .pptx
CLASSE DE PALAVRAS completo para b .pptxFranciely Carvalho
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADOcarolinacespedes23
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxleandropereira983288
 
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdfPROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdfMarianaMoraesMathias
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesMary Alvarenga
 
RedacoesComentadasModeloAnalisarFazer.pdf
RedacoesComentadasModeloAnalisarFazer.pdfRedacoesComentadasModeloAnalisarFazer.pdf
RedacoesComentadasModeloAnalisarFazer.pdfAlissonMiranda22
 
Literatura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptLiteratura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptMaiteFerreira4
 
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...licinioBorges
 
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Mary Alvarenga
 
interfaces entre psicologia e neurologia.pdf
interfaces entre psicologia e neurologia.pdfinterfaces entre psicologia e neurologia.pdf
interfaces entre psicologia e neurologia.pdfIvoneSantos45
 
Livro O QUE É LUGAR DE FALA - Autora Djamila Ribeiro
Livro O QUE É LUGAR DE FALA  - Autora Djamila RibeiroLivro O QUE É LUGAR DE FALA  - Autora Djamila Ribeiro
Livro O QUE É LUGAR DE FALA - Autora Djamila RibeiroMarcele Ravasio
 
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresLilianPiola
 

Último (20)

ANATOMIA-EM-RADIOLOGIA_light.plçkjkjiptx
ANATOMIA-EM-RADIOLOGIA_light.plçkjkjiptxANATOMIA-EM-RADIOLOGIA_light.plçkjkjiptx
ANATOMIA-EM-RADIOLOGIA_light.plçkjkjiptx
 
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxSlides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividade
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?
 
Mapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docxMapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docx
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem Organizacional
 
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdfPortfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
 
CLASSE DE PALAVRAS completo para b .pptx
CLASSE DE PALAVRAS completo para b .pptxCLASSE DE PALAVRAS completo para b .pptx
CLASSE DE PALAVRAS completo para b .pptx
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptx
 
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdfPROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das Mães
 
RedacoesComentadasModeloAnalisarFazer.pdf
RedacoesComentadasModeloAnalisarFazer.pdfRedacoesComentadasModeloAnalisarFazer.pdf
RedacoesComentadasModeloAnalisarFazer.pdf
 
Literatura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptLiteratura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.ppt
 
Bullying, sai pra lá
Bullying,  sai pra láBullying,  sai pra lá
Bullying, sai pra lá
 
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
 
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
 
interfaces entre psicologia e neurologia.pdf
interfaces entre psicologia e neurologia.pdfinterfaces entre psicologia e neurologia.pdf
interfaces entre psicologia e neurologia.pdf
 
Livro O QUE É LUGAR DE FALA - Autora Djamila Ribeiro
Livro O QUE É LUGAR DE FALA  - Autora Djamila RibeiroLivro O QUE É LUGAR DE FALA  - Autora Djamila Ribeiro
Livro O QUE É LUGAR DE FALA - Autora Djamila Ribeiro
 
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
 

Squid guard

  • 2. Sumário I Sobre essa Apostila 2 II Informações Básicas 4 III SquidGuard 9 1 O que é o squidGuard 10 2 Plano de ensino 11 2.1 Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.2 Público Alvo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.3 Pré-requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.4 Descrição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.5 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.6 Cronograma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.7 Programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.8 Avaliação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.9 Bibliografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3 Módulo I - Introdução, instalação e configuração 14 3.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.1.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.1.2 Portabilidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.1.3 Como funciona o Squidguard? . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.2 Instalando o squidGuard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.2.1 Instalação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.2.2 Pré-requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.2.3 Instalando com o apt-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.2.4 Instalando a partir do código fonte . . . . . . . . . . . . . . . . . . . . . . . . 19 3.2.5 Compilando e instalando o Squidguard . . . . . . . . . . . . . . . . . . . . . 20 3.3 Configurando o squidGuard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.3.1 Configurando o squidGuard . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.3.2 Aspectos relevantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.3.3 Declarando o caminho dos arquivos . . . . . . . . . . . . . . . . . . . . . . . 23 3.3.4 Declarando os intervalos de tempo . . . . . . . . . . . . . . . . . . . . . . . . 24 3.3.5 Declarando os grupos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.3.6 Grupos de destino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 1
  • 3. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF 3.3.7 Regras de reescrita . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.3.8 Configurando as ACLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.3.9 Configurando as ACLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.3.10 Fazendo o squidGuard funcionar com o Squid . . . . . . . . . . . . . . . . . 27 3.4 A base de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.4.1 A base de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.4.2 Listas de domínio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.4.3 Listas de URLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.4.4 Listas de expressões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.5 Texto complementar - Instalando o Squid . . . . . . . . . . . . . . . . . . . . . . . . 28 3.5.1 Instalação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.6 Exemplo do squidGuard.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 2
  • 4. Parte I Sobre essa Apostila 3
  • 5. 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. Críticas e sugestões construtivas são bem-vindas a qualquer tempo. Autores A autoria deste é de responsabilidade de Frederico Oliveira de Paula (fredaodepaula@cdtc.org.br) . O texto original faz parte do projeto Centro de Difusão de Tecnologia e Conhecimento, que vem sendo realizado pelo ITI (Instituto Nacional de Tecnologia da Informação) 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. Informações adicionais podem ser obtidas através do email ouvidoria@cdtc.org.br, ou da home page da entidade, através da URL http://www.cdtc.org.br. 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, Instituto Nacional de Tecnologia da Informação (cdtc@iti.gov.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
  • 7. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF Sobre o CDTC Objetivo Geral O Projeto CDTC visa a promoção e o desenvolvimento de ações que incentivem a dissemina- ção de soluções que utilizem padrões abertos e não proprietários de tecnologia, em proveito do desenvolvimento social, cultural, político, tecnológico e econômico da sociedade brasileira. Objetivo Específico Auxiliar o Governo Federal na implantação do plano nacional de software não-proprietário e de código fonte aberto, identificando e mobilizando grupos de formadores de opinião dentre os servidores públicos e agentes políticos da União Federal, estimulando e incentivando o mercado nacional a adotar novos modelos de negócio da tecnologia da informação e de novos negócios de comunicação com base em software não-proprietário e de código fonte aberto, oferecendo treinamento específico para técnicos, profissionais de suporte e funcionários públicos usuários, criando grupos de funcionários públicos que irão treinar outros funcionários públicos e atuar como incentivadores e defensores de produtos de software não proprietários e código fonte aberto, ofe- recendo conteúdo técnico on-line para serviços de suporte, ferramentas para desenvolvimento de produtos de software não proprietários e de seu código fonte livre, articulando redes de terceiros (dentro e fora do governo) fornecedoras de educação, pesquisa, desenvolvimento e teste de pro- dutos de software livre. Guia do aluno Neste guia, você terá reunidas uma série de informações importantes para que você comece seu curso. São elas: • Licenças para cópia de material disponível • Os 10 mandamentos do aluno de Educação a Distância • Como participar dos foruns e da wikipédia • Primeiros passos É muito importante que você entre em contato com TODAS estas informações, seguindo o roteiro acima. Licença Copyright ©2006, Instituto Nacional de Tecnologia da Informação (cdtc@iti.gov.br). 6
  • 8. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF É 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 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". Os 10 mandamentos do aluno de educação online • 1. Acesso à Internet: ter endereço eletrônico, um provedor e um equipamento adequado é pré-requisito para a participação nos cursos a distância. • 2. Habilidade e disposição para operar programas: ter conhecimentos básicos de Informá- tica é necessário para poder executar as tarefas. • 3. Vontade para aprender colaborativamente: interagir, ser participativo no ensino a distân- cia conta muitos pontos, pois irá colaborar para o processo ensino-aprendizagem pessoal, dos colegas e dos professores. • 4. Comportamentos compatíveis com a etiqueta: mostrar-se interessado em conhecer seus colegas de turma respeitando-os e fazendo ser respeitado pelo mesmo. • 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. • 7. Curiosidade e abertura para inovações: aceitar novas idéias e inovar sempre. • 8. Flexibilidade e adaptação: requisitos necessário à mudança tecnológica, aprendizagens e descobertas. • 9. Objetividade em sua comunicação: comunicar-se de forma clara, breve e transparente é ponto - chave na comunicação pela Internet. • 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. Como participar dos fóruns e Wikipédia Você tem um problema e precisa de ajuda? Podemos te ajudar de 2 formas: 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 7
  • 9. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF 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 efetivos para esta prática. . 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. A segunda forma se dá pelas Wikis: . 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: • Página principal da Wiki - http://pt.wikipedia.org/wiki/ Agradecemos antecipadamente a sua colaboração com a aprendizagem do grupo! Primeiros Passos Para uma melhor aprendizagem é recomendável que você siga os seguintes passos: • Ler o Plano de Ensino e entender a que seu curso se dispõe a ensinar; • Ler a Ambientação do Moodle para aprender a navegar neste ambiente e se utilizar das ferramentas básicas do mesmo; • Entrar nas lições seguindo a seqüência descrita no Plano de Ensino; • Qualquer dúvida, reporte ao Fórum de Dúvidas Gerais. Perfil do Tutor Segue-se uma descrição do tutor ideal, baseada no feedback de alunos e de tutores. O tutor ideal é um modelo de excelência: é consistente, justo e profissional nos respectivos valores e atitudes, incentiva mas é honesto, imparcial, amável, positivo, respeitador, aceita as idéias dos estudantes, é paciente, pessoal, tolerante, apreciativo, compreensivo e pronto a ajudar. 8
  • 10. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF A classificação por um tutor desta natureza proporciona o melhor feedback possível, é crucial, e, para a maior parte dos alunos, constitui o ponto central do processo de aprendizagem.’ Este tutor ou instrutor: • fornece explicações claras acerca do que ele espera, e do estilo de classificação que irá utilizar; • gosta que lhe façam perguntas adicionais; • 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’) • dá uma ajuda complementar para encorajar um estudante em dificuldade; • esclarece pontos que não foram entendidos, ou corretamente aprendidos anteriormente; • ajuda o estudante a alcançar os seus objetivos; • é flexível quando necessário; • mostra um interesse genuíno em motivar os alunos (mesmo os principiantes e, por isso, talvez numa fase menos interessante para o tutor); • escreve todas as correções de forma legível e com um nível de pormenorização adequado; • acima de tudo, devolve os trabalhos rapidamente; 9
  • 12. Capítulo 1 O que é o squidGuard O squidGuard é um plugin redirecionador, controlador de acesso e filtro para o Web Proxy Ca- che 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
  • 13. Capítulo 2 Plano de ensino 2.1 Objetivo Qualificar técnicos para a instalação e configuração do filtro squidGuard. 2.2 Público Alvo Técnicos que desejam trabalhar com o squidGuard. 2.3 Pré-requisitos Os usuários deverão ser, necessariamente, indicados por empresas públicas e ter conheci- mento 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
  • 14. 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: • Iniciativa e autonomia no processo de aprendizagem e de produção de conhecimento; • Capacidade de pesquisa e abordagem criativa na solução dos problemas apresentados. Instrumentos de avaliação: • Participação ativa nas atividades programadas. • Avaliação ao final do curso. • O participante fará várias avaliações referente ao conteúdo do curso. Para a aprovação e obtenção do certificado o participante deverá obter nota final maior ou igual a 6.0 de acordo com a fórmula abaixo: • Nota Final = ((ML x 7) + (AF x 3)) / 10 = Média aritmética das lições • AF = Avaliações 13
  • 15. 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
  • 16. Capítulo 3 Módulo I - Introdução, instalação e configuração 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, extrema- mente 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; • redirecionar URLs bloqueadas para uma página informativa; • redirecionar usuários não registrados para uma página de registro; • redirecionar os downloads mais populares para uma cópia local; • redirecionar banners para um GIF vazio; • ter diferentes regras de acesso de acordo com o dia, dia da semana, hora e etc; • ter diferentes regras de acesso para diferentes tipos de usuários. 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
  • 17. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF • Dec-Unix; • FreeBSD; • RedHat; • Solaris. 3.1.3 Como funciona o Squidguard? Toda vez que o Squid é iniciado ele gera um número configurável de subprocessos do Squid- guard. Quando o Squid recebe a requisição de acesso a uma URL, manda uma linha com o formato URL ip-address/fqdn ident methodn 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 methodn. Finalmente o Squid redireciona a página sem que o usuário ou o browser percebam. Há também como fazer com que o usuário perceba o redirecionamento pedindo para o browser requisitar a nova URL. Para saber mais sobre a interface de redirecionamento do Squid, que é a utilizada pelo Squid- guard, entre em http://www.squid-cache.org/Versions/v1/1.1/1.1.22/Release-Notes-1.1.txt. 3.2 Instalando o squidGuard Instalação do squidGuard a partir do código fonte e também do apt. 3.2.1 Instalação Para fazer a instalação do squidGuard é necessário, antes de mais nada, ter o Squid insta- lado 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
  • 18. 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. Para a instalação utilizando o código fonte os requisitos são: • uma ferramenta de make compatível (Gmake); • um compilador ANSI C (gcc-2.7.2.3 ou superior); • parser generator compatível com yacc (Bison); • gerador de análise lexical compatível com lex (Flex); • uma biblioteca de expressões regulares compatível com regcomp()/regexec (Regex) ; • gzip para descompactar o pacote; • a versão 2.x da biblioteca Berkeley DB. 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. 3.2.3 Instalando com o apt-get A instalação utilizando a ferramenta apt é a mais rápida e fácil. Com o terminal aberto, logue como o usuário root: usuario@debian: $ su Password: Depois de logado como o usuário root basta dar o comando a seguir para instalar o programa: 17
  • 19. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF debian:/home/usuario# apt-get install squidguard Aparecerá algo como: Lendo Lista de Pacotes... Pronto Construindo Árvore de Dependências... Pronto Pacotes sugeridos : chastity-list Os NOVOS pacotes a seguir serão instalados: squidguard 0 pacotes atualizados, 1 pacotes novos instalados, 0 a serem removidos e 0 não atualiza- dos. É preciso fazer o download de 136kB/136kB de arquivos. Depois de desempacotamento, 451kB adicionais de espaço em disco serão usados. Depois disso aparecerão duas telas de configuração como as que seguem abaixo: 18
  • 20. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF Nessa primeira tela aperte apenas a tecla Enter. 19
  • 21. 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. 3.2.4 Instalando a partir do código fonte Para instalar o Squidguard a partir do código fonte todos os pré-requisitos anteriormente ci- tados devem estar disponíveis. Como um pré-requisito para a instalação do Squidguard é ter o Squid instalado, então a maioria dos pacotes já devem estar disponíveis na máquina. Será abor- dada aqui apenas a instalação da biblioteca Berkeley DB e do Squidguard em si. Instalando a biblioteca Berkeley DB O primeiro passo para a instalação é baixar o pacote do endereço http://dev.sleepycat.com/downloads/rele O Squidguard foi desenvolvido sobre a versão 2.x da Berkeley DB, por isso utilize a versão dois ou posteriores. 20
  • 22. 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: # mkdir -p /local/src O próximo passo é descompactar o pacote. 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 Se tudo der certo agora basta compilar e instalar a biblioteca. debian:/local/src/db-versão#: make debian:/local/src/db-versão#: make install 3.2.5 Compilando e instalando o Squidguard O primeiro passo para instalar o Squidguard é baixar o pacote do endereço http://ftp.tdcnorge.no/pub/www/ Depois de baixado o pacote, se você ainda não criou, crie o diretório /local/src. debian: # mkdir -p /local/src Entre nesse diretório e descompacte o pacote. debian: # cd /local/src debian:/local/src# gzip -dc /local_onde_está_o_pacote/squidGuard-versão.tar.gz | tar xvf - Com isso será criado o diretório squidGuard-versão, entre nele: debian:/local/src# cd squidGuard-versão Agora basta compilar e instalar o programa. debian:/local/src/squidGuard-versão# ./configure debian:/local/src/squidGuard-versão# make 21
  • 23. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF debian:/local/src/squidGuard-versão# make install É 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/ . 3.3 Configurando o squidGuard Como configurar o filtro. 3.3.1 Configurando o squidGuard Se o squidGuard foi instalado a partir do apt, provavelmente haverá um arquivo de configu- ração comentado no diretório /etc/squid/ chamado squidGuard.conf, nesse caso basta altererá-lo como for necessário. Se o programa foi instalado "na mão", então provavelmente o arquivo terá que ser criado. debian: # touch /etc/squid/squidGuard.conf Agora, para editar, escolha o seu editor de texto preferido (gedit, VIM, nano, ...). 3.3.2 Aspectos relevantes Estrutura do arquivo Alguns aspectos devem ser observados quanto a criação do arquivo squidGuard.conf. O arquivo tem uma estrutura que é recomendada pelos criadores do filtro. A estrutura é a seguinte: 1. No começo do arquivo devem vir os caminhos para os demais arquivos utilizados pelo squid- Guard (como logdir e dbhome); 2. Em seguida devem vir as declarações de tempo; 3. Logo depois as declarações de grupo; 4. Declarações de grupo de destino; 5. Regras de reescrita; 6. Por último as regras de controle de acesso. 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
  • 24. 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
  • 25. 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; Além dessas palavras devem ser evitados também os símbolos: • # - usado para comentar o arquivo; • { } - usados para delimitar o começo e o fim das declarações de grupo; • - - freqüentemente usado para delimitar um intervalo de tempo. 3.3.3 Declarando o caminho dos arquivos O squidGuard utiliza alguns arquivos auxiliares como arquivos de log e base de sites. Para especificar os endereços desses arquivos utilizamos as diretivas logdir e dbhome. 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. A diretiva dbhome define o diretório com a lista dos arquivos da base. No caso do padrão, essas configurações ficariam assim: logdir /usr/local/squidGuard/logs dbhome /usr/local/squidGuard/db 24
  • 26. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF 3.3.4 Declarando os intervalos de tempo No squidGuard podemos definir em qual espaço de tempo um determindado grupo pode aces- sar um endereço na internet, qual não pode e etc. Podem haver diversos intervalos de tempo diferentes para serem utilizados por grupos diferentes. Olhando a estrutura do squidGuard.conf, dado como exemplo nesse curso notamos a existência de um intervalo de tempo chamado de workhours e que esse intervalo vale apenas para os dias da semana entre 8:00 e 16:30. As re- gras aplicadas utilizando essa diretiva time so valerão no espaço de tempo que estiver coberto por ela. 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 : time orkut_bloqueado { weekly * 07:00 - 24:00 } Pode-se também bloquear um endereço pela data de acesso: time dia_de_natal { date *.12.25 } 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: • s, sun, sunday, sundays - domingo • m, mon, monday, mondays - segunda • t, tue, tuesday, tuesdays - terça • w, wed, wednesday, wednesdays - quarta 25
  • 27. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF • h, thu, thursday, thursdays - quinta • f, fri, friday, fridays - sexta • a, sat, saturday, saturdays - sábado 3.3.5 Declarando os grupos Para negar acesso a algum site a um determindo usuário devemos ter esse usuário inserido num grupo. Para definir grupos usamos o parâmetro source ou src. Por exemplo, o setor de gerência de redes da empresa usa as máquinas da classe 192.168.10.0/24 enquanto os demais empregados usam as com endereço ip 192.168.20.0/24. Devemos então separá-los em dois grupos diferentes. src redes { ip 192.168.10.0/24 } src usuarios { ip 192.168.20.0/24 } A descrição dos ips podem vir de diversas maneiras: • pode ser, por exemplo, 192.168.1.198 para bloquear apenas a máquina com esse ip; • 192.168.10.0/24 como foi usado acima; • 192.168.10.0/255.255.254.0, onde o endereço depois da barra é a máscara da rede; Os endereços ip também podem vim de uma lista de um determinado arquivo do sistema, para isso utilizamos o parâmetro iplist. O arquivo deve ter um formato como: 10.0.0.0/8 192.168.0.0./24 10.10.0.0/12 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. 3.3.6 Grupos de destino Os grupos de destinos são os endereços que serão bloqueados em si. Para criar um grupo devemos usar o parâmetro dest ou destination. Dentre destes grupos nós teremos as listas de domínios, lista de URLs e a lista de expressões. Veremos mais a frente como construir essas listas e até utilizar algumas que já estão prontas e são bem completas. dest sites_improprios { domainlist improprios/dominios urllist improprios/urls expressionlist improprios/expressoes } 26
  • 28. 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. 3.3.7 Regras de reescrita A última parte antes de definir as regras de controle de acesso é a definição das regras de reescrita. Para as regras de reescrita utilizamos rew ou rewrite. 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 } Segundo o site do squidGuard, para um bom desempenho, é recomendável que as regras de reescrita sejam limitadas. Em substituição as regras de reescrita utilize redirecionamentos. 3.3.8 Configurando as ACLs A última parte da criação do squidGuard.conf é a definição das listas de controle de acesso (ACL). Para isso utilizamos o parâmetroa acl seguido das definições necessárias. Vamos definir uma acl utilizando os exemplos definidos nas páginas passadas. time youtube_livre { weekly mtwhf 00:00 - 08:00 18:00 - 24:00 weekly saturdays sundays } 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
  • 29. 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. 3.3.9 Configurando as ACLs Existe uma regra especial para acls que é a default. Caso nenhuma das regras anteriores seja verificada numa requisição então a default é aplicada. Se o usuário a acessar um determinado endereço não estiver em nenhum grupo, essa regra é aplicada. Você pode por exemplo definir para o default ser negar tudo e redirecionar para uma página local contendo um aviso. default { pass none redirect http://localhost/pagina_de_redirecionamento/redireciona.html } 3.3.10 Fazendo o squidGuard funcionar com o Squid Depois de terminadas as alterações no arquivo de configuração, é a hora de fazer o squid- Guard funcionar. Para isso já é necessário um Squid instalado e funcional. No arquivo de confi- guração do Squid descomente ou crie a linha: redirect_program /usr/bin/squidGuard -c /local_onde_está/o_arquivo/squidGuard.conf Depois disso mande um sinal HUP para o Squid: kill -HUP ’cat /var/run/squid.pid’ 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. 3.4 A base de dados 3.4.1 A base de dados Para que o squidGuard funcione como um filtro bem eficiente é necessário uma base de dados bem completa. Por esse motivo as listas de domínios, as listas de URLs e as de expressões 28
  • 30. 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 3.4.2 Listas de domínio As listas de domínio devem estar num arquivo texto normal, apenas com os domínios sepa- rados por linhas. O tamanho dessas listas, segundo os criadores do filtro, "tem uma influência desprezível no desmpenho", logo, quanto maior a lista, mais eficiente será o filtro em relação aos bloqueios. Quando um domíno é bloqueado, todos os seus subdomínios também são. Se, por exemplo, o domínio cdtc.org.br fosse colocado na lista, tanto o site cursos.cdtc.org.br quanto comunidade.cdtc.org.br seriam bloqueados. Segue abaixo um pequeno fragmento de um arquivo de domínios relativos à áudio e vídeo. 209.157.71.50 199.85.4.59 212.110.152.70 64.37.112.8 148.122.210.8 66.179.230.80 80.237.216.82 69.46.28.92 mp3hitz.dr.ag mp3.place.cc migliamp3.sites.cc mp3.sites.cc tnpg.cc 40best.com chulo.8m.com allmp3s.com cream.crimea.com cyberpoolgames.com 3.4.3 Listas de URLs As listas de URLs seguem o mesmo formato das listas de domínio, cada URL é separada ape- nas por uma nova linha. Segue abaixo um trecho de um arquivo de URLs utilizado no squidguard. 66.218.77.68/paris/4114 66.218.77.68/researchtriangle/lab/3225 66.218.77.68/sunsetstrip/frontrow/8717 66.218.77.68/sunsetstrip/studio/9490 83.80.16.26/ brouns angelfire.com/az2/freemusic angelfire.com/mb/hon board.to/soundhouse casema.net/ brouns come.to/cyberjack come.to/deejayc come.to/euro20 come.to/mp3alb come.to/mtvhits come.to/top_mp3 come.to/voe download.at/mp3universe fly.to/mp3 forward.to/bsp free.prohosting.com/ eileider geocities.com/damien350 geocities.com/malachi3000 geocities.com/paris/4114 3.4.4 Listas de expressões As listas de expressões regulares seguem o formato das anteriores, cada expressão numa linha. As expressões regulares devem ser feitas com muito cuidado para evitar que endereços que não deviam, sejam bloquados. Diferentemente das listas de domínios e de URLs, listas de expressões regulares contendo expressões muito longas e complexas podem fazer com que a efi- ciência do programa caia significadamente, por isso muito cuidado com as expressões utilizadas! Segue abaixo expressões regulares com o intuito de bloquear sites com conteúdo indevido. (adultos|adultsight|adultsite|adultsonly|adultweb|blow-?job|bondage|centerfold|cumshot|cyberlust|cyberco ( ˆ|[-.?+=/_0-9])?(anal|babe|boob|breast|busty|clit|cum|cunt|dick|fetish|fuck|hooter|lust|naked|nude|oral|orgy|po .?+=/_0-9]|$) 3.5 Texto complementar - Instalando o Squid Uma pequena explicação sobre como instalar o Squid. 29
  • 31. 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 Ra- mos Bastos com pequenas alterações. O material original encontra-se no endereço http://www.linuxman.pro.b Instalando e configurando o Squid Instalando via binário ou com facilidades do sistema 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. Instalando em um sistema baseado em Red Hat Linux 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
  • 32. 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/ 3.6 Exemplo do squidGuard.conf # # 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 { 31
  • 33. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF # 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 #} # # 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 # } # foo-clients within workhours { # pass good !in-addr !adult any # } else { # 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