4. Abra o prompt de comando acesse o diretório c:\squid\sbin e digite os comandos abaixo:



Documentos relacionados
Servidor proxy - Squid PROFESSOR : RENATO WILLIAM

Segurança de Redes. Aula extra - Squid. Filipe Raulino filipe.raulino@ifrn.edu.br

Apostila sobre Squid

5/7/2010. Apresentação. Web Proxy. Proxies: Visão Geral. Curso Tecnologia em Telemática. Disciplina Administração de Sistemas Linux

Sarg Proxy transparente

Pré-requisitos e passos iniciais. Topologia visual

Curso de extensão em Administração de redes com GNU/Linux

Depois que instalamos o Squid vamos renomear o arquivo de configuração para criarmos um do zero.

SERVIDOR PROXY COM SQUID3 em GNU/Linux Debian7 Por: Prof. Roitier Campos Gonçalves

SQUID Linux. Rodrigo Gentini

Prof. Samuel Henrique Bucke Brito

Squid autenticando em Windows 2003 com msnt_auth

Curitiba, Novembro Resumo

Entendendo como funciona o NAT

Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática

Administração de Sistemas Operacionais

Tutorial Servidor Proxy com Squid baseado em Linux Acadêmicos : Felipe Zottis e Cleber Pivetta. Servidor Proxy

Aula 10 Proxy cache Squid

Projeto e Instalação de Servidores Servidores Linux Aula 6 Firewall e Proxy

Prof. Roberto Franciscatto 4º Semestre - TSI - CAFW. Free Powerpoint Templates Page 1

ALTERNATIVA PARA CONEXÃO VIA INTERNET DE IP MASCARADO A IP REAL

Linux Network Servers

Na Figura a seguir apresento um exemplo de uma "mini-tabela" de roteamento:

Instalação e Configuração Iptables ( Firewall)

Sistema Operacional Unidade 13 Servidor Samba. QI ESCOLAS E FACULDADES Curso Técnico em Informática

Administração de Sistemas Operacionais. Prof. Marlon Marcon

Procedimento para instalação do OMNE-Smartweb em Raio-X

Conexão rápida entre dois computadores em uma plataforma Linux

Procedimentos para Reinstalação do Sisloc

CONSTRUINDO UM FIREWALL NO LINUX CENTOS 5.7

Sistema Operacional Unidade 12 Comandos de Rede e Acesso Remoto

1. DHCP a. Reserva de IP

LICENCIAMENTO V14 USANDO REPRISE LICENSE MANAGER

Despachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1

Firewall. Tutorial Firewall em Linux Acadêmicos: Felipe Zottis e Cleber Pivetta

Senha Admin. Nessa tela, você poderá trocar a senha do administrador para obter acesso ao NSControl. Inicialização

TUTORIAL DE SQUID Versão 3.1

Configurando um servidor DHCP

Disciplina: Fundamentos de serviços IP Alunos: Estevão Elias Barbosa Lopes e Leonardo de Azevedo Barbosa

INDICE 1. INTRODUÇÃO CONFIGURAÇÃO MÍNIMA INSTALAÇÃO INTERLIGAÇÃO DO SISTEMA ALGUNS RECURSOS SERVIDOR BAM...

SSE 3.0 Guia Rápido Parametrizando o SISTEMA DE SECRETARIA Nesta Edição Configurando a Conexão com o Banco de Dados

Prática NAT/Proxy. Edgard Jamhour. Esses exercícios devem ser executados através do servidor de máquinas virtuais: espec.ppgia.pucpr.

Follow-Up Acompanhamento Eletrônico de Processos (versão 3.0) Manual do Sistema. 1. Como acessar o sistema Requisitos mínimos e compatibilidade

Omega Tecnologia Manual Omega Hosting

Instalando o Debian em modo texto

CONFIGURAÇÃO DE REDE SISTEMA IDEAGRI - FAQ CONCEITOS GERAIS

Procedimentos para Instalação do Sisloc

Conceitos de relação de confiança

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza

Nesse artigo abordaremos os principais aspectos de instalação e uso do NTOP no Fedora Core 4.

Manual do Sistema "Vida Controle de Contatos" Editorial Brazil Informatica

3. No painel da direita, dê um clique com o botão direito do mouse em qualquer espaço livre (área em branco).

Passo a Passo da instalação da VPN

GUIA INTEGRA SERVICES E STATUS MONITOR

Firewall. Qual a utilidade em instalar um firewall pessoal?

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource Rev: 02

Compartilhamento de internet usando recursos do Windows XP

Manual de Instalação ( Client / Server ) Versão 1.0

Manual Captura S_Line

Segurança de Redes. Firewall. Filipe Raulino

Squid autenticado no Active Directory com Winbind

Objetivos: i) Verificar o impacto de loops em redes locais ii) Configurar o protocolo STP para remover loops da rede

Web Design Aula 11: Site na Web

1 REQUISITOS BÁSICOS PARA INSTALAR O SMS PC REMOTO

Manual de Administração DPS Printer 2.1 NDDigital S/A - Software

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2

Relatório SQUID e SAMBA. Instalação e Configuração de Servidores de Rede

Arquitetura de Rede de Computadores

Edital 012/PROAD/SGP/2012

CONSTRUINDO UM FIREWALL NO LINUX DEBIAN 6.0

GUIA PRÁTICO DE INSTALAÇÃO

Implantando o Squid para Gerenciamento de Banda e Acesso a Internet

MANUAL DO ADMINISTRADOR

Manual do Sistema "Fala Comigo - Sistema de Atendimento On-Line" Editorial Brazil Informatica

IPTABLES. Helder Nunes

Portal Sindical. Manual Operacional Empresas/Escritórios

ESTRUTUTA DE REDE DE ACESSO!

OCOMON PRIMEIROS PASSOS

Segurança de redes com Linux. Everson Scherrer Borges Willen Borges de Deus

Elaboração de Script de Firewall de Fácil administração

Lazarus pelo SVN Linux/Windows

Configurando o sistema em rede Local

LABORATÓRIO WIRESHARK: DNS

Como é o Funcionamento do LTSP

COMPARTILHAMENTO DO DISCO E PERMISSÕES DE REDE PÚBLICAS E DE GRUPOS DE TRABALHO.

Atualizaça o do Maker

Tutorial - Monitorando a Temperatura de Servidores Windows

CONSTRUÇÃO DE BLOG COM O BLOGGER

ROTEIRO PARA INSTALAÇÃO DO BITVISE, CONFIGURAÇÃO DE CHAVES SSH, DEFINIÇÃO DAS PORTAS PARA OS TÚNEIS SSH E CONFIGURAÇÃO DO THUNDERBIRD

NAT com firewall - simples, rápido e funcional

OneDrive: saiba como usar a nuvem da Microsoft

O sistema que completa sua empresa Roteiro de Instalação (rev ) Página 1

Máscaras de sub-rede. Fórmula

Roteador Load-Balance / Mikrotik RB750

Manual AGENDA DE BACKUP

Configurando um Grupo Doméstico e Compartilhando arquivos no Windows 7

Transcrição:

Tutorial Squid

Tutorial Squid Tutorial apresentado para a disciplina de Redes de Computadores, curso Integrado de Informática, do Instituto Federal de Educação, Ciência e Tecnologia da Bahia IFBA Campus Valença, orientado pelo professor Rafael Freitas Reale.

Squid Turma 83631 Em uma estrada sem fiscalização os carros podem passar livremente estando ou não cumprindo as leis de trânsito. Contudo, quando existe um posto policial, este serve para fiscalizar os motoristas e permitir a passagem apenas daqueles que estão dentro das normas. Este é o princípio que rege o funcionamento do Squid, um servidor proxy usando em Linux, Windows e outros Sistemas Operacionais. Quando os nossos computadores estão conectados a internet via NAT, por exemplo, temos acesso a qualquer site, podemos baixar qualquer arquivo ou programa e utilizamos a Internet na hora que quisermos. Isto significa dizer que o NAT apenas permite o acesso de computadores à internet. Ao instalarmos o Squid em nossa rede, estamos colocando um posto policial no tráfego da internet, e quem faz as leis somos nós mesmos. Através de alguns comandos que serão estudados mais a frente, - podemos restringir o acesso a algum site, impedir o download de algum formato de arquivo ou então que os computadores parem de acessar a internet em um dado intervalo de tempo. O Squid pode ajudar em diversas situações. Quando proibimos o acesso a determinados sites, podemos estar garantindo que os funcionários de uma empresa não percam tempo navegando em diversos sites no horário de trabalho. Quando impedimos o acesso em um determinado horário, podemos estar aumentando a velocidade de conexão de um determinado computador. Quando bloqueamos o download de arquivos, podemos estar garantindo que a velocidade da internet permaneça sempre em um nível aceitável.

A imagem ilustra a seguinte situação: Os computadores dentro do círculo pertencem a uma rede com o Squid instalado. Se algum desses computadores desejarem acessar a internet, sua requisição deverá passar pelo controle do Squid que irá permitir ou não o acesso, a depender das regras nele configuradas. Além do navegador, outros programas, podem ser configurados para trabalhar através do proxy: clientes de ICQ e MSN e até programas P2P. Apesar dos diversos benefícios encontrados na utilização do Squid, ele suporta apenas os protocolos HTTP, FTP e Gopher, ou seja, não oferece acesso completo, apenas navegação. Porque usar o Squid? Além da capacidade de intermediar o acesso à internet o Squid tem outros recursos que o torna uma excelente alternativa para aproveitamento mais racional da comunicação. Dentre esses recursos podemos destacar: Cache: com esse recurso o Squid armazena em cache o conteúdo acessado, de forma que se algum computador fizer uma nova requisição sobre esse conteúdo, ele recebe do cache, diminuindo as requisições para internet; Autenticação: podemos restringir o acesso ao servidor proxy com o uso da autenticação de usuários, de forma que seja melhorada a segurança, podendo ser implementado de várias maneiras, com o uso do protocolo LDAP, SMB, módulos PAM, etc;

Registro de acessos: os acessos são registrados em arquivos de log, podendo esses ser utilizados para as mais diversas finalidades; Controle centralizado: torna a gerência da rede mais rápida, fácil e eficiente; Segurança: como somente esta máquina vai estar diretamente ligada à internet, podemos centralizar esforços na melhoria da segurança da rede; Instalando o Squid: Vamos ressaltar neste ponto do tutorial uma diferença. Como já foi dito o Squid pode ser utilizado em Linux, Windows e outros Sistemas Operacionais por isso algumas diferenças vão ser observadas, mas são mínimas. Em geral a estrutura do arquivo de configuração é igual, muda desta forma os comandos em cada sistema operacional. Para o Windows: 1. Baixe os binários utilizados no Windows no seguinte endereço: http://squid.acmeconsulting.it/download/squid- 2.6.STABLE16-bin.zip 2. Descompacte o conteúdo do arquivo zipado na raiz do Windows. 3. Entre no diretório c:\squid\etc e crie uma cópia dos arquivos com os nomes conforme descrito abaixo: squid.conf.default squid.conf mime.conf.default mime.conf cachemgr.conf.default cachemgr.conf 4. Abra o prompt de comando acesse o diretório c:\squid\sbin e digite os comandos abaixo: squid i n squid comando que instala o serviço chamado squid no SO squid; z comando utilizado para criar a cache do squid; 5. Acesse o menu iniciar e em executar digite no comando services.msc para carregar o gerenciador de serviços, localize o serviço squid clique com o botão direito e mande inicializar o serviço.

Para Linux: O Squid é composto de um único pacote, por isso a instalação é simples. Se estiver no Mandrake, instale com um: # urpmi squid Se estiver no Debian ou outra distribuição baseada nele, use o apt-get: # apt-get install squid Toda a configuração do Squid é feita em um único arquivo, o /etc/squid/squid.conf. Caso esteja usando uma versão antiga do Squid, como a incluída no Debian Woody, por exemplo, o arquivo pode ser o /etc/squid.conf. Apesar da mudança na localização do arquivo de configuração, as opções descritas aqui devem funcionar sem maiores problemas. O arquivo original, instalado junto com o pacote é realmente enorme, contém comentários e exemplos para quase todas as opções disponíveis. Ele pode ser uma leitura interessante se você já tem uma boa familiaridade com o Squid, mas de inicio é melhor começar com um arquivo de configuração mais simples, apenas com as opções mais usadas. Em geral cada distribuição inclui uma ferramenta diferente para a configuração do proxy, como o ícone mágico que incluí no Kurumin. Uma das mais usadas é o Webmin. A função destas ferramentas é disponibilizar as opções através de uma interface gráfica e gerar o arquivo de configuração com base nas opções escolhidas. Em alguns casos estas ferramentas ajudam bastante, mas como elas mudam de distribuição para distribuição, por isso é mais fácil aprender a trabalhar direto no arquivo de configuração, que não é tão complicado assim. Pra começar renomeie o arquivo padrão: # mv /etc/squid/squid.conf /etc/squid/squid.conf.velho E crie um novo arquivo /etc/squid/squid.conf, com apenas as quatro linhas abaixo: http_port 3128 visible_hostname kurumin

acl all src 0.0.0.0/0.0.0.0 http_access allow all Estas linhas são o suficiente para que o Squid "funcione". As quatro linhas dizem o seguinte: - http_port 3128: A porta onde o servidor vai ficar disponível - visible_hostname kurumin: O nome do servidor - acl all src 0.0.0.0/0.0.0.0 e http_access allow all: Estas duas linhas criam uma acl chamada "all" (todos) incluindo todos os endereços IP possíveis e permite que qualquer um dentro desta lista use o proxy. Ou seja, ela permite que qualquer um use o proxy, sem limitações. Para testar o Squid, habilite o servidor com o comando: # service squid start Se você estiver no Debian, use o comando: # /etc/init.d/squid start Se estiver no Slackware, o comando será: # /etc/rc.d/rc.squid start Configure um navegador, no próprio servidor para usar o proxy, através do endereço 127.0.0.1 (o localhost), porta 3128 e teste a conexão. Se tudo estiver certo você conseguirá acessar o proxy também através dos outros micros da rede local, basta configurar os navegadores para usarem o proxy Principais TAG's do arquivo squid.conf: O Squid trabalha com dois tipos de cache: 1. Um cache rápido, feito usando parte da memória RAM do servidor; 2. Um cache um pouco mais lento, porém maior, feito no HD;

O cache na memória RAM é ideal para armazenamento de arquivos pequenos, como páginas HTML e imagens, que serão entregues instantaneamente para os clientes. O cache no HD é usado para armazenar arquivos maiores, como downloads, arquivos do Windows update e pacotes baixados pelo apt-get. Desta forma podemos definir a quantidade de memória que o Squid irá usar: cache_mem 64 MB Para que o cache na memória armazene arquivos de até 64 KB, por exemplo, adicione a linha: maximum_object_size_in_memory 64 KB Por convenção, a configuração do cache em disco, armazenará o grosso dos arquivos. Por default, o máximo são downloads de 16 MB e o mínimo é zero: maximum_object_size 512 MB minimum_object_size 0 KB Você poderá ainda definir a percentagem de uso do cache que fará o Squid começar a descartar os arquivos mais antigos. Por padrão isso começa a acontecer quando o cache está 90% cheio: cache_swap_low 90 cache_swap_high 95 Depois vem a configuração do tamanho do cache em disco propriamente dito, que é composta por quatro valores: (/var/spool/squid) que indica a pasta onde o squid armazena os arquivos do cachê: cache_dir ufs /var/spool/squid 2048 16 256 O arquivo pode ainda pode guarda os logs de acesso do Squid: cache_access_log /var/log/squid/access.log

Existem ainda mais duas opções que configuram como serão tratados os tempos de vida dos objetos no cache, isto é, o Squid faz uso destes valores para verificar se os objetos armazenados são os mais recentes ou há a necessidade de atualizá-los: refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern. 0 20% 4320 ACL's: As ACL's (Access Control Lists) ou listas de controle de acesso constituem-se na grande flexibilidade e eficiência do Squid, é através delas que podemos criar regras para controlar o acesso à internet das mais diferentes formas. As ACL's são case-sensitive, caso seja usada o opção -i elas deixarão de ser case-sensitive. Caso uma das regras coincida, as demais não serão mais verificadas. Isso independe da quantidade de regras que ainda faltam para atingir o fim da lista. Tipos de ACL's: As ACL's são definidas da seguinte forma: acl nome tipo string arquivo As principais ACL s: src: Tipo utilizado para indicar endereços IP de origem. Podese especificar um endereço de rede, como 192.168.16.0/24, um endereço de um determinado host, como 192.168.16.10/24 ou uma faixa de endereços, como 192.168.16.10-192.168.16.20/24, exemplo: Bloquear endereços IP: 1. Cria-se uma acl associando um nome ao endereço IP que deseja fazer o bloqueio (ou permissão, dependendo do caso). Ex.: acl ComputadorDoIrmaoChatoIP src 192.168.0.103

2. Permitir ou negar o acesso deste endereço. Ex.: http_access deny ComputadorDoIrmaoChatoIP *deny: Bloqueia acesso; * allow: Libera acesso; dst: Semelhante ao tipo anterior, mas está relacionada ao endereço de destino; time: Usado para especificar dias da semana e horários. Os dias da semana são definidos através de letras que os representam, e os horários através de intervalos na forma hora:minuto_iniciohora:minuto_final. Os dias da semana são especificados assim: S - Sunday (Domingo), M - Monday (Segunda-Feira), T - Tuesday (Terça-Feira), W - Wednesday (Quarta-Feira), H - Thursday (Quinta- Feira), F - Friday (Sexta-Feira) e A - Saturday (Sábado), exemplo: Bloquear acesso por horário: 1. Definir os horários desejados. Ex. acl ForaDoExpediente time 00:00-07:00 2. Permitir ou negar o acesso neste horário. Ex. http_access deny ForaDoExpediente Permitir acesso em um determinado horário: 1. Combinar as regras de bloqueio de sites/palavras com a de acesso por horário. Ex. acl Almoco time 12:00-14:00 http_access allow BadSites Almoco port: Realiza o controle pela porta de destino do servidor, neste tipo deve ser especificado o número da porta; ident: Realiza o controle de acesso baseado no nome do usuário. Este tipo requer um servidor Ident rodando na máquina do cliente; ident_regex: Semelhante à ident, mas utilizando expressão regular; proxy_auth: Tipo usado para implementar autenticação de usuários no proxy. A autenticação é feita com uso de softwares externos. Podem ser passados os nomes dos usuários ou usada a

opção REQUIRED para que seja autenticado qualquer usuário válido; arp: Tipo usado para construir lista de acesso baseada no MAC Address da interface de rede do cliente, ou seja, em vez de endereço IP da placa, usa-se o seu endereço MAC, exemplo: Bloquear endereços MAC: 1. Cria-se uma acl associando um nome ao endereço MAC que deseja fazer o bloqueio (ou permissão, dependendo do caso). Ex. acl ComputadorDoIrmaoChatoMAC arp 11:11:11:11:11:11 2. Permitir ou negar o acesso deste endereço. Ex. http_access deny ComputadorDoIrmaoChato Construindo regras de acesso: É interessante observar que o controle de acesso deve ser construído em duas etapas, primeiramente são feitas as classes de ACL's e depois são construídas as regras de acesso com o uso destas ACL's, com o uso de operadores (http_access). Controlando acesso pela origem, destino e autenticação de usuário: acl localnet src 192.168.16.0/24 acl outra_rede dst 192.168.17.0/24 acl usuarios proxy_auth REQUIRED http_access allow localnet outra_rede usuarios http_access deny all Com estas regras estamos especificando que requisições vindas da rede 192.168.16.0/24 e que sejam destinadas à rede 192.168.17.0/24 serão aceitas, mas desde que os usuários sejam autenticados, nos demais casos o acesso será negado; Acrescentando controle de acesso pelo horário: acl localnet src 192.168.16.0/24 acl outra_rede dst 192.168.17.0/24 acl usuarios proxy_auth REQUIRED acl expediente time MTWHF 8:00-18:00

http_access allow expediente localnet outra_rede usuários http_access deny all Veja também a ordem em que as ACL's são verificadas, observe que a verificação dos usuários é feita por último, pois não vamos forçar os usuários a se autenticarem para só depois negar o acesso por outro motivo (será estudado mais a frente autenticação de usuários). Controlando o acesso por palavras chaves: acl MINHA_REDE src 192.168.16.0/24 acl USUARIOS proxy_auth REQUIRED acl PORNO url_regex -i "/etc/squid/porn" acl PORNO1 url_regex -i "/etc/squid/porn1" acl NAO_PORNO url_regex -i "/etc/squid/noporn" http_access allow USUARIOS NAO_PORNO MINHA_REDE http_access allow USUARIOS!PORNO!PORNO1 MINHA_REDE http_access deny all No nosso caso estamos fazendo o uso de arquivos que contém as listas de palavras ou sites que consideramos inadequados, no caso /etc/squid/porn e /etc/squid/porn1 e outro arquivo com sites e palavras que podem ser barradas por alguma regra dos arquivos anteriores, mas que na verdade não representam conteúdo impróprio, no caso /etc/squid/noporn. As palavras ou sites devem ser colocados no arquivo uma por linha. Então aqui estamos fazendo o seguinte: primeiramente vamos liberar usuários que desejem acessar sites listados no arquivo /etc/squid/noporn e que pertençam a nossa rede, no caso 192.168.16.0/24 ou usuários que queiram acessar sites com conteúdos diferentes (! significa diferente) do listado nos arquivos /etc/squid/porn e /etc/squid/porn1 e que pertençam a nossa rede, em ambos os casos deverá ser feita a autenticação. Autenticação no Squid (em distribuições Linux): Por padrão, o controle de acesso é feito por máquina, entretanto o Squid fornece mecanismos para ser efetuado um controle por usuário. O cadastro dos usuários para acesso ao Squid é feito com o uso do utilitário htpasswd, valendo ressaltar que a opção -c deve

ser usada apenas caso o arquivo de senhas ainda não exista, pois ela instrui o utilitário a criá-lo. # htpasswd -c arquivo_de_senhas usuário Para que o Squid forneça suporte à autenticação devem-se habilitar estas configurações no arquivo squid.conf através da TAG auth_param. É nela que são realizadas as mudanças necessárias para que o esquema de autenticação comece a funcionar, já que por padrão ele não vem habilitado. No próprio arquivo tem comentários que mostram como isso deve ser feito para cada tipo escolhido. Exemplo: auth_param basic program c:/squid/libexec/ncsa_auth c:/squid/etc/passwd auth_param basic children 5 auth_param basic realm Servidor Proxy Squid CET auth_param basic credentialsttl 2 hours A linha auth_param basic program c:/squid/libexec/ncsa_auth c:/squid/etc/passwd especifica qual módulo será usado, no caso /usr/lib/squid/ncsa_auth é onde se encontra o arquivo com os usuários e senhas gerado conforme comentado acima. Em auth_param basic children 5 estamos definindo quantos processos filhos do módulo de autenticação poderão existir, esse número é o padrão do Squid, entretanto em redes maiores pode haver a necessidade de um incremento deste, devido ao número provavelmente maior de usuários que precisarão se autenticar simultaneamente. Em auth_param basic realm Servidor Proxy Squid CET configura-se a mensagem que aparecerá na tela onde são fornecidas as informações do usuário para autenticação. Esta opção é interessante para que possamos personalizar este mensagem da tela de login do nosso servidor. E por último auth_param basic credentialsttl 2 hours especifica a validade de uma autenticação bem sucedida. Com estas configurações já é possível ter um proxy habilitado a trabalhar com autenticação de usuários, bastando para isso que sejam feitas ACL's e definir as regras de acesso.

Configurando um Proxy transparente (em distribuições Linux): Uma garantia de que os usuários realmente vão usar o proxy e ao mesmo tempo uma grande economia de trabalho e dor de cabeça pra você é o recurso de proxy transparente. Ele permite configurar o Squid e o firewall de forma que o servidor proxy fique escutando todas as conexões na porta 80. Mesmo que alguém tente desabilitar o proxy manualmente nas configurações do navegador, ele continuará sendo usado. Outra vantagem é que este recurso permite usar o proxy sem precisar configurar manualmente o endereço em cada estação. Basta usar o endereço IP do servidor rodando o proxy como gateway da rede. Lembre-se que para usar o Proxy transparente, você já deve estar compartilhando a conexão no servidor, via nat. O Proxy transparente apenas fará com que o proxy intercepte os acessos na porta 80, obrigando tudo a passar pelas suas regras de controle de acesso, log, autenticação e cache. Se você ainda não compartilhou a conexão, pode fazer isso manualmente rodando estes três comandos: # modprobe iptable_nat # iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE # echo 1 > /proc/sys/net/ipv4/ip_forward O "eth1" na segunda linha indica a placa que está conectada na Internet e será compartilhada. Você pode checar a configuração da rede usando o comando "ifconfig" (como root). Nem todas as distribuições instalam o iptables por padrão. No Mandrake, por exemplo, pode ser necessário rodar primeiro um "urpmi iptables". Em seguida, rode o comando que direciona as requisições recebidas na porta 80 para o squid. # iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128 O "eth0" neste quarto comando indica a placa da rede local, onde o Proxy recebe as requisições dos outros micros da rede e o "3128" indica a porta usada pelo squid.

Adicione os quatro comandos no final do arquivo /etc/rc.d/rc.local ou /etc/init.d/bootmisc.sh (no Debian) para que eles sejam executados durante o boot. Finalmente, você precisa adicionar as seguintes linhas no final do arquivo squid.conf e restartar o serviço: httpd_accel_host virtual httpd_accel_port 80 httpd_accel_with_proxy on httpd_accel_uses_host_header on Em resumo, você vai ter a conexão compartilhada via Nat no servidor e configurará os clientes para acessar através dela, colocando o servidor como gateway da rede. Ao ativar o Proxy transparente, a configuração dos clientes continua igual, a única diferença é que agora todo o tráfego da porta 80 passará obrigatoriamente pelo servidor Squid. Isso permite que você se beneficie do log dos acessos e do cache feito pelo proxy, sem ter que se sujeitar às desvantagens de usar um proxy, como ter que configurar manualmente cada estação. Depois de adicionar a regra que libera o acesso na hora do almoço, ativar a autenticação e o Proxy transparente, o arquivo vai ficar assim: http_port 3128 visible_hostname kurumin # Configuração do cache cache_mem 32 MB maximum_object_size_in_memory 64 KB maximum_object_size 512 MB minimum_object_size 0 KB cache_swap_low 90 cache_swap_high 95 cache_dir ufs /var/spool/squid 2048 16 256 # Localização do log de acessos do Squid cache_access_log /var/log/squid/access.log refresh_pattern ^ftp: 15 20% 2280 refresh_pattern ^gopher: 15 0% 2280 refresh_pattern. 15 20% 2280

acl all src 0.0.0.0/0.0.0.0 acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl SSL_ports port 443 563 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 563 # https, snews acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl Safe_ports port 901 # SWAT acl purge method PURGE acl CONNECT method CONNECT http_access allow manager localhost http_access deny manager http_access allow purge localhost http_access deny purge http_access deny!safe_ports http_access deny CONNECT!SSL_ports # Libera acessos na hora do almoço acl almoco time 12:00-14:00 http_access allow almoco # Filtros por palavras e por dominios acl proibidos dstdom_regex "/etc/squid/proibidos" http_access deny proibidos acl bloqueados dstdomain orkut.com www.orkut.com playboy.abril.com.br http_access deny bloqueados # Autenticação dos usuários auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/squid_passwd acl autenticados proxy_auth REQUIRED http_access allow autenticados

# Libera para a rede local acl redelocal src 192.168.1.0/24 http_access allow localhost http_access allow redelocal # Bloqueia acessos externos http_access deny all # Proxy transparente httpd_accel_host virtual httpd_accel_port 80 httpd_accel_with_proxy on httpd_accel_uses_host_header on Conclusão: O arquivo squid.conf é auto-explicativo e você pode aproveitar algumas linhas do arquivo original visto que boa parte do arquivo são comentários. A partir daí você pode ir fazendo um trabalho incremental, de ir bloqueando uma a uma páginas onde os usuários perdem muito tempo, ou fazer algum trabalho educativo, explicando que os acessos estão sendo monitorados e estabelecendo algum tipo de punição para quem abusar, pois: a criatividade é toda sua!

Referência Bibliográfica: http://pablorocha.com/ftpablo/linux/iptablessquid/squid/curso%20tecn%d3logo%20em%20redes%20 DE%20COMPUTADORES%20proxy-squid.PDF, acessado em 22 de setembro de 2010 às 23h28min; http://www.guiadohardware.net/dicas/configurando-proxytransparente-nas-novas-versoes-squid.html, acessado em 22 de setembro de 2010 às 23h30min;