Vous êtes sur la page 1sur 25

3 CENTRO DE TELEMTICA DE REA Proxy baseado em Squid 2010 ENSINO A DISTNCIA

Elaborado por: 2 Ten Srgio Santos

APRESENTAO
O presente material foi elaborado pela Seo de Redes do 3 C T A, com a finalidade de auxiliar na instruo de Proxy baseado em Squid.

OBJETIVO
Descrever a instalao, configurao e utilizao de um servidor proxy baseado em squid.

APRESENTAO.........................................................................................................4 OBJETIVO.....................................................................................................................5 INTRODUO..............................................................................................................8 Proxy Squid.............................................................................................................................8 Proxy.......................................................................................................................................8 cache: .................................................................................................................................8 Autenticao: .....................................................................................................................9 Listas de controles de acesso: ............................................................................................9 Proxy transparente: ............................................................................................................9 Squid.......................................................................................................................................9 INSTALAO..............................................................................................................10 CONFIGURAO.......................................................................................................10 Algumas opes....................................................................................................................11 http_port......................................................................................................................11 cache_mem.................................................................................................................11 cache_dir.....................................................................................................................11 cache_acess_log..........................................................................................................11 cache_log....................................................................................................................12 cache_store_log...........................................................................................................12 pid_filename...............................................................................................................12 cache_effective_user proxy........................................................................................12 cache_effective_group proxy......................................................................................12 TAG: ACLs..................................................................................................................12 src................................................................................................................................13 dst................................................................................................................................13 srcdomain....................................................................................................................13 dstdomain....................................................................................................................13 srcdom_regex..............................................................................................................13 dstdom_regex..............................................................................................................13 time.............................................................................................................................14 url_regex.....................................................................................................................14 urlpath_regex..............................................................................................................14 port..............................................................................................................................14 proto............................................................................................................................14 method.........................................................................................................................14 browser........................................................................................................................14 ident.............................................................................................................................14 ident_regex..................................................................................................................15 src_as...........................................................................................................................15 dst_as...........................................................................................................................15 proxy_auth..................................................................................................................15 http_access..................................................................................................................15 visible_hostname.........................................................................................................15 error directory.............................................................................................................15 Restringindo o uso do Proxy.................................................................................................16 Negando acesso a determinados sites...................................................................................16 Comparando termos em uma URL.......................................................................................16 Configurando para Autenticao..........................................................................................17 Observao: ................................................................................................................17 Restringindo o horrio de acesso..........................................................................................18 5

Nota: ...........................................................................................................................18 PROXY TRANSPARENTE..........................................................................................19 Vantagens do proxy transparente..........................................................................................19 Desvantagens do proxy transparente.....................................................................................20 IP masquerade.......................................................................................................................20 Configurando o proxy transparente no kernel 2.4.................................................................21 Prtica....................................................................................................................................22 LOGS DO SQUID........................................................................................................24 Sarg.......................................................................................................................................24 CONCLUSO..............................................................................................................25 REFERNCIA.............................................................................................................26

INTRODUO

Proxy Squid
Squid um animal cefalpode (como uma lula, polvo, etc) de dez braos, encontrado nas costas martimas americanas. Neste captulo iremos conhecer um pouco sobre proxy e o mais utilizado pelo Linux, o squid.

Proxy
O termo servidor proxy ou servio de proxy, vem de uma palavra em ingls que significa procurao. Em termos tcnicos, servidor proxy um software que tem um procurao de um ou mais hosts para buscar na internet uma informao solicitada. Portanto, sempre que h uma requisio de servios HTTP ou FTP, o servidor proxy captura os dados que o destinatrio disponibiliza ao cliente (usurio) e os guarda em uma rea em disco. Na prxima vez que este site for acessado, o navegador primeiro far a procura no servidor proxy. Se os dados forem encontrados neste servidor, a transferncia de dados se dar entre ele e o cliente (navegador). Se o servidor proxy no dispuser dos dados requisitados, o acesso ser feito diretamente ao site de destino. O proxy surgiu da necessidade de conectar uma rede local Internet atravs de um computador da rede que compartilha sua conexo com as demais mquinas da rede. Em outras palavras, se considerarmos que a rede local uma rede interna e a Internet uma rede externa, podemos dizer que o proxy que permite outras mquinas terem acesso externo. Geralmente, mquinas da rede interna no possuem endereos vlidos na Internet e, portanto, no tm uma conexo direta com a Internet. Assim, toda solicitao de conexo de uma mquina da rede local para um host da Internet direcionada ao proxy, este, por sua vez, realiza o contato com o host desejado, repassando a resposta solicitao para a mquina da rede local. Por este motivo, que utilizado o termo proxy para este tipo de servio, que traduzido para procurador ou intermedirio. O compartilhamento de Internet apresentado se refere ao servio bsico de um proxy. Mas um bom proxy deve ainda prover vrias outras funcionalidades complementares tais como:

cache:
Permite armazenar no prprio proxy as pginas visitadas com mais frequncia, ou seja, quando um usurio solicita um site na Internet, o proxy armazena o seu contedo em seu cache, juntamente com a sua data. Caso o usurio, depois de 7

certo tempo, solicite-a novamente, o proxy obtm a data da pgina remota e caso no seja mais atual que a pgina que est em cache, este fornece para o cliente a pgina em cache, sem a necessidade de baixar novamente a pgina solicitada. Esta funcionalidade aumenta bastante o desempenho do acesso pginas, uma vez que o acesso s pginas em cache so muito mais rpidas que as pginas remotas.

Autenticao:
Permite autenticar clientes atravs de login, baseados em usurio e senha.

Listas de controles de acesso:


Tambm conhecidas como acls, permite que administrador restrinja o acesso a determinados sites baseados em critrios estipulados em listas de controles. Os critrios podem ser expressos em regras baseadas no login, palavras-chave na URL, palavras-chave no contedo do site, horrio de acesso, etc.

Proxy transparente:
Com o proxy transparente no preciso configurar o navegador, facilitando a administrao da rede. Isto realizado atravs de configuraes no roteador padro da rede local, de forma que toda solicitao de trfego externo direcionada para o proxy. Assim, o proxy funciona de forma transparente para o usurio, sem necessitar configurar explicitamente o seu uso.

Squid
Foi originado de um projeto denominado Harvest entre o governo americano e a Universidade de Colorado. Atualmente o Proxy mais popular e mais usado como controle de contedo, na qual possui vrios programadores como desenvolvedores do projeto pelo mundo. geralmente disponibilizado por padro pela maioria dos sistemas operacionais Linux, fornecendo todas as funcionalidades de um Proxy comum. O squid busca por comunicao TCP e ICP (Internet Cache Protocol) em portas especficas. O TCP usado para comunicao entre webservers clientes e o ICP para conversa entre os servidores de cach. Para cada servidor ou (cliente), a configurao do squid precisa fornecer uma nica porta sobre a qual o mesmo ir enviar requisies (TCP ou ICP) e ouvir as respostas. O squid trabalha apenas com FTP, Gopher, e HTTP. Portanto, no possvel atravs do squid, configurar acesso a e-mails, ICQ, IRC, etc, simples de entender, pois no faz sentido criar caches de mensagens pessoais ou mesmo corporativas, tal qual, mensagens instantneas. O squid um proxy de alto desempenho para clientes web, resumindo, ele um servidor proxy usado para acelerar a navegao

dos usurios de sua rede pela web. Para esses outros protocolos, devem ser usados outros meios como o IP masquerade (NAT - Network Address Translator). Podemos dizer que existem dois grandes motivos pelo qual se deve utilizar um PROXY/CACHE: Controle de Acesso e Desempenho. Visando aproveitar o mximo da banda de acesso internet, o uso do PROXY/CACHE se faz necessrio, diminuindo o trfego na rede internet e intranet. Exemplo: Em uma rede simples, de seis micros, em que todos acessem a internet, podemos instalar Linux em um micro e direcionar o acesso dos demais ao primeiro; ou de uma forma mais profissional, o acesso dos micros passe por um Firewall, fazendo com que cada micro, ao fazer uma requisio de acesso internet, procure o Gateway da rede (Firewall), que direciona as requisies para o squid; ou ento, de uma melhor forma, colocar o servio squid em um micro separado, oferecendo um melhor desempenho e controle.

INSTALAO
Existem vrios softwares proxy de caractersticas diferentes: alguns mais especializados em somente alguns protocolos; outros com mais funcionalidades de filtragem de contedo e firewall; outros so mais especializados para otimizao de cache (em RAM ou disco rgido). O squid est continuamente melhorando seu desempenho, alm de adicionar novas caractersticas e ter uma excelente estabilidade em condies externas. Voc pode instalar o squid de duas formas: instalao via pacotes ou instalao via cdigo fonte. O Debian sempre prezou pela facilidade de instalao e atualizao de pacotes com seu sistema apt, e agora o aptitude, que facilita e muito a vida dos administradores. Para instalar o squid, digite o comando:
aptitude install squid apache2

Para instalar o squid no debian, instale o squid e o apache2, o apache nesse caso, ser apenas para termos o software para gerar as senhas.

CONFIGURAO
O servidor Squid fornece servio proxy para os principais protocolos utilizados por navegadores, como: FTP, HTTP e HTTPS. Portanto nossas configuraes estaro relacionadas a estes dois protocolos. Depois de instalado, o squid cria o diretrio /etc/squid onde armazena seus arquivos gerais. O squid possui apenas um arquivo de configurao, squid.conf. 9

Este arquivo bastante auto-explicativo, por isso trataremos das opes mais importantes. O arquivo dividido em sees, mas o fato de no usarmos as sees nada tem a ver com a seqncia de uso das opes. Segue abaixo as principais opes de configuraes: Segue alguns caminhos importantes para a configurao:
/var/log/squid/cache.log /var/log/squid/store.log /var/log/squid/access.log /var/run/squid.pid /var/spool/squid

Lembrete: Aps a digitacao, mudar (chown) o dono e grupo da pasta /var/log/ squid/ para o usuario proxy ou squid, dependendo qual foi criado da pasta.

Algumas opes
Algumas opes, sempre devem aparecer e estar configuradas para desde o incio da configurao funcionar corretamente. Abaixo as opes mais comuns:

http_port
http_port 3128

A porta na qual o squid ir atender s requisies feitas ele, valor padro = 3128.

cache_mem
cache_mem 8 MB

O padro utilize 8 MB de memria, mas este valor pode ser aumentado confirme a quantidade e uso no servidor existente.

cache_dir
cache_dir ufs /var/spool/squid 100 16 256

Diretrio onde squid ir armazenar os objetos do cache. Onde, como no exemplo, teremos: o tamanho em 100MB, tendo 16 diretrios com 256 diretrios em cada um deles.

cache_acess_log
cache_access_log /var/log/squid/access.log

Arquivo no qual sera gerado um registro dos acessos (De quem, quando e onde) ao servidor. 10

cache_log
cache_log /var/log/squid/cache.log

Arquivo onde so guardadas informaes gerais sobre o comportamento da cache.

cache_store_log
cache_store_log /var/log/squid/store.log

Arquivo que contm detalhe sobre processo de armazenamento em disco, podendo fornecer informaes tais como quais arquivos foram removidos do cache, quais foram mantidos e por quanto tempo.

pid_filename
pid_filename /var/run/squid.pid

Especifica em qual arquivo sera arquivado o PID dos processos. Para desabilitar coloque none. O padro /usr/local/squid/logs/squid.pid

cache_effective_user proxy
cache_effective_user proxy

Usurio dono dos processos.

cache_effective_group proxy
cache_effective_group proxy

Grupo dono dos processos.

TAG: ACLs
Sem duvida a parte mais importante do squid, com o uso de acl devidamente planejada possvel ter controle no s sobre os usurios, mas tambm melhora o desempenho e facilita a administrao. O conceito de ACL (Access Control List) muito til, ela permite especificar endereos de origem e destino, bem como domnios, horrios, usurios portas ou mtodos, e podendo tomar decises com base nelas, permitir ou negar acesso. O uso das listas de controle de acesso a parte mais importante da configurao de um servidor proxy Squid, pois se bem configuradas podem trazer um nvel de segurana muito bom para a rede, entretanto se mau configuradas podem ter resultado oposto, j que alm da falsa sensao de segurana no ser aproveitada a grande capacidade e funcionalidade do squid. Uma dica para se fazer boas ACL's testar, testar, testar, testar e testar, e depois quando achar que est 11

bom continue testando e monitorando seus logs para identificar algum problema que possa ocorrer. A primeira coisa que devemos saber que o squid interpreta as ACL's de cima para baixo, portanto muito importante que seja observada esta regra no momento em que esto sendo construdas as regras de acesso. As ACL's so casesensitive, isto , site_porno diferente de Site_porno, portanto cuidado com isso. Caso seja usada o opo -i elas deixaro de ser case-sensitive. Outra regra muito importante que caso uma das regras coincida, as demais no sero mais verificadas. Isso independe da quantidade de regras que ainda faltam para atingir o fim da lista. SINTAXE: acl NOME (identifica lista de acesso) TIPO (indica qual o objeto referenciado) OBJ1 (src, dst, time, etc) OBJ2...

src
a abreviao de source que origem, define-se ip de origem bem como redes. Ex.: 10.1.0.0/255.255.0.0.

dst
semelhante ao src porem o destino (Destination)

srcdomain
Especifica o domnio de origem. Ex.: google.com

dstdomain
semelhante ao srcdomain porm o destino.

srcdom_regex
Avalia o domnio com expresses regulares. Ex.: Google. Ele ir utilizar para qualquer domnio que tenha a palavra google no meio,
www.google.com.br, www.google.com ....

dstdom_regex
O mesmo que o srcdom_regex porm no destino. 12

time
Especifica uma expresso descrevendo tempo. Exemplo: S-Sunday-Domingo, MMonday-Segunda-feira, etc. Horas sendo o incio seguido do fim: hora1: minuto1- hora2: minuto2

url_regex
Este tipo percorre toda a url procura da expresso que foi especificada. Ex:
Acl proibido url_regex i /etc/squid/proibido.txt Acl permitido url_regex i /etc/squid/permitido.txt

urlpath_regex
semelhante a o url_regex, sendo que ele procura a expresso apos o domnio e independente do protocolo. Se especificado com i ele deixa de ser case sensitive. Ex.: www.google.com.br/linux/squid.html[/i] Ele s procura a partir do /linux/squid.html

port
Realiza o controle de porta de destino do servidor, que tambm pode ser ranges (2000-2100)

proto
Especifica o Protocolo (http, FTP, etc.).

method
Especifica o mtodo a ser usado (GET, POST, etc.).

browser
Expresso regular ser procurada no cabealho http.

ident
Controle baseado no nome do usurio, especifica um ou mais usurios. O IDENT utilizado para identificar o que os usurios esto fazendo. 13

ident_regex
O mesmo que o ident porem utilizando expresso regulares.

src_as
Origem de um sistema autnimo

dst_as
Destino de um sistema autnomo

proxy_auth
Tipo usado para implementar autenticao de usurios no proxy. A autenticao feita com uso de softwares externos. Podem ser passados os nomes dos usurios ou usada a opo REQUIRED para que seja autenticado qualquer usurio vlido

http_access
Para definir as ACLs, devemos definir as restries. Isso feito atravs do http_access. O http_access permite ou nega o acesso, o uso de ! antes do nome da acl esta negando a mesma.
http_access allow permitido!proibido http_access deny all

visible_hostname
Nesta linha, vai o primeiro nome do servidor e o seu domnio. Esta informao a que aparece nas telas de erro.
visible_hostname labproxy

error directory
Converte as mensagens pelo squid para o Portugus
error_directory /usr/share/squid/errors/Portuguese

14

Restringindo o uso do Proxy


Neste exemplo usaremos a acl apenas para liberarmos o uso do proxy para a rede interna. Para isso encontre a linha:
http_access allow all

Esta linha j foi apresentada anteriormente e deve ser substituda por:


acl minharede src 10.1.0.0/255.255.0.0 http_access allow minharede

O uso de acl bastante intuitivo. Seguindo o exemplo, minharede o nome da acl, src define uma acl do tipo origem, neste caso a origem a rede 10.1.0.0/255.255.0.0. Logo abaixo a linha permite o uso do proxy atravs da entrada allow que est direcionada a rede minharede definida pela acl. Ou seja, toda solicitao que tiver como origem a rede 10.1.0.0/255.255.0.0 ter permisso, enquanto outras solicitaes sero negadas.

Negando acesso a determinados sites


Neste caso a inteno negar determinadas URLs. Esta funcionalidade tem como objetivo evitar que usurios acessem determinadas pginas indevidas. Veja o exemplo:
acl listanegada url_regex "/etc/squid/listanegada.txt" http_access deny listanegada acl minharede src 10.1.0.0/255.255.0.0 http_access allow minharede

Neste caso surge um novo tipo de acl, a url_regex, este tipo define a verificao das URLs digitadas no Navegador. Para que esta entrada funcione, voc deve criar o arquivo /etc/squid/listanegada.txt, este arquivo deve conter as URLs (nomes de sites) no permitidas porque na linha que se segue do exemplo a entrada http_access deny listanegada. No arquivo listanegada.txt voc deve definir um site por linha. Observe que voc pode definir vrias acls.

Comparando termos em uma URL


Esta configurao permite negar todos os sites que tenha na URL uma palavra que case padro com a palavra definida por uma acl. Vejamos este exemplo:
acl palavra url_regex -i sex http_access deny palavra acl listanegada url_regex "/etc/squid/listanegada.txt" http_access deny listanegada

15

acl minharede src 10.1.0.0/255.255.0.0 http_access allow minharede

importante saber que a leitura deste arquivo feita de cima para baixo, ento voc deve prestar a ateno na ordem com que voc define estas acls. Sempre interessante negar acesso para depois liberar. Neste exemplo encontramos a opo -i para o tipo url_regex, esta opo no faz a diferenciao de maiscula e minscula verificando a ocorrncia de uma palavra similar a sex na URL. Assim, qualquer site que em sua URL contenha a palavra sex ser negado. So exemplos de URLs que sero negados: www.sexteste.com.br, www.sexm.com.br, etc.

Configurando para Autenticao


Esta funcionalidade permite voc criar contas de usurios para acesso a Internet. Assim cada usurio alm de ter uma conta de usurio, dever ter outra conta para acesso Internet. A solicitao de usurio e senha ser feito quando o usurio abrir o navegador [browser] e digitar o nome da pgina a ser exibida, se esta pgina for externa, o proxy far a requisio de autenticao. Assim voc limita apenas o uso do proxy para uso externo e no do navegador, que poder utilizar internamente da rede sem problemas. Este servio feito atravs do authenthicate_program, um programa autenticador. O pacote do squid inclui um programa autenticador chamado ncsa_auth, o qual utiliza arquivos de senhas no formato htpasswd do apache.

Observao:
O usurio e senha no precisam ser necessariamente os mesmos do usurio da rede. O executvel do ncsa_auth, quase sempre est no diretrio /usr/lib/squid/. Caso queira, pode copi-lo para um diretrio de arquivos binrios (/usr/Bin, por exemplo), conforme exemplo:
cp /usr/lib/squid/ncsa_auth /usr/bin

Uma tpica linha de configurao seria:


auth_param basic /usr/lib/squid/senhas_squid program /usr/lib/squid/ncsa_auth

Sendo a linha acima, referindo-se ao programa que ir autenticar assim como o arquivo que guardar as senhas dos usurios. Caso o arquivo senhas_squid ainda no tiver sido criado, utilize o comando htpasswd e use a opo c. Ex.
htpasswd c /usr/lib/squid/senhas_squid usuario1

16

J no prximo, no precisar mais utilizar a opo c.


auth_param basic children 10

A linha mostrada serve para definir o nmero de autenticaes simultneas. Como padro, o programa autenticador no utilizado. Se voc utilizar o ncsa_auth (ou algum outro autenticador), deve existir uma lista de acesso do tipo Proxy_auth para permitir ou no o acesso. Ex:
acl minharede proxy_auth REQUIRED http_access allow minharede http_access deny all

Depois de feito isto, o prximo passo adicionar uma acl para esta nova funcionalidade. Logo, na seo acl do arquivo squid.conf voc deve adicionar:
acl listanegada url_regex "/etc/squid/listanegada.txt" http_access deny listanegada acl password proxy_auth REQUIRED http_access allow password acl minharede src 10.1.0.0/255.255.0.0 http_access allow minharede

Esta lista de acesso tem a funo de liberar o acesso ao proxy somente atravs da autenticao do usurio. Lembrando que voc pode usar esta regra de acl junto com as demais apresentadas acima, o que determinar isto ser o grau com que voc vai querer liberar ou negar o acesso aos clientes do proxy. O prximo passo reinicializar o servio squid:
/etc/rc.d/init.d/squid3 restart

Restringindo o horrio de acesso


Atravs do Squid voc pode definir faixas de horrio em que os usurios podero acessar a Internet. Esta funcionalidade tambm implementada atravs de acls, vejamos o exemplo:
acl horariodeacesso time MTWTF 08:00-18:00 http_access allow horariodeacesso

Esta acl define que permitido o acesso ao servidor Squid apenas no intervalo 08:00(oito horas) s 18:00h(dezoito horas). Qualquer tentativa de acesso que no esteja nesta faixa de horrio ser negada.

Nota:
Pode se ter dificuldades de implementar este tipo de restrio quando se est trabalhando conjuntamente com a autenticao de usurio.

17

Vamos agora criar o cache inicial: # squid -z Para depurar erros do squid # /usr/sbin/squid -d 10 Mais uma dica... Para limpar o arquivo original, devemos usar o comando: # cp squid.conf squid.conf.back # grep -v ^# squid.conf.back|grep -v ^$ > squid.conf Pronto, nosso proxy est criado! Para inici-lo, execute os seguintes passos: # cd /etc/init.d # ./squid start

PROXY TRANSPARENTE
Nele simplesmente feito um encaminhamento de pacotes vindos da Internet para uma mquina que esta na rede interna. Com o Proxy transparente no preciso configurar o navegador como, por exemplo, o Internet Explorer ou o Firefox, facilitando a administrao da rede. Isto realizado atravs de configuraes no roteador ou no firewall padro da rede local, de forma que toda solicitao de trfego externo direcionada para o Proxy. Assim, o Proxy funciona de forma transparente para o usurio, sem necessidade de configurao.
httpd_accel_host virtual httpd_accel_port 80 httpd_accel_with_proxy on httpd_accel_uses_host_header on

Vantagens do proxy transparente


mais simples de ser configurado quando j est habilitado no Kernel, quando no est habilitado no kernel o mesmo deve ser reinstalado com o suporte ativo para que seja usado. Programas como ICQ funcionam plenamente com ele e no precisa que as mquinas clientes sejam configuradas. Tambm possvel atravs do Proxy transparente fazer com que todo o acesso do cliente Internet fique submetido ao Proxy, ou seja, o cliente forado a utilizar o Proxy. No necessria a configurao do navegador do cliente, isto sem dvida bem vindo em uma grande rede; Como j dito anteriormente, o uso do Proxy transparente fora o cliente a passar pelo Proxy.

18

Com a configurao do Proxy transparente, todos os servios ficam disponveis aos seus clientes, lembrando que o Squid s trabalha com os protocolos HTTP e FTP. Configurado o Proxy transparente, voc pode fazer uso de outros servios como: SSH, Telnet, E-mail, etc; Outro recurso do Proxy transparente que ele funciona como uma maneira de bloquear acesso evitando que aqueles usurios mais espertos retirem as definies do Proxy de dentro do navegador, podendo assim visitar sites proibidos; Com o Proxy transparente todas as requisies feitas porta 80 so automtica redirecionadas para a porta do Squid, e assim fica virtualmente impossvel de sair para a Internet.

Desvantagens do proxy transparente


Possui menos recursos que um Proxy Controlado. Precisa de configuraes no Kernel e, em alguns casos, necessria a recompilao do Kernel do sistema. No possui nenhuma segurana de acesso e no possui um sistema de (caching), o que o torna mais lento em uma rede.

IP masquerade
O IP masquerade conhecido como NAT - Network Address Translator -assim como o proxy, o IP masquerade tem a finalidade de compartilhar Internet. O IP masquerade no um proxy pois trabalha a nvel de pacote TCP, enquanto o proxy trabalha a nvel de conexo TCP. Entretanto ambos tm a finalidade de compartilhar uma conexo com a Internet. Sabemos que em uma rede interna os endereos IP no so vlidos na Internet, e ainda sabemos que todo pacote no protocolo TCP/IP enviado deve ser retornado at o hospedeiro de origem, no sentido de estabelecer uma comunicao. Logo nos questionamos: Como uma mquina na Internet retornaria um pacote para uma mquina em uma rede interna que no possui endereo IP vlido? Entre outras funcionalidades, esta uma funo do IP masquerade. Quando o pacote direcionado Internet o mesmo passar pelo o gateway que estar provendo o NAT, ento o pacote, na verdade, atinge o hospedeiro de destino com o nmero IP do gateway que, por sua vez, possui endereo vlido na Internet. Logo esta mquina retornar o pacote para o gateway da rede local que, por sua vez, encaminha-o para a devida mquina que est na rede interna. O IP masquerade suporta perfeitamente servios como WWW e email, o que explica o seu grande uso, pois estes servios so os mais utilizados. Entretanto, o IP masquerade no tem nenhuma funcionalidade de auditoria, autenticao e segurana de acesso, o NAT pode ser utilizado sem o proxy, simplesmente permitindo acesso total Internet.

19

Configurando o proxy transparente no kernel 2.4


Seu proxy j est funcionando. Vamos agora criar as regras de firewall necessrias para que o seu squid funcione de forma transparente. Crie um arquivo em /etc/init.d:
# cd /etc/init.d # touch rc.firewall

Adicione o seguinte contedo:


#! /bin/sh

No caso do iptables, antes definir suas regras necessrio carregar seu mdulo correspondente.
#modprobe ip_tables iptables -F iptables -t nat -F iptables -t mangle -F rede_interna=10.1.0.0/16

necessrio tambm ativar ip_forward.


#echo 1 > /proc/sys/net/ipv4/ip_forward #echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts #echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

Agora hora de adicionar a regra utilizando o iptables.


# iptables -t nat -A PREROUTING -i eth0 -p tcp dport 80 -j REDIRECT to-port 3128

possvel verificar quais regras do iptables foram definidas, para isto execute:
#iptables -t nat -L Chain PREROUTING (policy ACCEPT) target prot opt source destination Chain POSTROUTING (policy ACCEPT) target prot opt source destination MASQUERADE all -- anywhere anywhere Chain OUTPUT (policy ACCEPT) target prot opt source destination

O iptables, tambm chamado de netfilter, pode ser baixado do endereo http://netfilter.samba.org , e compilado e instalado na mquina local. Agora devemos fazer o IP masquerade atravs do iptables. O comando ser:
# !/bin/bash # iptables -t nat -A POSTROUTING -o ppp0 j MASQUERADE

20

# echo 1 > /proc/sys/net/ipv4/ip_forward # echo Internet up

Depois disto altere o arquivo squid.conf, adicionando da seguinte forma:


httpd_accel_host virtual httpd_accel_port 80 httpd_accel_with_proxy on httpd_accel_uses_host_header on

Para validarmos as configuraes, podemos usar o comando


/etc/init.d/squid restart

Mas com esse comando h uma demora, ento podemos utilizar o comando
squid -k reconfigure

Que l o arquivo e valida s opes adicionadas, ento execute o comando.

Prtica
Neste exemplo toda rede 192.168.0.0 ter acesso internet.
http_port 3128 cache_mem 8 MB maximum_object_size 4096 MB cache_dir ufs /var/spool/squid 100 16 256 cache_access_log /var/log/squid/access.log cache_log /var/log/squid/cache.log cache_store_log /var/log/squid/store.log emulate_httpd_log on visible_hostname ServerProxyLab 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 to_localhost dst 127.0.0.0/8 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 CONNECT method CONNECT acl network src 192.168.0.0/24 http_access allow manager localhost http_access deny manager http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access allow network http_access deny all

21

Neste Exemplo, vrias opes so utilizadas, mensagens de erro em portugus, Proxy transparente, controle por horrio, controle por palavras bloqueadas e liberadas, liberando o acesso s palavras bloqueadas no fim de noite. Exemplo:
http_port 3128 cache_mem 8 MB maximum_object_size 4096 MB cache_dir ufs /var/spool/squid 100 16 256 cache_access_log /var/log/squid/access.log cache_log /var/log/squid/cache.log cache_store_log /var/log/squid/store.log emulate_httpd_log on error directory /usr/share/squid/errors/Portuguese visible_hostname ServerProxyLab auth_param basic program /usr/lib/squid/ncsa_auth /usr/lib/squid/squid_passwd auth_param basic children 10 auth_param realm Acesso Restrito. Digite sua Senha! 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 to_localhost dst 127.0.0.0/8 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 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 CONNECT method CONNECT acl network src 192.168.0.0/24 acl geral proxy_auth REQUIRED acl squid_passwd proxy_auth /usr/lib/squid/squid_passwd acl horario time SMTWHFA 08:00 18:59 acl fimdenoite time SMTWHFA 19:00 23:59 acl bloqueado url_regex I /etc/squid/bloqueado.txt acl liberado url_regex I /etc/squid/bloqueado.txt acl proibir_ip src 192.168.0.66 192.168.0.50 http_access allow manager localhost http_access deny manager http_access deny !Safe_ports http_access deny CONNECT!SSL_ports http_access allow squid_passwd http_access allow network http_access deny all httpd_accel_host virtual httpd_accel_port 80 httpd_accel_with_proxy on httpd_accel_uses_host_header on

22

#! /bin/sh # Faz o redirecionamento para o squid # iptables -t nat -A PREROUTING -i eth0 -p tcp dport 80 -j REDIRECT to-port 3128 #restante do seu arquivo # iptables -t nat -A POSTROUTING -o ppp0 j MASQUERADE # echo 1 > /proc/sys/net/ipv4/ip_forward # echo Internet up # cds # ./squid start # ./squid status # --[stop] para parar o servio

LOGS DO SQUID
No poderamos falar do Squid sem que fossem analisadas algumas das muitas alternativas em software para anlise dos logs e gerao de relatrios com informaes mais legveis e amigveis das atividades do servidor. Existem vrias ferramentas para anlise e gerao de relatrios dos logs do Squid, dentre elas podemos destacar o Calamaris, SARG e Squid-graph, dentre muitas outras. Cada uma delas apresenta caractersticas e funcionalidades diferentes, entretanto o objetivo final fornecer uma maneira mais amigvel de se analisar as preciosas e detalhadas informaes que o Squid grava em seus logs.

Sarg
O SARG um dos mais usados e eficientes softwares para gerao de relatrios dos logs do Squid. Ele foi escrito por um brasileiro e tm recursos muito interessantes, como listagem de sites mais visitados, sites que o acesso foi negado, falhas na autenticao, caso este recurso esteja sendo utilizado, listas de sites acessados por usurios e horrios em que foram acessados, etc. Alm do mais, cada um destes relatrios esto recheados de informaes como datas e horrios dos acessos, tempo de gasto na visita ao site, quantidades de dados trafegados e outras mais. Outra vantagem deste software que ele est disponvel em vrias lnguas, inclusive o portugus claro, alm do mais tem um arquivo de configurao relativamente simples e bem comentado, alm de est disponvel em pacotes da maioria das distribuies. No nosso caso utilizamos o comando:
# aptitude install sarg

Mas caso voc opte por instalar usando os fontes no haver maiores problemas, siga apenas os passos tradicionalmente usados para instalao. Ou ento baixar a verso mais recente do site http://web.onda.com.br/orso/ e executar os comandos abaixo na ordem apresentada, o SARG estar pronto para uso, quer dizer, para ser configurado para uso.
# tar zxvf sarg-1.4.tar.gz

23

# # # #

cd sarg-1.4/ ./configure make make install

Por padro o arquivo de configurao do sarg fica em /etc/squid/sarg/conf e os relatrios ficam em /var/www/squid-reports. Para acessar o relatrio, acesse em um browser de qualquer estao da rede http://IP_DO_SERVIDOR/squid-reports . O Sarg cria seus relatrios depois que um comando acionado. A execuo do SARG fica mais interessante se programada atravs do cron, isso pode ser implementado com o uso dos scripts que o acompanham (geralmente /usr/sbin/sarg.daily, sarg.weekly e sarg.monthly) e permitem automatizar a gerao de relatrios dirios, semanais e mensais, mas isso no quer dizer que no possamos extrair relatrios mais personalizados e de acordo com nossas necessidades. Mas caso queira criar um relatrio na hora, digite:
# sarg

Alguns parmetros interessantes que podem ser configurado no /etc/squid/sarg.conf so: language Portuguese title Squid User Access Reports

CONCLUSO
A configurao e o uso de servidores proxy um assunto muito interessante e ao mesmo tempo muito extenso. H vrias maneiras de implementar solues deste tipo, que vo apresentar um certo grau de complexidade de acordo com o porte, recursos e finalidade do que queremos usar. O objetivo aqui foi apresentar algumas a ferramenta e suas principais particularidades de modo que fosse possvel elaborar uma viso do processo de configurao e utilizao deste servidor proxy. Este um software livre de flexibilidade e muito diferenciado. Muito bom em relao a solues fechadas.

24

REFERNCIA
AKIRA, Marcelo. Colaborate with TWiki. Artigo Servidor Proxy. 2008. Disponvel em: http://wiki.sintectus.com/bin/view/GrupoLinux/ArtigoServidorProxy Acesso em: 30 ago 08. WIKIPEDIA, A ENCICLOPDIA LIVRE. Proxy. Disponvel em: http://pt.wikipedia.org/ wiki/Proxy Acesso em: 30 ago 08. WIKIPEDIA, A ENCICLOPDIA LIVRE. Proxy. Disponvel em: http://pt.wikipedia.org/ wiki/Squid Acesso em: 30 ago 08. HowtoForge. Disponvel em: www.howtoforge.org Acesso em 30Ago 08. KUHN, Aldefax G.. Instalando Squid 2.6 + patch ZPH no Debian Etch. Disponvel em: http://www.vivaolinux.com.br/dica/Instalando-Squid-2.6-+-patch-ZPH-no-DebianEtch/ Acesso em: 30 ag 08. LUNARDI, Marco Agisander. Squid: Prtico e didtico. Rio de Janeiro: Editora Moderna Ltda, 2005. MOREIRA, Leandro. Instalando e Configurando Servidor Proxy Com Squid. Disponvel em: http://under-linux.org/wiki/index.php/Tutoriais/Proxy/Squid-3 Acesso em 30 ago 08. PINHEIRO, Antonio Claudio Sales. Uso e configurao do Squid - Parte 2. Disponvel em: http://www.squid-cache.org.br/index.php? option=com_content&task=view&id=82&Itemid=27 Acesso em: 30 ago 08. Pruonckk le Punk. Debian for Dummies. Disponvel em: http://www.debianfordummies.org/wiki/index.php/DFD_Squid_Howto Acesso em: 30 ago 08. RAIMOND, Gerson. Viva o Linux. Projeto SQUID. Disponvel em: http://www.vivaolinux.com.br/artigo/Projeto-Squid?pagina=5 Acesso em 30 ago 08. RODRIGUES, Yuri. Redes de computadores para quem sabe de computadores. Disponvel em: http://yurirodrigues.wordpress.com/2007/09/28/instalando-econfigurando-squid-transparente-no-debian-etch/ Acesso em 30 ago 08. SOUSA, Maxuel Barbosa de. Obtendo e Instalando o Gnu/Debian. Rio de Janeiro: Editora Cincia Moderna Ltda, 2006. WIEL, Felipe Augusto Van de. Disponvel em: http://listas.cipsga.org.br/pipermail/debian-br/2004-August/002805.html Acesso em: 30 ago 08.

25

Vous aimerez peut-être aussi