Ead Squid Vs2011

download Ead Squid Vs2011

of 26

Transcript of Ead Squid Vs2011

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

Elaborado por: 2 Ten Srgio Santos

2

APRESENTAOO 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.

3

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

4

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

PROXY TRANSPARENTE..........................................................................................19 IP masquerade.......................................................................................................................20 Finalmente, a prtica.............................................................................................................21 LOG DO SQUID.......................................................................................................... 23 Sarg....................................................................................................................................... 23 CONCLUSO..............................................................................................................25 REFERNCIA............................................................................................................. 26

6

INTRODUO

Proxy SquidSquid 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.

ProxyO 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 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 ACL, 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 uso do proxy-transparente, independente de cliente da rede, ter o navegador configurado para uso do proxy, a mediao ser realizada pelo proxy, de forma a facilitar a administrao da rede, tendo muitos clientes ou no. Isto realizado atravs de configuraes no gateway da rede local, de forma que toda solicitao de trfego externo direcionada para o proxy. Assim, ele funciona de forma transparente para o usurio, sem necessitar configurar explicitamente o seu uso.

SQUIDFoi 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, um proxy server 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 em que todos acessem a internet, podemos eleger um computador para ser nosso proxy e direcionar o acesso de todos demais ao a este, logo, isso far com que cada computador, ao fazer uma requisio de acesso internet, procure o SQUID, nos oferecendo um melhor desempenho e controle.

Algumas opesAlgumas opes, sempre devem aparecer e estar configuradas para que o servio funcione corretamente. Abaixo as opes mais comuns:

http_porthttp_port 3128

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

cache_memcache_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_dircache_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_logcache_access_log /var/log/squid/access.log

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

cache_logcache_log /var/log/squid/cache.log

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

cache_store_logcache_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_filenamepid_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 proxycache_effective_user proxy

Usurio dono dos processos.

cache_effective_group proxycache_effective_group proxy

Grupo dono dos processos.

TAG: ACLSem 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 proxy server 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 testar, testar, testar, testar e testar, e depois quando achar que est bom continue testando e monitorando seus Log para identificar algum problema que possa ocorrer. A primeira coisa que devemos saber que o SQUID interpreta as ACL de cima para baixo, portanto muito importante que seja observada esta regra no momento em que esto sendo construdas as regras de acesso e seja observado o fato de testar uma de cada vez. As ACL so case-sensitive, 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)

srcdomainEspecifica o domnio de origem. Ex.: google.com

dstdomain semelhante ao srcdomain porm o destino.

srcdom_regexAvalia 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_regexO mesmo que o srcdom_regex porm no destino.

timeEspecifica uma expresso descrevendo tempo. Exemplo:S-Sunday-Domingo, M-Monday-Segunda-feira, T-Tuesday-Tera-feira, W-Wednesday-Quarta-feira H-Thursday-Quinta-feira, F-Friday-Sexta-feira A-Saturday-Sbado

Horas sendo o incio seguido do fim: hora1: minuto1- hora2: minuto2

url_regexEste 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

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

protoEspecifica o Protocolo (http, FTP, etc.).

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

browserExpresso regular ser procurada no cabealho http.

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

ident_regexO mesmo que o ident porem utilizando expresso regulares.

src_asOrigem de um sistema autnimo

dst_asDestino de um sistema autnomo

proxy_authTipo 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_accessPara 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_hostnameNesta linha, vai o primeiro nome do servidor e o seu domnio. Esta informao a que aparece nas telas de erro.visible_hostname labproxy

error directoryConverte as mensagens pelo squid para o Portuguserror_directory /usr/share/squid/errors/Portuguese

Restringindo e Liberando o uso do ProxyNeste 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 sitesNeste caso a inteno negar determinadas URL. 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 URL digitadas no Navegador. Para que esta entrada funcione, voc deve criar o arquivo /etc/squid/listanegada.txt, este arquivo deve conter as URL (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 ACL.

Comparando termos em uma URLEsta configurao permite negar todos os sites que tenha na URL uma palavra que case 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 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 ACL. 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 AutenticaoEsta 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:Para situaes em que ainda no h autenticao centraliza, o usurio e senha no necessitam ser os mesmos do usurio da rede, embora, realizado desta forma, facilite a administrao desse e outros servios de rede, e para o usurio tambm facilita, pois ter apenas um login para os servios oferetados. O executvel do ncsa_auth, deve estar 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 program /usr/lib/squid/ncsa_auth /usr/lib/squid/senhas_squid

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. Exemplo:htpasswd c /usr/lib/squid/senhas_squid usuario1

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 acessoAtravs 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 de 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.

INSTALAOExistem 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 cach (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 esta instruo foi utilizado Debian 6 (2.6.32-5-686), Apache2, Squid (2.7.STABLE9). Vamos instalar o SQUID e aproveita-se o momento, instalamos tambm o APACHE:aptitude install squid squid-common apache2 apache2.2-common -y

CONFIGURAOO proxy-server SQUID oferece servio 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 seus arquivos e diretrios:/etc/defaut/squid /etc/squid /etc/inis.d/squid /usr/sbin/squid /usr/share/doc/squid /usr/share/squid /usr/lib/squid /var/log/squid

O squid possui apenas um arquivo de configurao, squid.conf 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:

Seguem 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

Vamos agora criar o cache inicial:# squid -z

Para depurar erros do squid# /usr/sbin/squid -d 10

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. Pronto, nosso proxy est criado e em execuo! Caso queira iniciar novamente o servio, execute os seguintes passos: acesse o diretrio:# cd /etc/init.d # ./squid start

PROXY TRANSPARENTENele 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, funciona de forma transparente para o usurio, sem necessidade de configurao. As verses anteriores 2.6 (como a usada no Debian Sarge e no Ubuntu 5.10), onde necessrio adicionar as quatro linhas abaixo, no final do arquivo "/etc/squid/squid.conf" (neste caso, sem alterar a linha "http_port 3128"):httpd_accel_host virtual httpd_accel_port 80 httpd_accel_with_proxy on httpd_accel_uses_host_header on

Para verses recentes do Squid, 2.6 em diante, a configurao de proxy transparente feita com uma nica linha. Basta substituir a linha "http_port 3128" no incio do arquivo por:httpd_port 3128 transparent

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 por forar o cliente a passar pelo proxy. Com a configurao do proxy-transparente realizada, 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 acessos, 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. 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 masqueradeO 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. Vamos ativar ip_forward e adicionar o redirecionamento utilizando o iptables:# !/bin/bash # iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128 #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

possvel verificar quais regras do iptables foram definidas, para isto execute:#iptables -t nat -L

Finalmente, a prticaExemplo 1: Liberar acesso para a rede declarada, proxy-transparente e no utilizao de cachehttpd_port 3128 transparent emulate_httpd_log off visible_hostname srv-proxy 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 refresh_pattern refresh_pattern refresh_pattern ^ftp: ^gopher: . 1440 1440 0 20% 0% 20% 10080 1440 4320

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 21 443 563 70 210 1025-65535 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

http_access allow manager localhost http_access deny manager http_access deny !Safe_ports http_access deny CONNECT !SSL_ports # acl pra no passar pelo cache acl nocache url_regex "/etc/squid/acl/nocache.txt" \? no_cache deny nocache http_access allow network http_access deny all cache_effective_user proxy cache_effective_group proxy

Exemplo 2: Neste, vrias opes para restrio so utilizadas, como: autenticao por grupos, controle por horrio, controle por palavras, mensagens de erro em portugus.http_port 3128 emulate_httpd_log on visible_hostname srv-proxy 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 refresh_pattern refresh_pattern refresh_pattern ^ftp: ^gopher: . 1440 1440 0 20% 0% 20% 10080 1440 4320

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 network src 192.168.40.0/24 acl SSL_ports port 443 563 acl Safe_ports port 80 21 443 563 70 210 1025-65535 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 auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/acl/squid_passwd auth_param basic children 5 auth_param basic realm Acesso Restrito. Digite seu Usurio e Senha! auth_param basic credentialsttl 1 hours acl passwd proxy_auth REQUIRED src 192.168.40.0/24 acl squid_passwd proxy_auth "/etc/squid/acl/squid_passwd" acl bloqueiosite url_regex -i /etc/squid/acl/bloqueiosite.txt

acl bloqueioarquivo urlpath_regex -i /etc/squid/acl/bloqueioarquivo.txt acl expediente1 time SMTWHFA 08:00-18:00 http_access deny bloqueioarquivo http_access allow squid_passwd http_access allow network http_access allow manager localhost http_access deny manager http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access deny expediente1 bloqueiosite http_access deny all icp_access allow all miss_access allow all error_directory /usr/share/squid/errors/Portuguese cache_effective_user proxy cache_effective_group proxy

LOG DO SQUIDNo poderamos falar do SQUID sem que fossem analisadas algumas das muitas alternativas em software para anlise dos log e gerao de relatrios com informaes mais legveis e amigveis das atividades do servidor. Existem vrias ferramentas para anlise e gerao de relatrios dos log 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.

SargO SARG um dos mais usados e eficientes softwares para gerao de relatrios dos log 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 compile o programa, e o SARG estar pronto para uso, quer dizer, para ser configurado para uso.# tar zxvf sarg-1.4.tar.gz # 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 -f /etc/squid/sarg.conf

Alguns parmetros interessantes que podem ser configurado no /etc/squid/sarg.conf so: language Portuguese title Squid User Access Reports access_log /squid/log/access.log logo_text "Sarg Seo de Informtica output_dir /var/www/squid-reports/Daily" user_ip no Para restringir o acesso pgina de relatrios do sarg por qualquer usurio. Crie o arquivo .htaccess no diretrio que se deseja impedir o acesso. Exemplo:# touch /var/www/squid-reports/.htaccess AuthType Basic AuthName "CITEx" AuthUserFile /var/www/squid-reports/.htpasswd require valid-user

Inserir as seguintes linhas no arquivo /etc/apache2/sites-available/default Options Indexes FollowSymLinks MultiViews

AllowOverride All Order allow,deny allow from all

# Reinciar o Apache2#/etc/init.d/apache2 restart

Comando para criar um usurio com permisso de acesso pgina#htpasswd -c /var/www/squid-reports/.htpasswd user

CONCLUSOA configurao e o uso de proxy-server 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 das ferramentas e suas principais particularidades de modo que fosse possvel elaborar uma viso do processo de configurao e utilizao deste proxy-server. Este um software livre de flexibilidade e muito diferenciado. Muito bom em relao a solues fechadas.

REFERNCIAAKIRA, 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. http://pt.wikipedia.org/wiki/Proxy Acesso em: 30 ago 08. WIKIPEDIA, A ENCICLOPDIA LIVRE. Proxy. http://pt.wikipedia.org/wiki/Squid Acesso em: 30 ago 08. Disponvel Disponvel em: em:

HowtoForge. Disponvel em: www.howtoforge.org Acesso em 30Ago 08. HARDWARE Disponvel em: http://www.hardware.com.br/dicas/configurandoproxy-transparente-nas-novas-versoes-squid.html Acesso em: 30 jun 11. 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. ZAGO - Disponvel em: http://www.zago.eti.br/squid/A-menu-squid.html#toc1 Acesso em: 30 jun 11.