Download - Squid Guard0

Transcript
Page 1: Squid Guard0

SquidGuard24 de novembro de 2006

Page 2: Squid Guard0

Sumário

I Sobre essa apostila 3

II Informações Básicas 5

III SquidGuard 10

1 O que é o squidGuard 11

2 Plano de ensino 122.1 Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.2 Público Alvo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.3 Pré-requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.4 Descrição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.5 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.6 Cronograma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.7 Programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.8 Avaliação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.9 Bibliografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3 Módulo I - Introdução, instalação e configuração 153.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.1.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.1.2 Portabilidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.1.3 Como funciona o Squidguard? . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.2 Instalando o squidGuard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.2.1 Instalação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.2.2 Pré-requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173.2.3 Instalando com o apt-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173.2.4 Instalando a partir do código fonte . . . . . . . . . . . . . . . . . . . . . . . . 203.2.5 Compilando e instalando o Squidguard . . . . . . . . . . . . . . . . . . . . . 21

3.3 Configurando o squidGuard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223.3.1 Configurando o squidGuard . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223.3.2 Aspectos relevantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223.3.3 Declarando o caminho dos arquivos . . . . . . . . . . . . . . . . . . . . . . . 243.3.4 Declarando os intervalos de tempo . . . . . . . . . . . . . . . . . . . . . . . . 253.3.5 Declarando os grupos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263.3.6 Grupos de destino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

1

Page 3: Squid Guard0

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

3.3.7 Regras de reescrita . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273.3.8 Configurando as ACLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273.3.9 Configurando as ACLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283.3.10 Fazendo o squidGuard funcionar com o Squid . . . . . . . . . . . . . . . . . 28

3.4 A base de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283.4.1 A base de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283.4.2 Listas de domínio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293.4.3 Listas de URLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293.4.4 Listas de expressões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.5 Texto complementar - Instalando o Squid . . . . . . . . . . . . . . . . . . . . . . . . 293.5.1 Instalação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3.6 Exemplo do squidGuard.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

2

Page 4: Squid Guard0

Parte I

Sobre essa apostila

3

Page 5: Squid Guard0

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çaGNU Free Documentation License, cujo teor integral encontra-se aqui reproduzido na seção demesmo nome, tendo inclusive uma versão traduzida (não oficial).

A revisão e alteração vem sendo realizada pelo CDTC ([email protected]), desde outubrode 2006. Criticas e sugestões construtivas são bem-vindas a qualquer tempo.

Autores

A autoria deste conteúdo, atividades e avaliações é de responsabilidade de Frederico Oliveirade Paula ([email protected]) .

O texto original faz parte do projeto Centro de Difusão de Tecnolgia e Conhecimento, que vemsendo realizado pelo ITI em conjunto com outros parceiros institucionais, atuando em conjuntocom as universidades federais brasileiras que tem produzido e utilizado Software Livre, apoiandoinclusive a comunidade Free Software junto a outras entidades no país.

Informações adicionais podem ser obtidas atráves do email [email protected], ou dahome page da entidade, atráves 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 responsabilizamdireta ou indiretamente por qualquer prejuízo oriundo da utilização do material aqui contido.

Licença

Copyright ©2006,Frederico Oliveira de Paula ([email protected]) .

Permission is granted to copy, distribute and/or modify this document under the termsof the GNU Free Documentation License, Version 1.1 or any later version published bythe 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 DocumentationLicense.

4

Page 6: Squid Guard0

Parte II

Informações Básicas

5

Page 7: Squid Guard0

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 dodesenvolvimento 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 ede código fonte aberto, identificando e mobilizando grupos de formadores de opinião dentre osservidores públicos e agentes políticos da União Federal, estimulando e incentivando o mercadonacional a adotar novos modelos de negócio da tecnologia da informação e de novos negóciosde comunicação com base em software não-proprietário e de código fonte aberto, oferecendotreinamento 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 comoincentivadores 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 deprodutos 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ê comeceseu 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 oroteiro acima.

Licença

Copyright ©2006, Frederico Oliveira de Paula ([email protected]) .

É dada permissão para copiar, distribuir e/ou modificar este documento sob os termosda Licença de Documentação Livre GNU, Versão 1.1 ou qualquer versão posterior

6

Page 8: Squid Guard0

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

públicada pela Free Software Foundation; com o Capitulo Invariante SOBRE ESSAAPOSTILA. 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 seuscolegas de turma respeitando-os e fazendo ser respeitado pelo mesmo.

• 5. Organização pessoal: planejar e organizar tudo é fundamental para facilitar a sua revisãoe a sua recuperação de materiais.

• 6. Vontade para realizar as atividades no tempo correto: anotar todas as suas obrigações erealizá-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, aprendizagense 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ãocontrola 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çõesque sejam pertinentes ao curso (avisos, notícias). As mensagens postadas nele são enviadas atodos participantes. Assim, se o monitor ou algum outro participante tiver uma informação queinteresse ao grupo, favor postá-la aqui.Porém, se o que você deseja é resolver alguma dúvida ou discutir algum tópico específico docurso. É recomendado que você faça uso do Forum de dúvidas gerais que lhe dá recursos mais

7

Page 9: Squid Guard0

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

efetivos para esta prática.

. O fórum de dúvidas gerais tem por objetivo disponibilizar um meio fácil, rápido e interativopara solucionar suas dúvidas e trocar experiências. As mensagens postadas nele são enviadasa todos participantes do curso. Assim, fica muito mais fácil obter respostas, já que todos podemajudar.Se você receber uma mensagem com algum tópico que saiba responder, não se preocupe com aformalizaçã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 podemser 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, porpessoas 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 dasferramentas 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 respectivosvalores e atitudes, incentiva mas é honesto, imparcial, amável, positivo, respeitador, aceita asidéias dos estudantes, é paciente, pessoal, tolerante, apreciativo, compreensivo e pronto a ajudar.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 tutorou instrutor:

• fornece explicações claras acerca do que ele espera, e do estilo de classificação que iráutilizar;

8

Page 10: Squid Guard0

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

• 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 umreparo de um estudante: ’os comentários deixam-nos com uma sensação de crítica, deameaç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

Page 11: Squid Guard0

Parte III

SquidGuard

10

Page 12: Squid Guard0

Capítulo 1

O que é o squidGuard

O squidGuard é um plugin redirecionador, controlador de acesso e filtro para o Web Proxy CacheSquid. O squidGuard além de ser livre (segue a licença GPL) é muito flexível, extremamenterá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 manterum 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 aseguir.

11

Page 13: Squid Guard0

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 conhecimentobá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 comoferramenta de aprendizagem. Ele é composto de um módulo de aprendizado que contém ao seufinal uma avaliação de aprendizado. O material didático estará disponível on-line de acordo comas 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

Page 14: Squid Guard0

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 acessadasquantas vezes forem necessárias, desde que esteja dentro da semana programada. Ao final deuma lição, você receberá uma nota de acordo com o seu desempenho. Caso sua nota numadeterminada lição for menor do que 6.0, sugerimos que você faça novamente esta lição. // Ao finaldo 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ãovisíveis para que possam ser consultados durante a avaliação final. // Para conhecer as demaisatividades de cada módulo leia o tópico seguinte: "Ambientação do Moodle". // Os instrutoresestarão a sua disposição ao longo de todo curso. Qualquer dúvida deve ser enviada ao fórumcorrespondente. 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 eobtenção do certificado o participante deverá obter nota final maior ou igual a 6.0 de acordocom a fórmula abaixo:

• Nota Final = ((ML x 7) + (AF x 3)) / 10 = Média aritmética das lições

• AF = Avaliações

13

Page 15: Squid Guard0

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

Page 16: Squid Guard0

Capítulo 3

Módulo I - Introdução, instalação econfiguraçã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 CacheSquid. O Squidguard além de ser livre (segue a licença GPL) é muito flexível, extremamente rá-pido, fácil de instalar e portável (roda em AIX, Dec-Unix, FreeBSD, Linux e Solaris). O Squidguardpode ser usado para:

• limitar o acesso à servidores web para alguns usuários a partir de uma lista de URLs ouservidores conhecidos;

• bloquear o acesso à algumas URLs de acordo com uma lista de expressões regulares oupalavras 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 desenvolvidonum sistema Sun Solaris 2.8, foi compilado e testado com sucesso nos sistemas:

• AIX;

15

Page 17: Squid Guard0

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 oformato URL ip-address/fqdn ident method\n através de um pipe para a entrada padrão de umsubprocesso Squidguard. Este então checa a informação de acordo com as suas lista e decidese 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 ocliente baseado no endereço ip, num nome de domínio opcional e um id de usuário. Se o clientenão pertence a nenhum grupo, então a ação definida como padrão é tomada. Depois de achadoo grupo o filtro aplica as regras de reescrita de acordo com o grupo, caso elas não existam, eleaplica a regra padrão. Se a URL foi modificada por uma regra de reescrita, então a nova URL eas informações complementares são retornadas. Caso não haja modificação na URL, uma linhaem branco é retornada.Depois de todos esse procedimentos o squid recebe a linha com o retorno através de um pipe.Para URLs que foram "aprovadas"o retorno é um \n, para as bloqueadas ou modificadas o retornoé uma linha como new_URL ip-address/fqdn ident method\n. Finalmente o Squid redireciona apágina sem que o usuário ou o browser percebam. Há também como fazer com que o usuárioperceba 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 instaladoe configurado. A instalação do Squid é abordada rápidamente no texto Instalando o Squid napá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, inclusiveDebian.

16

Page 18: Squid Guard0

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. Paraa 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 serfeitas 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, loguecomo 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

Page 19: Squid Guard0

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... ProntoConstruindo Árvore de Dependências... ProntoPacotes sugeridos :chastity-listOs NOVOS pacotes a seguir serão instalados:squidguard0 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

Page 20: Squid Guard0

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

Nessa primeira tela aperte apenas a tecla Enter.

19

Page 21: Squid Guard0

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, issoserá 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 citadosdevem estar disponíveis. Como um pré-requisito para a instalação do Squidguard é ter o Squidinstalado, então a maioria dos pacotes já devem estar disponíveis na máquina. Será abordadaaqui 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/releasehistorybdb.htmlO Squidguard foi desenvolvido sobre a versão 2.x da Berkeley DB, por isso utilize a versão doisou posteriores.

20

Page 22: Squid Guard0

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/srcdebian:/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 pastaprincipal 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 distdebian:/local/src/db-versão/dist#: ./configure

Se tudo der certo agora basta compilar e instalar a biblioteca.

debian:/local/src/db-versão#: makedebian:/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/proxy/squidGuard/archive/.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/srcdebian:/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# ./configuredebian:/local/src/squidGuard-versão# make

21

Page 23: Squid Guard0

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çãoque 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 configuraçãocomentado no diretório /etc/squid/ chamado squidGuard.conf, nesse caso basta altererá-lo comofor 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. Oarquivo 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 estranhasou 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

Page 24: Squid Guard0

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

Page 25: Squid Guard0

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 espe-cificar 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 osquidGuard.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

Page 26: Squid Guard0

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 tempodiferentes 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 deworkhours 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 cobertopor ela.

time workhours {weekly mtwhf 08:00 - 16:30date *-*-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 apenasfora do horário comercialweekly saturdays sundays # Libera nos fins de semana}

Se quiséssemos bloquear o acesso ao Orkut durante todos os dias, incluido os fins de semanae 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çãonada 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 nosite do squidGuard e leia sobre o arquivo de configuração.

Obs.: Os dias da semana podem ser representados de várias maneiras diferentes no arquivode configuração:

• s, sun, sunday, sundays - domingo

• m, mon, monday, mondays - segunda

• t, tue, tuesday, tuesdays - terça

• w, wed, wednesday, wednesdays - quarta

25

Page 27: Squid Guard0

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 numgrupo. 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/24enquanto os demais empregados usam as com endereço ip 192.168.20.0/24. Devemos entãosepará-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/8192.168.0.0./2410.10.0.0/12

Para que seja usado esse arquivo deve ser posto ou o caminho absoluto do arquivo ou ocaminho relativo à diretiva dbhome. Se a diretiva dbhome for /var/squidguard/db e o arquivoestiver 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 grupodevemos usar o parâmetro dest ou destination. Dentre destes grupos nós teremos as listas dedomínios, lista de URLs e a lista de expressões. Veremos mais a frente como construir essaslistas e até utilizar algumas que já estão prontas e são bem completas.

dest sites_improprios {domainlist improprios/dominiosurllist improprios/urlsexpressionlist improprios/expressoes}

26

Page 28: Squid Guard0

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 caminhoabsoluto 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 rees-crita. Para as regras de reescrita utilizamos rew ou rewrite.

rew get-local {s@.*/cb32e46.exe$@http://ftp/pub/www/client/windows/cb32e46.exe@rs@.*/cc32e46.exe$@http://ftp/pub/www/client/windows/cc32e46.exe@rs@.*/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 dereescrita 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:00weekly saturdays sundays}

src usuarios {ip 192.168.20.0/24}

dest sites_improprios {domainlist improprios/dominiosurllist improprios/urlsexpressionlist improprios/expressoes}

dest youtube{domainlist youtube/dominiosurllist 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

Page 29: Squid Guard0

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 quea regra se aplica aos usuários do grupo usuarios, dentro do tempo youtube_livre (entre 18:00e 08:00). Na linha pass !sites_improprios all é definido que eles terão acesso à todos os sitesexceto os que estão no grupo sites_impróprios. Mas se esses usuários estiverem fora do intervalode tempo então pass !sites_improprios !youtube all, eles terão acesso à todos os sites menos oyoutube e os site_improprios.

3.3.9 Configurando as ACLs

Existe uma regra especial para acls que é a default. Caso nenhuma das regras anteriores sejaverificada numa requisição então a default é aplicada. Se o usuário a acessar um determinadoendereço não estiver em nenhum grupo, essa regra é aplicada. Você pode por exemplo definirpara o default ser negar tudo e redirecionar para uma página local contendo um aviso.

default {pass noneredirect 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 squidGuardfuncionar. Para isso já é necessário um Squid instalado e funcional. No arquivo de configuraçãodo 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ãopoderiam 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 dadosbem completa. Por esse motivo as listas de domínios, as listas de URLs e as de expressões

28

Page 30: Squid Guard0

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

devem ser mais completas quanto possível. Existem na intenet diversas dessas listas, inclusiveno 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 separadospor linhas. O tamanho dessas listas, segundo os criadores do filtro, "tem uma influência des-prezível no desmpenho", logo, quanto maior a lista, mais eficiente será o filtro em relação aosbloqueios. Quando um domíno é bloqueado, todos os seus subdomínios também são. Se, porexemplo, o domínio cdtc.org.br fosse colocado na lista, tanto o site cursos.cdtc.org.br quanto co-munidade.cdtc.org.br seriam bloqueados. Segue abaixo um pequeno fragmento de um arquivode 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.8269.46.28.92 mp3hitz.dr.ag mp3.place.cc migliamp3.sites.cc mp3.sites.cc tnpg.cc 40best.com chulo.8m.comallmp3s.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/871766.218.77.68/sunsetstrip/studio/9490 83.80.16.26/ brouns angelfire.com/az2/freemusic angelfire.com/mb/honzicekboard.to/soundhouse casema.net/ brouns come.to/cyberjack come.to/deejayc come.to/euro20 come.to/mp3albumcome.to/mtvhits come.to/top_mp3 come.to/voe download.at/mp3universe fly.to/mp3 forward.to/bspfree.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ãodeviam, sejam bloquados. Diferentemente das listas de domínios e de URLs, listas de expressõesregulares contendo expressões muito longas e complexas podem fazer com que a eficiência doprograma caia significadamente, por isso muito cuidado com as expressões utilizadas! Segueabaixo expressões regulares com o intuito de bloquear sites com conteúdo indevido.

(adultos|adultsight|adultsite|adultsonly|adultweb|blow-?job|bondage|centerfold|cumshot|cyberlust|cybercore|hardcore|incest|masturbat|obscene|pedophil|pedofil|playmate|pornstar|sexdream|showgirl|softcore|striptease)( |̂[-.\?+=/_0-9])?(anal|babe|boob|breast|busty|clit|cum|cunt|dick|fetish|fuck|hooter|lust|naked|nude|oral|orgy|porno?|pupper|pussy|rotten|sex|shit|teen|tit|topp?les|xxx)s?(cafe|site|surf|surfing|web|website)?([-.\?+=/_0-9]|$)

3.5 Texto complementar - Instalando o Squid

Uma pequena explicação sobre como instalar o Squid.

29

Page 31: Squid Guard0

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 RamosBastos com pequenas alterações. O material original encontra-se no endereço http://www.linuxman.pro.br/squid/.

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ãoprecisa), 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 linkhttp://www.rpmfind.net/linux/rpm2html/search.php?query=squid& submit=Search+...& system=redhat&arch=\E depois:# rpm -ivh squid.x.y.z.rpmInstalando em um sistema baseado em DebianO Debian sempre prezou pela facilidade de instalação a atualização de pacotes, com seu sistemaapt, que facilita muito a vida dos administradores. Para instalar o squid basta executar o comando:# apt-get install squidBaixando o código-fonteCaso queira o controle de banda, tópico avançado abordado aqui, instale o squid pelo fonte, deacordo 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.confO arquivo de configuração do squid é o squid.conf, normalmente ele se encontra em /etc/squid.confou em /usr/local/squid/etc/squid.conf. Caso não encontre o seu em nenhum desses lugares,procure-o com:# locate squid.confou

30

Page 32: Squid Guard0

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

# find squid.confPode parecer fútil, mas uma limpeza inicial no arquivo squid.conf pode ser bem útil. O arquivo deconfiguração original tem, em média, 2000 linhas.# cp squid.conf squid.conf.original # egrep -v "#̂|$̂"squid.conf.original > squid.confPara mais informações sobre o Squid, sua instalação e suas configurações matricule-se no nossocurso de Squid, entre no site http://www.linuxman.pro.br/squid/, ou no site de documentação dopróprio programa http://www.squid-cache.org/Doc/

3.6 Exemplo do squidGuard.conf

## CONFIG FILE FOR SQUIDGUARD#

dbhome /var/lib/squidguard/dblogdir /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:30date *-*-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

Page 33: Squid Guard0

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+srcclass=%s+targetclass=%t+url=%u/>#}

acl {# admin {# pass any# }

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

# bar-clients {# pass local none# }

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

32