Você está na página 1de 19

Configurando o Squid CONFIGURANDO O SQUID http://www.guiadohardware.

net/tutoriais/090/

1/19

O Squid um servidor proxy. Ele permite compartilhar a conex o entre !"rios micros# ser!indo como um intermedi"rio entre eles e a $nternet. %sar um prox& diferente de simplesmente compartilhar a conex o diretamente# !ia '(). (o compartilhar !ia '() os micros da rede acessam a internet diretamente# sem restri*+es. O ser!idor apenas repassa as requisi*+es rece,idas# como um garoto de recados. O prox& como um ,urocrata que n o se limita a repassar as requisi*+es: ele analisa todo o tr"fego de dados# separando o que pode ou n o pode passar e guardando informa*+es para uso posterior. Compartilhar a conex o !ia '() mais simples do que usar um prox& como o Squid so, !"rios aspectos. -oc. compartilha a conex o no ser!idor# configura os clientes para o utili/arem como gatewa& e pronto. 0or exemplo# para compartilhar a conex o !ia '() no 1andra2e !oc. usaria o 3Compartilhar conex o com a $nternet3 dentro do 0ainel de Controle e configuraria os clientes para usar o endere*o $0 do ser!idor 4596.578.0.5 por exemplo9 como gatewa&. 'o :urumin !oc. usaria o ;cone m"gico no $niciar < $nternet < Compartilhar Conex o e =irewall.

(o usar um prox&# alm da configura* o da rede necess"rio configurar o na!egador e cada outro programa que for acessar a internet em cada cliente para usar o prox&. Esta uma tarefa tediosa e que aca,a dando ,astante dor de ca,e*a a longo pra/o# pois cada !e/ que um micro no!o for colocado na rede ser" preciso fa/er a configura* o no!amente.

Configurando o Squid

2/19

( configura* o do prox& muda de na!egador para na!egador. 'o =irefox por exemplo !oc. encontra em Editar < 0refer.ncias < >eral < 0rox&. 'o $E a configura* o est" em Op*+es da $nternet < Op*+es < Configura*+es da ?an < %sar um ser!idor 0rox&.

(lm do na!egador# outros programas# podem ser configurados para tra,alhar atra!s do prox&: Clientes de $C@ e 1S' e at programas 060. (s !antagens de usar um prox& s o ,asicamente tr.s: 1- A poss;!el impor restri*+es de acesso com ,ase no hor"rio# login# endere*o $0 da m"quina e outras informa*+es e ,loquear p"ginas com conteBdo indeseCado. 2- O prox& funciona como um cache de p"ginas e arqui!os# arma/enando informa*+es C" acessadas. @uando algum acessa uma p"gina que C" foi carregada# o prox& en!ia os dados que guardou no cache# sem precisar acessar a mesma p"gina repetidamente. $sso aca,a economi/ando ,astante ,anda na conex o com a $nternet e tornando o acesso mais r"pido sem precisar in!estir numa conex o mais r"pida. DoCe em dia os sites costumam usar p"ginas dinEmicas# onde o conteBdo muda a cada !isita# mas mesmo nestes casos o prox& d" uma aCuda# pois em,ora o html seCa diferente a cada !isita# e realmente precise ser ,aixado de no!o# muitos componentes da p"gina# como ilustra*+es# ,anners e anima*+es em flash podem ser apro!eitadas do cache# diminuindo o tempo total de carregamento.

Configurando o Squid

3/19

Fependendo da configura* o# o prox& pode apenas acelerar o acesso Gs p"ginas# ou ser!ir como um !erdadeiro cache de arqui!os# arma/enando atuali/a*+es do Hindows %pdate# downloads di!ersos e pacotes instalados atra!s do aptIget por exemplo. (o in!s de ter que ,aixar o Ser!ice 0ac2 JKL do Hindows J0 ou o OpenOffice nos 50 micros da rede# !oc. !ai precisar ,aixar apenas no primeiro# pois os outros 9 ! o ,aixar a partir do cache do squid. 3- %ma terceira !antagem de usar um prox& que ele loga todos os acessos. -oc. pode !isuali/ar os acessos posteriormente usando o Sarg# assim !oc. sa,e quem acessou quais p"ginas e em que hor"rios. (lm de tudo# o Squid dedo duro :I0

1esmo assim# !oc. pode estar achando que as !antagens n o ! o compensar o tra,alho de sair configurando micro por micro# programa por programa para usar o prox& e mais f"cil simplesmente compartilhar !ia '(). 1as# existe a possi,ilidade de Cuntar as !antagens das formas de compartilhamento# configurando um proxy transparente como !eremos adiante. (o usar um prox& transparente# !oc. tem ,asicamente uma conex o compartilhada !ia '()# com a mesma configura* o ,"sica nos clientes. O prox& entra na histMria como uma espcie addIon.

Configurando o Squid

4/19

%ma regra de firewall en!ia as requisi*+es rece,idas na porta 80 do ser!idor para o prox&# que se encarrega de responder aos clientes. )oda a na!ega* o passa a ser feita automaticamente atra!s do prox& 4incluindo o negMcio do cache dos arqui!os do Hindows update# downloads e do aptIget9# sem que !oc. precise fa/er nenhuma configura* o adicional nos clientes :I9

( algum tempo atr"s# escre!i um script de configura* o para o :urumin# dispon;!el no painel de configura* o de ser!idores. Este script permite instalar o prox&# esta,elescer algumas restri*+es de acesso e ati!ar o prox& transparente de forma simples:

'este tutorial !ou ensinar como fa/er isso e criar regras mais ela,oradas de restri* o de acesso em qualquer distri,ui* o.

Insta ando o S!"id

Configurando o Squid

5/19

O Squid composto de um Bnico pacote# por isso a instala* o simples. Se esti!er no 1andra2e# instale com um: N "rp#i s!"id Se esti!er no Fe,ian ou outra distri,ui* o ,aseada nele# use o aptIget: N apt-get insta s!"id )oda a configura* o do Squid feita num Bnico arqui!o# o $et%$s!"id$s!"id&%on'. Caso !oc. esteCa usando uma !ers o antiga do Squid# como a inclu;da no Fe,ian Hood& por exemplo# o arqui!o pode ser o $et%$s!"id&%on'. (pesar da mudan*a na locali/a* o do arqui!o de configura* o# as op*+es descritas aqui de!em funcionar sem maiores pro,lemas. O arqui!o original# instalado Cunto com o pacote realmente enorme# contm coment"rios e exemplos para quase todas as op*+es dispon;!eis. Ele pode ser uma leitura interessante se !oc. C" tem uma ,oa familiaridade com o Squid# mas de inicio melhor come*ar com um arqui!o de configura* o mais simples# apenas com as op*+es mais usadas. Em geral cada distri,ui* o inclui uma ferramenta diferente para a configura* o do 0rox&# como o ;cone m"gico que inclu; no :urumin. %ma das mais usadas o (e)#in. ( fun* o destas ferramentas disponi,ili/ar as op*+es atra!s de uma interface gr"fica e gerar o arqui!o de configura* o com ,ase nas op*+es escolhidas. Em alguns casos estas ferramentas aCudam ,astante# mas como elas mudam de distri,ui* o para distri,ui* o# mais produti!o aprender a tra,alhar direto no arqui!o de configura* o# que n o t o complicado assim. 0ra come*ar renomeie o arqui!o padr o: N m! /etc/squid/squid.conf /etc/squid/squid.conf.!elho e crie um no!o arqui!o $et%$s!"id$s!"id&%on'# com apenas as quatro linhas a,aixo: IIIIIIII httpOport P568 !isi,leOhostname 2urumin acl all src 0.0.0.0/0.0.0.0 httpOaccess allow all IIIIIIII Estas linhas s o o suficiente para que o Squid 3funcione3. Como !oc. perce,eu# aquele arqui!o de configura* o gigante tem mais uma fun* o informati!a# citando e explicando as centenas de op*+es dispon;!eis. (s quatro linhas di/em o seguinte: I *ttp+port 312,: ( porta onde o ser!idor !ai ficar dispon;!el I visi) e+*ostna#e -"r"#in: O nome do ser!idor I a% a sr% .&.&.&.$.&.&.&. e *ttp+a%%ess a o/ a : Estas duas linhas criam uma acl 4uma pol;tica de acesso9 chamada 3all3 4todos9 incluindo todos os endere*os $0 poss;!eis e permite que qualquer um dentro desta lista use o prox&. Ou seCa# ela permite que qualquer um use o prox&# sem limita*+es.

Configurando o Squid 0ara testar o Squid# ha,ilite o ser!idor com o comando: N servi%e s!"id start Se !oc. esti!er no De)ian# use o comando: N $et%$init&d$s!"id start Se esti!er no S a%-/are# o comando ser": N $et%$r%&d$r%&s!"id start

6/19

Configure um na!egador# no prMprio ser!idor para usar o prox&# atra!s do endere*o 56Q.0.0.5 4o localhost9# porta P568 e teste a conex o. Se tudo esti!er o2 !oc. conseguir" acessar o prox& tam,m atra!s dos outros micros da rede local# ,asta configurar os na!egadores para usarem o prox&.

Criando "#a %on'ig"ra01o )2si%a O pro,lema que com apenas estas quatro linhas o prox& est" muito a,erto. Se !oc. deixar o ser!idor prox& ati!o no prMprio ser!idor que compartilha a conex o e n o ti!er nenhum firewall ati!o# algum na $nternet poderia usar o seu prox&# o que naturalmente n o deseCado. O prox& de!e ficar ati!o apenas para a rede local. -amos gerar ent o um arqui!o mais completo# permitindo que apenas os micros da rede local possam usar o prox& e definindo mais algumas pol;ticas de seguran*a. (qui eu C" apro!eitei algumas linhas do arqui!o original# criando regras que permitem o acesso a apenas algumas portas# e n o a qualquer coisa como antigamente: IIIIIIII httpOport P568 !isi,leOhostname 2urumin a% a sr% .&.&.&.$.&.&.&. acl manager proto cacheOo,Cect a% o%a *ost sr% 123&.&.&1$244&244&244&244 acl SS?Oports port RRP S7P acl SafeOports port 80 N http acl SafeOports port 65 N ftp acl SafeOports port RRP S7P N https# snews acl SafeOports port Q0 N gopher acl SafeOports port 650 N wais acl SafeOports port 506SI7SSPS N unregistered ports acl SafeOports port 680 N httpImgmt acl SafeOports port R88 N gssIhttp acl SafeOports port S95 N filema2er acl SafeOports port QQQ N multiling http acl SafeOports port 905 N SH() acl purge method 0%T>E acl CO''EC) method CO''EC) httpOaccess allow manager localhost httpOaccess den& manager

Configurando o Squid httpOaccess allow purge localhost httpOaccess den& purge httpOaccess den& USafeOports httpOaccess den& CO''EC) USS?Oports a% rede o%a sr% 152&16,&1&.$27 httpOaccess allow localhost httpOaccess allow redelocal *ttp+a%%ess deny a IIIIIIII

7/19

-eCa que agora criei duas no!as aclVs. ( acl 3localhost3 contm o endere*o 56Q.0.0.5# !oc. usa para usar o prox& localmente# a partir do prMprio ser!idor e a acl 3rede local3 que inclui os demais micros da rede local. -oc. de!e su,stituir o 3 152&16,&1&.$273 pela a faixa de endere*os $0 e a m"scara de su,Irede usada na sua rede local 4o 6R equi!ale G mascara 6SS.6SS.6SS.09. Fepois de criadas as duas pol;ticas de acesso# ! o duas linhas no final do arqui!o que especificam que os micros que se enquadrarem nelas ! o poder usar: httpOaccess allow localhost httpOaccess allow redelocal ?em,raIse da acl 3all3# que contm todo mundoW -amos usaIla para especificar que quem n o se enquadrar nas duas regras acima 4ou seCa# micros n o autori/ados# da internet9 n o poder" usar o prox&: *ttp+a%%ess deny a Esta linha de!e ir no final do arqui!o# depois das outras duas. O ordem importante# pois o squid interpreta as regras na ordem em que s o colocadas no arqui!o. Se !oc. permite que o micro J acesse o prox&# ele acessa# mesmo que uma regra mais a,aixo diga que n o. Se !oc. adicionasse algo como: acl redelocal src 596.578.5.0/6R httpOaccess allow redelocal httpOaccess den& redelocal Os micros da rede local continuariam acessando# pois a regra que permite !em antes da que pro;,e.

Con'ig"rando o %a%*e de p2ginas e ar!"ivos Outra coisa importante configurar o cache do prox&. O squid tra,alha com dois tipos de cache: 5I %m cache r"pido# feito usando parte da memMria T(1 do ser!idor 6I %m cache um pouco mais lento porm maior# feito no DF O cache na memMria T(1 ideal para arma/enar arqui!os pequenos# como p"ginas html e imagens# que ser o entregues instantEneamente para os clientes. O cache no DF usado para arma/enar arqui!os maiores# como downloads# arqui!os do Hindows update e pacotes ,aixados pelo aptIget.

Configurando o Squid

8/19

O cache na memMria T(1 sempre relati!amente pequeno. 'um ser!idor n o dedicado ou seCa# uma m"quina que usada para fa/er outras coisas# mas roda tam,m o prox&# !oc. !ai reser!ar coisa de 57 ou P6 1X de T(1 para o cache# para e!itar que o cache do squid coma toda a memMria T(1 deixando o micro lento. Se !oc. ti!er uma rede muito grande e preferir deixar um micro dedicado apenas para o Squid# ent o o cache pode ter at 5/P da memMria T(1 do ser!idor. ' o caia no erro de reser!ar quase toda a T(1 para o cache# pois alm do cache# o sistema !ai precisar de memMria para fa/er outras coisas. O cache no DF pode ser mais generoso# afinal a idia que ele guarde todo tipo de arqui!os# principalmente os downloads grandes# que demoram para ser ,aixados. ( Bnica limita* o neste caso o espa*o li!re no DF. ( configura* o do cache feita adicionando mais algumas linhas no arqui!o de configura* o: ( configura* o da quantidade de memMria T(1 dedicada ao cache feita adicionando a op* o 3cacheOmem3# que contm a quantidade de memMria que ser" dedicada ao cache. 0ara reser!ar P6 1X# por exemplo# a linha ficaria: cacheOmem P6 1X (,aixo !ai mais uma linha# que determina o tamanho m"ximo dos arqui!os que ser o guardados no cache feito na memMria T(1. O resto !ai para o cache feito no DF. O cache na memMria muito mais r"pido# mas como a quantidade de T(1 muito limitada# melhor deixaIla dispon;!el para p"ginas we,# figuras e arqui!os pequenos em geral. 0ara que o cache na memMria arma/ene arqui!os de at 7R :X por exemplo# adicione a linha: maximumOo,CectOsi/eOinOmemor& 7R :X Em seguida !em a configura* o do cache em disco# que arma/enar" o grosso dos arqui!os. 0or default# o m"ximo s o downloads de 57 1X e o m;nimo /ero# o que fa/ com que mesmo imagens e arqui!os pequenos seCam arma/enados no cache. Sempre mais r"pido ler a partir do cache do que ,aixar de no!o da we,# mesmo que o arqui!o seCa pequeno. Se !oc. fa/ download de arqui!os grandes e deseCa que eles fiquem arma/enados no cache# aumente o !alor da op* o maximumOo,CectOsi/e $sto especialmente Btil para quem precisa ,aixar muitos arqui!os atra!s do aptIget ou Hindows update em muitos micros da rede. Se !oc. quiser que o cache arma/ene arqui!os de at S56 1X por exemplo# as linhas ficariam: maximumOo,CectOsi/e S56 1X minimumOo,CectOsi/e 0 :X -oc. pode definir ainda a percentagem de uso do cache que far" o squid come*ar a descartar os arqui!os mais antigos. 0or padr o isso come*a a acontecer quando o cache est" 90Y cheio: cacheOswapOlow 90 cacheOswapOhigh 9S Fepois !em a configura* o do tamanho do cache em disco propriamente dita# que composta por quatro !alores. O primeiro# 4/!ar/spool/squid9 indica a pasta onde o squid arma/ena os arqui!os do cache. -oc. pode querer alterar para uma pasta em uma parti* o separada por exemplo. O 360R83 indica a quantidade de espa*o no DF 4em 1X9 que ser" usada para o cache. (umente o !alor se !oc. tem muito espa*o no DF do ser!idor e quer que o squid guarde os downloads por muito tempo.

Configurando o Squid

9/19

=inalmente# os nBmeros 57 6S7 indicam a quantidade de su,pastas que ser o criadas dentro do diretMrio. 0or padr o temos 57 pastas com 6S7 su,pastas cada uma. cacheOdir ufs /!ar/spool/squid 60R8 57 6S7 -oc. pode definir ainda o arqui!o onde s o guardados os logs de acesso do Squid. 0or padr o o squid guarda o log de acesso no arqui!o /!ar/log/squid/access.log. Este arqui!o usado pelo sarg para gerar as p"ginas com as estatisticas de acesso. cacheOaccessOlog /!ar/log/squid/access.log 1ais uma configura* o que !oc. pode querer alterar o padr o de atuali/a* o do cache. Estas tr.s linhas precisam sempre ser usadas em conCunto. Ou seCa# !oc. pode alter"Ilas# mas sempre as tr.s precisam estar presente no arqui!o. Eliminando um# o squid ignora as outras duas e usa o default. Os nBmeros indicam o tempo 4em minutos9 quando o squid ir" !erificar se um ;tem do cache 4uma p"gina por exemplo9 foi atuali/ado# para cada um dos tr.s protocolos. O primeiro nBmero 4o 5S9 indica que o squid !erificar" se todas as p"ginas e arqui!os com mais de 5S minutos foram atuali/ados. Ele sM !erifica checando o tamanho do arqui!o# o que r"pido. Se o arqui!o n o mudou# ent o ele continua mandando o que n o est" no cache para o cliente. O terceiro nBmero 4o 6680# equi!alente a dois dias9 indica o tempo m"ximo# depois disso o o,Ceto sempre !erificado. (lm do http e ftp o Squid suporta o protocolo >opher# que era muito usado nos primMrdios da $nternet para locali/ar documentos de texto# mas perdeu a rele!Encia hoCe em dia: refreshOpattern Zftp: 5S 60Y 6680 refreshOpattern Zgopher: 5S 0Y 6680 refreshOpattern . 5S 60Y 6680 Fepois de adicionar estas configura*+es todas# o nosso arqui!o de configura* o C" ficar" ,em maior: IIIIIIII httpOport P568 !isi,leOhostname 2urumin %a%*e+#e# 32 89 maximumOo,CectOsi/eOinOmemor& 7R :X maximumOo,CectOsi/e S56 1X minimumOo,CectOsi/e 0 :X cacheOswapOlow 90 cacheOswapOhigh 9S %a%*e+dir "'s $var$spoo $s!"id 2.7, 16 246 cacheOaccessOlog /!ar/log/squid/access.log refreshOpattern Zftp: 5S 60Y 6680 refreshOpattern Zgopher: 5S 0Y 6680 refreshOpattern . 5S 60Y 6680 acl all src 0.0.0.0/0.0.0.0 acl manager proto cacheOo,Cect acl localhost src 56Q.0.0.5/6SS.6SS.6SS.6SS acl SS?Oports port RRP S7P acl SafeOports port 80 N http acl SafeOports port 65 N ftp

Configurando o Squid acl SafeOports port RRP S7P N https# snews acl SafeOports port Q0 N gopher acl SafeOports port 650 N wais acl SafeOports port 506SI7SSPS N unregistered ports acl SafeOports port 680 N httpImgmt acl SafeOports port R88 N gssIhttp acl SafeOports port S95 N filema2er acl SafeOports port QQQ N multiling http acl SafeOports port 905 N SH() acl purge method 0%T>E acl CO''EC) method CO''EC) httpOaccess allow manager localhost httpOaccess den& manager httpOaccess allow purge localhost httpOaccess den& purge httpOaccess den& USafeOports httpOaccess den& CO''EC) USS?Oports acl redelocal src 596.578.5.0/6R httpOaccess allow localhost httpOaccess allow redelocal httpOaccess den& all IIIIIIII

10/19

(qui C" temos uma configura* o mais completa# incluindo um conCunto de regras de seguran*a# para que o prox& seCa usado apenas a partir da rede local e a configura* o do cache# uma configura* o adequada para uso numa rede domstica ou um pequeno escritMrio por exemplo. 'uma rede maior !oc. pro!a!elmente iria querer adicionar algumas limita*+es de acesso# limitando o acesso a algumas p"ginas# criando um sistema de autentica* o ou limitando o uso com ,ase no hor"rio por exemplo.

Adi%ionando restri0:es de a%esso 'um am,iente de tra,alho# a idia que os funcion"rios usem a internet para comunica* o# pesquisa e outras fun*+es relacionadas ao que est o fa/endo. (lgumas empresas permitem que acessem os eImails pessoais e coisas assim# mas sempre at um certo limite. Seu chefe n o !ai gostar se come*arem a passar a maior parte do tempo no Or2ut por exemplo.

9 o!"eando por pa avras o" do#;nios %ma forma f"cil de ,loquear sites no Squid criar uma lista de pala!ras# um arqui!o de texto onde !oc. adiciona pala!ras e dom;nios que ser o ,loqueados no Squid. Xloquear um determinado dom;nio# como por exemplo 3or2ut.com3 n o gera muitos pro,lemas# mas tome cuidado ao ,loquear pala!ras espec;ficas# pois o Squid passar" a ,loquear qualquer p"gina que contenha a pala!ra em quest o.

Configurando o Squid

11/19

Se !oc. ,loquear a pala!ra 3sexo3 por exemplo# qualquer site ou artigo que mencione a pala!ra ser" ,loqueado. (o ,loquear por pala!ras !oc. de!e tentar ser espec;fico# ,loqueando apenas Carg+es e express+es que s o encontradas apenas nos sites que !oc. pretende ,loquear. 0ara adicionar o filtro de pala!ras# adicione as linhas: acl proi,idos dstdomOregex 3/etc/squid/proi,idos3 httpOaccess den& proi,idos (qui estamos criando uma acl chamada 3proi,idos3 que gerada a partir da leitura do arqui!o 3/etc/squid/proi,idos3# o arqui!o de texto que iremos editar. O acesso a qualquer p"gina que contenha pala!ras citadas no arqui!o ,loqueada. O arqui!o de!e conter as pala!ras e dom;nios ,loqueados# um por linha:

Fepois criar o arqui!o e adicionar as duas linhas no arqui!o de configura* o do squid# reinicie o ser!i*o com um: N servi%e s!"id restart ou N $et%$init&d$s!"id$restart ( partir da; o ,loqueio de pala!ras entra em a* o e os clientes passam a !er uma mensagem de erro ao tentar acessar a p"gina:

Configurando o Squid

12/19

Este filtro de pala!ras pode le!ar a alguns erros inesperados. Se !oc. o usa para ,loquear o site 3or2ut.com3 por exemplo# os usu"rios n o conseguir o ler por exemplo um artigo da Superinteressante que cita o endere*o do site. Existe uma op* o mais adequada para o ,loqueio de dom;nios# que criar uma acl usando o parEmetro 3dstdomain3. -eCa um exemplo: acl ,loqueados dstdomain or2ut.com pla&,o&.a,ril.com.,r astala!ista.,ox.s2 httpOaccess den& ,loqueados (qui eu criei uma acl chamada 3) o!"eados3 que contm os endere*os 3or2ut.com3 3pla&,o&.a,ril.com.,r3 e 3astala!ista.,ox.s23 e me seguida inclu; a regra 3httpOaccess den& ,loqueados3 que ,loqueia o acesso a eles. (qui estamos sendo mais espec;ficos. (o in!s de ,loquear o termo 3or2ut.com3 o squid !ai ,loquear apenas o acesso ao dom;nio em quest o. Existe uma Bltima ressal!a: alguns sites# como o or2ut.com podem ser acessados tanto com o www quanto sem. 0ara o squid# 3www.or2ut.com3 e 3or2ut.com3 s o duas coisas diferentes. Xloqueando o 3or2ut.com3 os usu"rios ainda conseguir o acessar o site atra!s do 3www.or2ut.com3. 0ara ,loquear am,os# preciso incluir as duas possi,ilidades dentro da regra# como em: acl ,loqueados dstdomain or2ut.com www.or2ut.com pla&,o&.a,ril.com.,r httpOaccess den& ,loqueados -oc. pode incluir quantos dom;nios quiser dentro da regra# ,asta separ"Ilos por espa*o e deixar tudo na mesma linha. ' o existe pro,lema em com,inar a regra que cria o filtro de pala!ras com esta que filtra ,aseado no dom;nio# !oc. pode apelar para uma ou outra de acordo com a situa* o. Fepois de adicionar as no!as regras# nosso arqui!o de configura* o ficaria assim:

Configurando o Squid IIIIIIII httpOport P568 !isi,leOhostname 2urumin cacheOmem P6 1X maximumOo,CectOsi/eOinOmemor& 7R :X maximumOo,CectOsi/e S56 1X minimumOo,CectOsi/e 0 :X cacheOswapOlow 90 cacheOswapOhigh 9S cacheOdir ufs /!ar/spool/squid 60R8 57 6S7 cacheOaccessOlog /!ar/log/squid/access.log refreshOpattern Zftp: 5S 60Y 6680 refreshOpattern Zgopher: 5S 0Y 6680 refreshOpattern . 5S 60Y 6680 acl all src 0.0.0.0/0.0.0.0 acl manager proto cacheOo,Cect acl localhost src 56Q.0.0.5/6SS.6SS.6SS.6SS acl SS?Oports port RRP S7P acl SafeOports port 80 N http acl SafeOports port 65 N ftp acl SafeOports port RRP S7P N https# snews acl SafeOports port Q0 N gopher acl SafeOports port 650 N wais acl SafeOports port 506SI7SSPS N unregistered ports acl SafeOports port 680 N httpImgmt acl SafeOports port R88 N gssIhttp acl SafeOports port S95 N filema2er acl SafeOports port QQQ N multiling http acl SafeOports port 905 N SH() acl purge method 0%T>E acl CO''EC) method CO''EC) httpOaccess allow manager localhost httpOaccess den& manager httpOaccess allow purge localhost httpOaccess den& purge httpOaccess den& USafeOports httpOaccess den& CO''EC) USS?Oports a% proi)idos dstdo#+regex <$et%$s!"id$proi)idos< *ttp+a%%ess deny proi)idos a% ) o!"eados dstdo#ain or-"t&%o# ///&or-"t&%o# p ay)oy&a)ri &%o#&)r *ttp+a%%ess deny ) o!"eados acl redelocal src 596.578.5.0/6R httpOaccess allow localhost httpOaccess allow redelocal httpOaccess den& all IIIIIIII

13/19

-eCa que coloquei as duas regras antes do 3httpOaccess allow redelocal3# que a,re tudo para a rede local. Como o squid processa as regras seq[encialmente# as p"ginas que forem ,loqueadas pelas duas regras n o chegar o a passar pela seguinte.

Configurando o Squid

14/19

9 o!"eando por *or2rio Estas regras fa/em com que o prox& recuse conex+es feitas dentro de determinados hor"rios. -oc. pode definir regras per;odos espec;ficos e com,in"Ilas para ,loquear todos os hor"rios em que !oc. n o quer que o prox& seCa usado. 0ara que o prox& ,loqueie acessos feitos entre meiaInoite e 7:00 da manh e no hor"rio de almo*o por exemplo# !oc. usaria as regras: acl madrugada time 00:00I07:00 httpOaccess den& madrugada acl almoco time 56:00I5R:00 httpOaccess den& almoco Estas regras iriam no!amente antes da regra 3httpOaccess allow redelocal3 no arqui!o de configura* o. (gora imagine que !oc. quer fa/er diferente. (o in!s de ,loquear o acesso na hora de almo*o# !oc. quer deixar o prox& a,erto# para quem quiser ir no or2ut ou acessar os eImails poder fa/er isso fora do hor"rio de tra,alho. 'este caso !oc. usaria uma regra como: acl almoco time 56:00I5R:00 httpOaccess allow almoco Esta regra entraria no arqui!o de configura* o antes das regras 3httpOaccess den& proi,idos3 e 3httpOaccess den& proi,idos3. (ssim# os acessos que forem aceitos pela regra do almo*o# n o passar o pelas regras que fa/em o ,loqueio.

=roxy %o# a"tenti%a01o -oc. pode adicionar uma camada extra de seguran*a exigindo autentica* o no prox&. Este recurso pode ser usado para controlar quem tem acesso G $nternet e auditar os acessos em caso de necessidade. @uase todos os na!egadores oferecem a op* o de sal!ar a senha. ' o seria muito legal se o usu"rio ti!esse que ficar digitando toda hora... \I9

Configurando o Squid

15/19

0ara ati!ar a autentica* o !oc. !ai precisar de u programa chamado 3*tpass/d3. Se ele n o esti!er presente# instale o pacote apa%*e-"ti s: Em seguida crie o arqui!o que ser" usado para arma/enar as senhas: N to"%* $et%$s!"id$s!"id+pass/d Cadastre os logins usando o comando: N *tpass/d $et%$s!"id$s!"id+pass/d -"r"#in 4onde o 32urumin3 o usu"rio que est" sendo adicionado9 Fepois de terminar de cadastrar os usu"rios# adicione as linhas que ati!am a autentica* o no /etc/squid/squid.conf: authOparam ,asic program /usr/li,/squid/ncsaOauth /etc/squid/squidOpasswd acl autenticados prox&Oauth TE@%$TEF httpOaccess allow autenticados O 3/usr/li,/squid/ncsaOauth3 a locali/a* o da ,i,lioteca respons"!el pela autentica* o. E!entualmente# ela pode estar numa pasta diferente dentro da distri,ui* o que esti!er usando. 'este caso use o 3locate3 ou a ,usca do :FE para encontrar o arqui!o e altere a linha indicando a locali/a* o correta. Estas tr.s linhas criam uma acl chamada 3autenticados3 4poderia ser outro nome9# que contm os usu"rios que se autenticarem usando um login !"lido.

Con'ig"rando "# proxy transparente %ma garantia de que os usu"rios realmente ! o usar o prox& e ao mesmo tempo uma grande economia de tra,alho e dor de ca,e*a pra !oc. o recurso de prox& transparente. Ele permite configurar o Squid e o firewall de forma que o ser!idor prox& fique escutando todas as conex+es na porta 80. 1esmo que algum tente desa,ilitar o prox& manualmente nas configura*+es do na!egador# ele continuar" sendo usado.

Configurando o Squid

16/19

Outra !antagem que este recurso permite usar o prox& sem precisar configurar manualmente o endere*o em cada esta* o. Xasta usar o endere*o $0 do ser!idor rodando o prox& como gatewa& da rede. ?em,reIse que para usar o prox& transparente# !oc. C" de!e estar compartilhando a conex o no ser!idor# !ia nat. O prox& transparente apenas far" com que o prox& intercepte os acessos na porta 80# o,rigando tudo a passar pelas suas regras de controle de acesso# log# autentica* o e cache. Se !oc. ainda n o compartilhou a conex o# pode fa/er isso manualmente rodando estes tr.s comandos: N #odpro)e ipta) e+nat N ipta) es -t nat -A =OS>ROU>ING -o et*1 -? 8ASQU@RAD@ N e%*o 1 A $pro%$sys$net$ipv7$ip+'or/ard O 3et*13 na segunda linha# indica a placa que est" conectada na $nternet e ser" compartilhada. -oc. pode checar a configura* o da rede usando o comando 3ifconfig3 4como root9. 'em todas as distri,ui*+es instalam o ipta,les por padr o. 'o 1andra2e por exemplo# pode ser necess"rio rodar primeiro um 3urpmi ipta,les3. Em seguida# rode o comando que direciona as requisi*+es rece,idas na porta 80 para o squid. N ipta) es -t nat -A =R@ROU>ING -i et*. -p t%p --dport ,. -? R@DIR@C> --to-port 312, O 3eth03 neste quarto comando indica a placa da rede local# onde o prox& rece,e as requisi*+es dos outros micros da rede e o 3P5683 indica a porta usada pelo squid. (dicione os quatro comandos no final do arqui!o $et%$r%&d$r%& o%a ou $et%$init&d$)oot#is%&s* 4no Fe,ian9 para que eles seCam executados durante o ,oot. =inalmente# !oc. precisa adicionar as seguintes linhas no final do arqui!o squid.conf e restartar o ser!i*o: httpdOaccelOhost !irtual httpdOaccelOport 80 httpdOaccelOwithOprox& on httpdOaccelOusesOhostOheader on Em resumo# !oc. !ai ter a conex o compartilhada !ia 'at no ser!idor e configurar" os clientes para acessar atra!s dela# colocando o ser!idor como gatewa& da rede. (o ati!ar o prox& transparente# a configura* o dos clientes continua igual# a Bnica diferen*a que agora todo o tr"fego da porta 80 passar" o,rigatoriamente pelo ser!idor Squid. $sso permite que !oc. se ,eneficie do log dos acessos e do cache feito pelo prox&# sem ter que se suCeitar Gs des!antagens de usar um prox&# como ter que configurar manualmente cada esta* o. Fepois de adicionar a regra que li,era o acesso na hora do almo*o# ati!ar a autentica* o e o prox& transparente# nosso arqui!o !ai ficar assim: IIIIIIII httpOport P568 !isi,leOhostname 2urumin N Configura* o do cache cacheOmem P6 1X

Configurando o Squid maximumOo,CectOsi/eOinOmemor& 7R :X maximumOo,CectOsi/e S56 1X minimumOo,CectOsi/e 0 :X cacheOswapOlow 90 cacheOswapOhigh 9S cacheOdir ufs /!ar/spool/squid 60R8 57 6S7 N ?ocali/a* o do log de acessos do Squid cacheOaccessOlog /!ar/log/squid/access.log refreshOpattern Zftp: 5S 60Y 6680 refreshOpattern Zgopher: 5S 0Y 6680 refreshOpattern . 5S 60Y 6680 acl all src 0.0.0.0/0.0.0.0 acl manager proto cacheOo,Cect acl localhost src 56Q.0.0.5/6SS.6SS.6SS.6SS acl SS?Oports port RRP S7P acl SafeOports port 80 N http acl SafeOports port 65 N ftp acl SafeOports port RRP S7P N https# snews acl SafeOports port Q0 N gopher acl SafeOports port 650 N wais acl SafeOports port 506SI7SSPS N unregistered ports acl SafeOports port 680 N httpImgmt acl SafeOports port R88 N gssIhttp acl SafeOports port S95 N filema2er acl SafeOports port QQQ N multiling http acl SafeOports port 905 N SH() acl purge method 0%T>E acl CO''EC) method CO''EC) httpOaccess allow manager localhost httpOaccess den& manager httpOaccess allow purge localhost httpOaccess den& purge httpOaccess den& USafeOports httpOaccess den& CO''EC) USS?Oports N ?i,era acessos na hora do almo*o acl almoco time 56:00I5R:00 httpOaccess allow almoco N =iltros por pala!ras e por dominios acl proi,idos dstdomOregex 3/etc/squid/proi,idos3 httpOaccess den& proi,idos acl ,loqueados dstdomain or2ut.com www.or2ut.com pla&,o&.a,ril.com.,r httpOaccess den& ,loqueados N (utentica* o dos usu"rios authOparam ,asic program /usr/li,/squid/ncsaOauth /etc/squid/squidOpasswd acl autenticados prox&Oauth TE@%$TEF httpOaccess allow autenticados N ?i,era para a rede local acl redelocal src 596.578.5.0/6R httpOaccess allow localhost httpOaccess allow redelocal

17/19

Configurando o Squid N Xloqueia acessos externos httpOaccess den& all N 0rox& transparente httpdOaccelOhost !irtual httpdOaccelOport 80 httpdOaccelOwithOprox& on httpdOaccelOusesOhostOheader on IIIIIIII

18/19

Usando o Sarg para #onitorar o a%esso O Sarg um interpretador de logs para o Squid# assim como o He,ali/er e o (pache. Sempre que executado ele cria um conCunto de p"ginas# di!ididas por dia# com uma lista de todas as m"quinas que foram acessadas e a partir de cada m"quina da rede !eio cada acesso. Caso !oc. tenha configurado o Squid para exigir autentica* o. # ele organi/a os acessos com ,ase nos logins dos usu"rios# caso contr"rio ele mostra os endere*os $0 das m"quinas. ( partir da; !oc. pode acompanhar as p"ginas que est o sendo acessadas# mesmo que n o exista nenhum filtro de conteBdo e tomar as medidas ca,;!eis em casos de a,uso. )odos sa,emos que os filtros de conteBdo nunca s o completamente efica/es# eles sempre ,loqueiam algumas p"ginas Bteis e deixam passar muitas p"ginas imprMprias. Se !oc. ti!er algum tempo para ir acompanhando os logs# a inspe* o manual sempre o mtodo mais eficiente. ( partir da; !oc. pode ir fa/endo um tra,alho incremental# de ir ,loqueando uma a uma p"ginas onde os usu"rios perdem muito tempo# ou fa/er algum tra,alho educati!o# explicando que os acessos est o sendo monitorados e esta,elecendo algum tipo de puni* o para quem a,usar. (qui est" um exemplo do relatMrio gerado pelo Sarg. 0or padr o ele gera um conCunto de p"ginas html dentro da pasta $var$///$s!"id-reports$ 4ou $var$///$*t# $s!"id$# no 1andra2e9 que !oc. pode !isuali/ar atra!s de qualquer na!egador. Os acessos s o organi/ados por usu"rio 4caso esteCa usando autentica* o9 ou por $0# mostrando as p"ginas acessadas por cada um# quantidade de dados transmitidos# tempo gasto em cada acesso# tentati!as de acesso ,loqueadas pelos filtros de conteBdo e outras informa*+es.

Configurando o Squid

19/19

O Sarg inclu;do na maioria das distri,ui*+es atuais# em alguns casos instalado por padr o Cunto com o Squid. 'o Fe,ian e deri!ados ele pode ser instalado com um: B apt-get insta sarg 'o 1andra2e um 3"rp#i sarg3 C" resol!e. Fepois de instalado# ,asta chamar o comando 3sarg3 4como root9 para que os relatMrios seCam geradas automaticamente a partir do log do squid. O Sarg n o um daemon que fica residente# !oc. precisa apenas chamaIlo quando quiser atuali/ar os relatMrio# se !oc. quiser automati/ar esta tarefa# pode usar o cron para que ele seCa executado automaticamente todos os dias ou uma !e/ por hora por exemplo. -oc. pode alterar a pasta onde s o sal!os os relatMrios# limitar o acesso Gs estat;ticas e alterar !"rias op*+es cosmticas no arqui!o de configura* o do Sarg# que o $et%$sarg$sarg&%on' 4no 1andra2e9 ou $et%$s!"id$sarg&%on' 4no Fe,ian9. O arqui!o auto explicati!o# nele !oc. pode alterar os diretMrios padr o# alterar o la&out da Outro recurso interessante o en!io de uma cMpia do relatMrio por eImail sempre que o sarg for executado.