You are on page 1of 81

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

LinuxMan

editprimarylinks

Home

GoogleAds

ConfigurandoumSquid"Ninja"
SubmittedbyErionWed,2005-09-1423:10.

Umbrevetutorialcomalgumasdicasedetalhesimportantesconseguidosnodia-a-dia.

Introduo Sobreoautor Sobreessedocumento Changelog ToDo Oqueesperardeumproxy/cache? EoSquid?Satisfaztodosessespontos? OqueoSquid? PorqueutilizarumProxy/Cache? Controledeacesso Performance PorqueutilizaroSQUID? Protocolosutilizados-RedeeAplicao. Requisitos Referncias InstalandooSquid Instalandoviabinriooucomfacilidadesdosistema InstalandoemumsistemabaseadoemRedHatLinux InstalandoemumsistemabaseadoemDebian InstalandoemumFreeBSD InstalandoemumOpenBSD InstalandoemumWindows2000 Baixandoocdigo-fonte Limpandoosquid.conf Configuraesbsicas-ACLs Referncias TransparentProxy

ConfigurandooSquid Configurandooiptables ConfigurandooPF(OpenBSD) ConfigurandooIPFilter(FreeBSD) Referncias

BloqueandoSitesindesejados Criandoosarquivosnecessrios

1 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

Editandoosquid.conf Referncias BloqueiodeBanners BaixandoeinstalandooBannerFilter Editandoosquid.conf Referncias Protegendousurioscomantivrus

Pr-requisitos Viralator Referncias Autenticandousurios ncsa_auth Editandoosquid.conf Criandoumarquivodesenhas smb_auth Instalandoosmb_auth ConfigurandooPDC Configurandosquid.conf Referncias ControledeBanda Editandoosquid.conf Referncias

BrincandocomACLs UtilizandoIPseredes UsandoACLsexternas Trabalhandocomdomnios Restringindoporhorrio ExpressoregularnaURL MACAddress Limitandoonmerodeconexesporusurio ImpedindoouLimitandootamanhodeuploads Referncias Criandoumarquivodeconfiguraoautomtica Referncias Gerandorelatrios SARG

Instalao Configurao Gerandoosrelatrios Dica Calamaris

Baixandoerodando SquidGraph Instalao Criandoosgrficos

Referncias TrabalhandocomHierarquias

2 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

EntendendooICP Fazendoroteamentopordomnios Roteandoporprotocolo Paiefilho Paisefilho Referncias UtilizandooSquidcomoproxyreverso

Configuraodeproxyreverso Referncias OtimizandooSquid EspecificandooHardware Sistemasdearquivo DNS Mltiplasrotas Editandoosquid.conf Referncias UtilidadesPblicas Resetandoocachedosquid Reiniciandoasconfiguraesdosquid EntrandoemmodoDebug Squidsaindocomerro(SquidParent:childprocessexitedduetosignal)

Estudodecasos Simples,eficienteemuitotil Aspequenasdominam Precoces Arrozcomfeijo Matrizefilial Cacheareo ISP ExaminandooSquid.conf TagsdaseoNetwork

http_port icp_port htcp_port mcast_groups tcp_outgoing_address udp_incoming_address udp_outgoing_address TagsdaseoPeercacheserverseSquidhierarchy cache_peer neighbor_type_domain icp_query_timeout maximum_icp_query_timeout mcast_icp_query_timeout dead_peer_timeout hierarchy_stoplist no_cache

TagsdaseoCachesize cache_mem cache_swap_low cache_swap_high maximum_object_size

3 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

minimum_object_size maximum_object_size_in_memory ipcache_size ipcache_low ipcache_high fqdncache_size cache_replacement_policy memory_replacement_policy TagsdaseoLogfilepathnamesandcachedirectories cache_dir cache_access_log cache_log cache_store_log cache_swap_log emulate_httpd_logon|off log_ip_on_direct mime_table log_mime_hdrson|off useragent_log referer_log pid_filename debug_options log_fqdn client_netmask TagsdaseoSupportforExternalfunctions ftp_user ftp_list_width ftp_passive cache_dns_program dns_children dns_retransmit_interval dns_timeout dns_defnames dns_nameservers unlinkd_program diskd_program pinger_program redirect_program redirect_children redirect_rewrites_host_header redirector_access authenticate_program authenticate_children authenticate_ttl authenticate_ip_ttl authenticate_ip_ttl_is_strict

TagsdaseoparatunningdoSquid wais_relay_host/wais_relay_port request_header_max_size request_body_max_size reply_body_max_size refresh_pattern reference_age quick_abort_min/quick_abort_max/quick_abort_pct negative_ttl positive_dns_ttl negative_dns_ttl range_offset_limit TagsdaseoTimeouts

4 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

connect_timeout peer_connect_timeout siteselect_timeout read_timeout request_timeout client_lifetime half_closed_clients pconn_timeout ident_timeout shutdown_lifetime TagsdaseoAccessControlLists acl http_access icp_access miss_access cache_peer_access ident_lookup_access Tagsdaseoauth_param program children realm credentialsttl Tagsdaseoparmetrosadministrativos cache_mgr cache_effective_user/cache_effective_group visible_hostname hostname_aliases Tagsdaseohttpd-accelerator httpd_accel_host httpd_accel_port httpd_accel_with_proxy httpd_accel_uses_host_header TagsdaseoMiscellaneous append_domain tcp_recv_bufsize err_html_text deny_info memory_pools memory_pools_limit forwarded_for log_icp_queries icp_hit_stale minimum_direct_hops minimum_direct_rtt cachemgr_passwd client_db netdb_low/netdb_high netdb_ping_period query_icmp test_reachability reload_into_ims always_direct never_direct anonymize_headers fake_user_agent

5 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

icon_directory error_directory minimum_retry_timeout maximum_single_addr_tries snmp_port snmp_access Tagsdaseodelaypool delay_pools delay_class delay_access delay_parameters incoming_icp_average / incoming_http_average / incoming_dns_average / min_icp_poll_cnt / min_dns_poll_cnt/min_http_poll_cnt max_open_disk_fds offline_mode uri_whitespace broken_posts nonhierarchical_direct prefer_direct strip_query_terms coredump_dir redirector_bypass ignore_unknown_nameservers digest_generation digest_bits_per_entry digest_rebuild_period digest_rewrite_period digest_swapout_chunk_size digesvt_rebuild_chunk_percentage chroot client_persistent_connections/server_persistent_connections pipeline_prefetch extension_methods high_response_time_warning high_page_fault_warning high_memory_warning store_dir_select_algorithm ie_refresh

Outrasrefernciaseleiturascomplementares

Introduo

AWorldWideWeb(WWW),semamenordvida,aformamaisconhecida dainternet.Tantoissoverdade,queosleigostemumacerta dificuldadeementenderqueainternetnoseresumeaowww.Sua popularidadeecrescimentosoexplicadospelagrandevariedadede assuntosencontradosnela,pelafacilidadedebusca,simples entendimento,baixocustoe,viaderegra,privacidade.

Emdecorrnciadessagrandeprocuraalgunsefeitoscolateraisocorrem. Noincomumouviraspessoasdizeremque"ainternetestlenta",ou osadministradoresderedeobservaremseusbackbonesatingiremseus

6 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

limitesemhorriosdepico.DoladodosservidoreseISPs(Internet ServiceProviders)tambmexisteumladoquepoucaspessoaspensam. Somentequemjpassoupelo"EfeitoSlashdot1"sabedoqueestou falando.Emummomentodesobrecargadosservidores,comoocorreuna ltimacopadomundoounotenebroso11desetembro,umsistemade cachesbemplanejadoedistribudoseriamuitobemvistopelosgrandes portais.

Autilizaodesistemasdecache,comooSquid,tmsemostrado excelentesparaaliviaressessintomas,reduzindootrfegonaredee, conseqentemente,alatnciadamesma.

Todaaidiaportrsdeumsistemadecachingcriarumgrandebanco dedadosondeossitesmaispopularesouacessadosrecentementeso armazenadosparafuturasconsultas.Issosignificaquese10usurios dasuaredetentaremacessarummesmositeaomesmotempo,somenteuma dasconexesrealmenteirserfeitaaessesite.Todasasoutras9 voseaproveitardoprimeiroacessoeutilizarapginajem memria.Issoumenormeganhodedesempenhoparaseubackbonelocal, paraobackbonedoISPondeositeestarmazenadoeparaoservidor quehospedaomesmo.

Almdisso,suabandaficalivreparaquesitesmenosacessados,ou quenoestejamnocachesejambaixadoscommaiorvelocidade.

Comumsistemadecachingbemplanejadoemantido,todostemaganhar.

Sobreoautor
EriRamosBastostrabalhacomLinuxdesde1998,passandopordiversasdistribuiesefasesdiferentesdopinguim.Atualmente trabalha como consultor em solues Linux / Unix e est disponvel para ajudar a sua empresa a implantar Linux em todos os setores.Consultoria

Sobreessedocumento
Esse documento GPL, tendo sido baseado em diversas documentaes disponveis na web. Todas as marcas citadas aqui pertencemaosseusrespectivosdonos. APginaoficialdessedocumentohttp://www.linuxman.pro.br/squid/. TambmestdisponvelemversoPDF.

Esse documento foi totalmente escrito em texto puro, utilizando VIM como Editor e posteriormente convertido em HTML por txt2tagseemPDFporhtmldoc.

Changelog

11/11/2003

Adicionadaseochangelog AdicionadaseoToDo ModificacoesnoLay-outdapaginaparatornarmaislegvel Corrigidoserrosdeformatao,adaptandomelhorodocumentoaotxt2tags CriadaversoPDFdessedocumentoPDF

13/11/2003

7 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

AcrescentadocomandoparaentraremmodoDebugnaseoutilidadespblicas InclusodecdigosdeerroesadadoSquidnaseoutilidadespblicas Maisajustesestticos

05/02/2004

Sintaxemaislimpadogrepparalimparosquid.conf

23/03/2004

AcrescentadadicasobrerotatedosrelatriosdoSarg

18/06/2004

ImpedindoouLimitandootamanhodeuploads AtualizaodaURLdoSarg

ToDo

Adaptar"ExaminandooSquid.conf"paranovospadrestxt2tags Corrigirproblemas Adicionarautenticaocomproxytransparente

Oqueesperardeumproxy/cache?

Podemossumarizarosbenefciosesperadosem:

Velocidadedeacesso

Amelhorformadeverificarseoseucacheestsendoeficientepela velocidade.Umsistemadecachequenoagregavelocidadenoest cumprindooseupapel.

Disponibilidade

Denadaadiantaumsistemavelozdisponvelapenas2horaspordia,ou mesmoqueprecisedeumrebootacada2semanas.Seoseusistemade cachingouseusistemaoperacionalnotemumaaltadisponibilidade, essehowtochegouemboahora.Emcasosdegrandesinstalaes,ainda precisoirmaisafundo,buscandoaaltssimadisponibilidade. Redundnciadeservidores,backup,eliminaodepontonicodefalha edisasterrecoversoumaexigncia.

8 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

TransparnciaouOstensividade

Soconceitosespecficosequeseadaptamacadacaso.Grandes instalaes,ISPseempresasnopreocupadascomqueseususurios vemoufazemnainternetdevempreferiratransparncia,ondeo usuriodesconheceounosesenteafetado(excetopeloganhode velocidade)pelapresenadeumcache.

Poroutrolado,empresascomumapolticadeseguranamaisrgida, rgoscominformaescrticas,oumesmopaisquerendocontrolaro acessodeseusfilhosaalgunssites,vopreferiraostensividade.

Capacidadedetrabalharcomredesheterogneas.

Algunssistemasdeproxy/cachefuncionambaseadoscomsistemasde autenticaoespeciais,feitospararodarsomenteemumaplataforma, fazemintegraocomoserviodediretriosdaqueleoudessesistema ouexigemqueousurioestejarodandoaversoXYZdofabricanteABC edeixamtodososoutrosavernavios.Emumainstalaosria, precisoqueusuriosdetodasasplataformasquesaibamcomotrabalhar comHTTPsejambematendidos.

Issoespecialmenteverdadequandonosabemosquetipodeplataforma irutilizarnossainstalao.

Simplicidade

Deixandoumpoucodeladoousurioefocandonoadministrador, precisoterconscinciadequeumsistemabomumsistemafcilde administrar.Omaisrpido,maisdisponvelemaisabrangentesistema decachingtotalmenteintilsesomenteumapessoanomundosouber lidarcomele.

EoSquid?Satisfaztodosessespontos?

Emumarespostarpida:Sim. Veremosmaisabaixoquetodososrequisitoslistadossoatendidoscom primaziapeloSquid.

OqueoSquid?

Squidumproxy-cachedealtaperformanceparaclientesweb, suportandoprotocolosFTP,gophereHTTP.

OSquidmantmmetadadoseespecialmenteobjetosarmazenadosnaRAM, cacheiabuscasdeDNSeimplementacachenegativoderequestsfalhos.

ElesuportaSSL,listasdeacessocomplexaseloggingcompleto.Por utilizaroInternetCacheProtocol,oSquidpodeserconfiguradopara trabalhardeformahierrquicaoumistaparamelhoraproveitamentoda banda.

9 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

PodemosdizerqueoSquidconsisteemumprogramaprincipal-squid-, umsistemadebuscaeresoluodenomes-dnsserver-ealguns programasadicionaisparareescreverrequests,fazerautenticaoe gerenciarferramentasdeclientes.

PodemosexecutaroSquidnasprincipaisplataformasdomercado,como Linux,UnixeseWindows.

PorqueutilizarumProxy/Cache?

Podemosdizerqueexistemdoisgrandesmotivospeloqualsedeve utilizarumPROXY/CACHE:

Controledeacesso

Comainternetcadavezmaisacessvelapequenasemdiasempresas, umnmeroimensodepessoasestseinterligandoainternet.Almde todososbenefciostrazidosporela,comoinformaoemtemporeal, comunicaomundialabaixocusto,contatocompossveisclientese fornecedoresportodoomundo,amesmatrouxealgunsproblemas.

Aspessoastendemapassarcadavezmaistemponavegandoporsitesno relativosaoseutrabalhoprimrio,acessamsitesquenocondizemcom apolticadaempresa,utilizamabandadeinternetdestinadaa servioscomoWEBouVPNepodem,emmuitoscasos,acabarinfectando todaarededaempresacomvrusewormsquesoadquiridosemsites imprprios.Issosemcontarnaameaasemprepresentedepropagaode downloadsdesoftwarespiratasemsicas,fatoresquepodemcomplicar avidadeumaempresadurantefiscalizaes.

DeacordocomaRedeNacionaldeEnsinoePesquisa(RNP),65%da larguradebandadasempresasutilizadaemnavegaoWEB.Eesse nmerotendeacrescer.

Performance

Comodissemosanteriormente,ainternetestmaisacessvelpara todos,fatorcausadopelaamplautilizaodasconexesdebanda larga,comoxDSL,CableModem,ISDN,etc.

Essastecnologiassoexcelentesparapequenasemdiasempresas,mas devidoasuascaractersticasdevelocidadesdiferentesdeupstreame downstream(xDSL),compartilhamentodebandatotal(CableModem)ou baixodesempenho(ISDN),almdanotvelfaltadequalidadedas operadoras,tornam-sequaseinteisparagrandesempresaseprovedores deinternet(ISPs). Essasempresassoentolevadasautilizarsistemasdemaior qualidade,comolinksporfibratica,satliteserdio.Mascomose podeesperar,qualidadetempreo,e,nessecaso,bemsalgado.

Visandoaproveitaraomximoessabandadequalidade,autilizaode PROXY/CACHEtorna-sequasequeobrigatria.AindadeacordocomaRede NacionaldeEnsinoePesquisa(RNP)-2,autilizaodePROXY/CACHE

10 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

podegerarumaeconomiaentretrintaecinqentaporcentonos horriosdepico.Issosignificaqueparaumlinkde2Mbpsqueest operandoaplenacargaeconsiderandoumareduode30%,omesmo produziriaumganhonabandaagregadadeaproximadamente600Kbps.Ou seja,asimplesimplementaodeumPROXY/CACHEbemajustadogerauma economiadaordemdemilharesdeReaispormsparaaempresa.

ConexessofeitasnoProxy,evitandosadainternet

PorqueutilizaroSQUID?
OSquidestcontinuamentemelhorandosuaperformance,almde adicionarnovasfeatureseterumaexcelenteestabilidadeemcondies extremas.

Suacompatibilidadecomvriasplataformaseaimensagamadesoftware paraanalisarlogs,gerarrelatrios,melhorarodesempenhoe adicionarseguranaprovidospelacomunidadeopensource,combinados comferramentasdeadministraosimplificadaebaseadasemweb agregamgrandevaloraoproduto.

Podemosaindacitaracapacidadedeclustering,transparentproxy, cachedeFTPe,claro,seubaixocusto.

Paraosmaiscorajosos,ouparaosmelhoresprogramadores,nopodemos deixardedizerqueosistematotalmenteaberto,possibilitandoa suaotimizaononveldecdigo,almdaotimizaovia configurao.

Protocolosutilizados-RedeeAplicao.

OSquidbuscaporcomunicaoTCP(TransmissionControlProtocol)e ICP(InternetCacheProtocol)emportasespecficas.OTCPusado paracomunicaoentrewebserverseclientes,eoICPparaconversa entreservidoresdecache.Paracadaservidor(oucliente),a configuraodoSquidprecisafornecerumanicaportasobreaqualo Squidirenviarasrequisies(TCPouICP)eouvirasrespostas.

Comojdissemosanteriormente,oSquidtrabalhaapenascomFTP, gopherehttp.Existeumaconfusomuitocomumentrepessoasqueesto comeandoatrabalharcomoSquidemacharquepodero,atravsdo Squid,configuraracessoae-mails,ICQ,IRC,etc.Issototalmente equivocado,vistoquenosfunodofirewalltrabalharcomoNAT (NetworkAddressTranslation),comotambmnofazsentidocriar cachesdee-mailspessoais,mensagensdoICQ,etc.

ParaconfigurarseufirewallapropriadamenteparaNAT,verifiquea documentaodeseusistemaoperacionaloufirewall.

Requisitos

11 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

AmaiorpartedasconfiguraesdependeapenasdoSquid.Oproxy transparentetambmdependedosistemaoperacionaledofirewall

Ainstalaopadrodosquid,disponvelnamaiorpartedas distribuies,noconseguelidarcomocontroledebanda,sendo necessriorecompilaroSquid.

Referncias

RedeNacionaldePesquisa(1)http://www.rnp.br/newsgen/0103/wccp.shtml

RedeNacionaldePesquisa(2)http://www.rnp.br/arquivos/docgeral.html

DuaneWesselsHomePage-http://www.life-gone-hazy.com/index-two.html

FirewallLinuxman(IPTABLES)http://www.linuxman.pro.br/cgi-bin/firewall/

SurveyofWebCachingSchemesfortheInternet-

http://www.acm.org/sigcomm/ccr/archive/1999/oct99/Jia_Wang2.pdf

InstalandooSquid
OSquidpodeserinstaladoemumaimensavariedadesdesistemas operacionais.PraticamentetodososUnixescomumbomcompiladorC/C++ podegerarbinriosdoSquid.

Suapopularidade,noentanto,nospoupaessepassoemmuitas plataformas.Segueabaixoaformadeinstalaonasmaispopulares plataformasdomercado.

Instalandoviabinriooucomfacilidadesdosistema

Sevocnoprecisadenenhumafeaturemuitosofisticadanoseusquid (90%doscasosnoprecisa),nohporqueinstalarviacdigo-fonte baixadodositedosquid.

Vamosdiretoaoassunto:

InstalandoemumsistemabaseadoemRedHatLinux

12 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

AlmdeestardisponvelnosCDsdadistribuio,aindapossvel baixarasmaisnovasversesjempacotadasnosistemaRPM(RedHat PackageManager).Paraissoacesseolink

http://www.rpmfind.net/linux/rpm2html/search.php?query=squid&submit=Search+...&system=redhat&arch=

Edepois: # rpm -ivh squid.x.y.z.rpm

InstalandoemumsistemabaseadoemDebian

ODebiansempreprezoupelafacilidadedeinstalaoaatualizaode pacotes,comseusistemaapt,quefacilitamuitoavidados administradores.Parainstalarosquidbastaexecutarocomando: # apt-get install squid

InstalandoemumFreeBSD

SevocinstalouodiretriodeportsnoFreeBSD,ainstalaoser simples,bastandoutilizaroscomandosabaixo: # cd /usr/ports/www/squid25/ # make # make all install

Oupormeiodeumpacotepr-compilado: # # # # mount /cdrom #CD de instalao do FreeBSD mkdir /usr/ports/distfiles cp /cdrom/packages/All/squid-x.y.z.tgz /usr/ports/distfiles/ # onde pkg_add -v /usr/ports/distfiles/squid-x.y.z.tgz

x.y.z a verso.

InstalandoemumOpenBSD

Baixeosquidjcompiladoem http://www.openbsd.org/3.2_packages/i386/squid-2.5.PRE13.tgz-long.html

Edepois: # pkg_add squid.x.y.z.tgz

InstalandoemumWindows2000

Baixeoarquivosetup.exedositedoCygwin (http://www.cygwin.com/setup.exe)eselecioneopacotedosquid duranteainstalao.Procedacomofariaqualquerinstalaoem plataformaMicrosoft.

13 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

Baixandoocdigo-fonte

Casoqueiraocontroledebanda,tpicoavanadoabordadoaqui, instaleosquidpelofonte,deacordocomasinstrues.

Nadatadecriaodessedocumento,aversomaisrecente(estvel)do squideraa2.5STABLE1.

Verifiqueaversomaisrecenteem http://www.squid-cache.org/Versions/v2/. # groupadd squid # useradd -g squid -s /dev/null squid >/dev/null 2>&1 # wget http://www.squid-cache.org/Versions/v2/2.5/squid-2.5.STABLE1-src.tar.gz # tar zxvf squid-2.5.STABLE1-src.tar.gz # cd squid-2.5.STABLE1 # ./configure --enable-delay-pools --enable-cache-digests\ --enable-poll --disable-ident-lookups --enable-truncate \ --enable-removal-policies --enable-arp-acl # make all # make install # cd auth_modules/NCSA # make # make install

Limpandoosquid.conf

Oarquivodeconfiguraodosquidosquid.conf,normalmenteelese encontraem/etc/squid.confouem/usr/local/squid/etc/squid.conf. Casonoencontreoseuemnenhumdesseslugares,procure-ocom: # locate squid.conf ou # find squid.conf

Podeparecerftil,masumalimpezainicialnoarquivosquid.confpode serbemtil.Oarquivodeconfiguraooriginaltem,emmdia,2000 linhas. # cp squid.conf squid.conf.original # egrep -v "^#|^$" squid.conf.original > squid.conf

Configuraesbsicas-ACLs

Comocomentadomaistarde,todaaestruturadoSquidbaseadaem listasdeacessos.Vamosentraremdetalhesmaisparafrente.Porhora vamoscriarumalistadeacessobsicaparanossosusurios.

Vamossuporquenossaredeinternaseja192.168.5.0/24.Criea seguintelinhanosquid.conf,naseodeACLs(TAG:acl): acl rede_interna src 192.168.5.0/24 Easeguintelinhanaseodeacesso(TAG:http_access) http_access allow rede_interna

14 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

Referncias

http://www.squid-cache.org/Doc/

http://www.serassio.it/SquidNT.htm

TransparentProxy

Esserecursomuitotilparaevitarqueseususurios"burlem"o proxyremovendoasconfiguraesdobrowser.Elesseroobrigadosa passarpeloproxy,mesmoqueasmquinasnoestejamconfiguradaspara tal.Extremamenterecomendado,principalmenteemcasosdebloqueiode sitesoulimitaodebanda.

Experinciaspessoaiscomprovamqueusurioscomumpoucomaisde conhecimentosiroremoveraconfiguraodeproxyassimqueo administradorsairdasala,sejaporignornciadasfuncionalidades, sejapormedodeserauditadoousimplesmentepormconduta.

ParaserpossvelousodeproxytransparentecomoSquid,ofirewall deveserconfiguradoadequadamente.Seoseufirewallnoestlistado abaixo,procurenadocumentaodomesmoqualasintaxeequivalente.

Algumaspessoasdesejamtrabalharaomesmotempocomautenticaoe proxytransparente.Issopossveldeserfeitocomumainterao entreofirewalleumcgi,oualgodognero. Apesardenoserdoescopodohowtoabrangerregrasdefirewall especficaseprogramao,umaboaolhadanogoogleeumpoucode pesquisadeveresolveroproblema.

Comofuncionaoproxytransparente

ConfigurandooSquid

Vamosinserirasseguinteslinhas: httpd_accel_host virtual httpd_accel_port 80 httpd_accel_with_proxy on httpd_accel_uses_host_header on

Configurandooiptables

15 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

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

ConfigurandooPF(OpenBSD)

Adicioneaseguintelinhaaoseu/etc/nat.conf(levandoem consideraoquesuainterfaceinternasejafxp1) rdr on fxp1 from any to any port 80 -> 127.0.0.1 port 3128

ConfigurandooIPFilter(FreeBSD)
Adicioneasseguinteslinhasaoseu/etc/rc.conf ipfilter_enable="YES" ipnat_enable="YES" ipmon_enable="YES" ipfs_enable="YES"

Adicioneasseguinteslinhasaoseu/etc/ipnat.rules(levandoem consideraoqueorl0suainterfaceinterna) rdr rl0 0/0 port 80 -> 127.0.0.1 port 3128 tcp

Referncias

http://ldp.conectiva.com.br/HOWTO/mini/TransparentProxy.html

BloqueandoSitesindesejados

ApartirdeagoravamoscomearatrabalharcomACLs(AccessControl Lists).OconceitodeACLmuitotil,pornospermitirtrabalharcom nveisdeacessobaseadosemdiversasinformaes. NoincomumqueemumainstalaodeSquid,adiretoriapossa acessarqualquersite,agerncianopossaacessardeterminadossites eos"pees"tenhamacessoapenasaositedaempresaedeparceiros. GraasaousodeACLseumpoucodeimaginaoesuor,podemosfazer todasessasrestries.

Todasasconfiguraesdeusurios,grupos,horrioseSITESso configuradasemACLs,

Vamoscomearcriando2ACLsqueirofazerobloqueiodossites indesejados.AordememqueasACLsaparecemmuitoimportante,por issoaACLquebloqueiaossitesdeveseraprimeiraaaparecer.

Procurenoseusquid.confondecomeamaserdescritasasACLs. GeralmenteaprimeiraACLaaparecer:

16 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

acl all src 0.0.0.0/0.0.0.0

Criandoosarquivosnecessrios

Vamosfazeroseguinte: # mkdir /etc/squid/bloqueados

ou # mkdir /usr/local/squid/etc/bloqueados # touch /etc/squid/bloqueados/block.txt

ou # touch /usr/local/squid/etc/bloqueados/block.txt # touch /etc/squid/bloqueados/unblock.txt

ou # touch /usr/local/squid/etc/bloqueados/unblock.txt

Oarquivoblock.txtircontertodosossitesepalavrasquevoc desejabloqueareounblock.txttodasasexcees."Comoassim?",voc pergunta.

Vamossuporquevoctenhabloqueadoapalavrasexo.Entovocno poderentraremwww.sexo.com.br,mastambmnopoderentrarem www.sexoesaude.com.br.Ora,masessesegundositeinofensivo, portantonodeveriaserbloqueado.Bastacoloc-lonounblock.txt.

Editandoosquid.conf

Vamosaosquid.conf

Insiraaslinhasabaixologoantesdeaclallsrc0.0.0.0/0.0.0.0: acl blockedsites url_regex -i "/etc/squid/bloqueados/block.txt" acl unblockedsites url_regex -i "/etc/squid/bloqueados/unblock.txt"

ou acl blockedsites url_regex -i "/usr/local/squid/etc/bloqueados/block.txt" acl unblockedsites url_regex -i "/usr/local/squid/etc/bloqueados/unblock.txt"

Agoraprocurenoseusquid.confalinhahttp_accessdenyallecoloque antesdela: http_access deny blockedsites !unblockedsites

DICA:O"!"Significasemprenegaodealgumacoisa.

Referncias

17 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

http://members.lycos.co.uk/njadmin/

http://web.onda.com.br/orso/

BloqueiodeBanners

Bannerumacoisachata!Quemeperdoemosanunciantes,maseuno suportobannernempop-up.Masopiordetudoqueelasconsomem bandaequasenuncaajudamoSquid,poisestoemconstantemudana, impedindoocaching.Comasoluomostradaaqui,todososbanners serosubstitudosporumaimagempr-definida,podendoinclusiveser personalizada.Muitolegalemempresasouprovedoresdeacessoem conjuntocomoproxytransparente.

BaixandoeinstalandooBannerFilter

BaixeoBannerFilterdoseusiteoficial (http://phroggy.com/files/unix/bannerfilter-1.21.tar.gz). # tar zxvf bannerfilter-1.21.tar.gz # cd bannerfilter-1.21

Movaocontedododiretriowwwparaalgumlugaracessvelemseuweb server.EssesarquivosPRECISAMestaracessveisaosquidviaHTTP. importanteressaltarqueosistemaperdeosentidoseoservidorhttp noforamesmamquinaqueoSquidest.

Movatodoorestopara/etc/squid/bannerfilterou /usr/local/squid/etc/bannerfilter

Editeoredirector.pl.Sevocnotemoperlnolocalpadro (/usr/bin/perl),mudeaprimeiralinha(oucrieumsymlink).

Movaobannerfilter.confparao/etc Mudeasvariveis$DATAe$WWWcomoindicadonoscomentrios.

Opcionalmente,mudetambm$LOGe$BANNERGIFcomoindicado.

Testeoredirector.pldigitandoalgumacoisaevejaserecebeessa coisadevolta..PressioneCrtl-Cparaparar.Nopuleessepasso, poisnelevocpoderdescobrirerros.

Rodeoscriptupdate.shparaatualizaraslistasdebanners. interessantefazerissoconstantemente.

Editandoosquid.conf

Procurepelaseoquefalasobreredirect(TAG:redirect_program)e insiraalinha: redirect_program /etc/squid/bannerfilter/redirector.pl

18 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

ou redirect_program /usr/local/etc/bannerfilter/redirector.pl

DICA:possveltambmeditarasimagens,deformaatorna-las personalizadasparasuaempresa.

Osbannersiroaparecerdessaformaapstudoinstalado

Referncias

http://phroggy.com/bannerfilter/

Protegendousurioscomantivrus

Essasoluodeveserusadaapenasempequenasinstalaes,comoum adicionaldesegurana.Seasuaredelocaltemantivrusnasestaes enoservidordedomnio,arquivos,etc,eunorecomendoessa feature.Almdeexigirmuitodamquina,aindanoesttotalmente estvel.AsoluopropostaaquiutilizaroViralator.

Pr-requisitos

SernecessrioqueoSquidredirecionedeterminadosdownloadseURLs paraoViralator,deformaqueprecisamosdoSquirmInstaladona mquina.Baixe-oemhttp://squirm.foote.com.au/squirm-1.0betaB.tar.gz # # # # # # # tar zxvf squirm-1.0betaB.tar.gz cd squirm-1.0betaB cd regex ./configure make clean make cp -p regex.o regex.h

Anoteoresultadodessecomando: # id `grep cache_effective_user /etc/squid.conf |cut -d " " -f3` # cd ..

EditeoarquivoMakefileesubstituaasapariesadequadasde"root" pelousurioegrupoanotadosacima. # make # make install

AlmdoSquirm,necessrioqueoApacheeoapache-suexecestejam instalados.ProcureumadocumentaosobreoApacheparamaiores detalhes.

E,comonopoderiadeixardeser,umantivrusfaz-senecessrio.

19 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

AtualmenteoViralatortemsuporte:

AntiVir

AVP

RAV

Inoculate

SophosSweep

McAfee

Trend

Viralator

Apsterosquirminstalado,adicioneasseguinteslinhasnoseu arquivosquirm.paterns: abortregexi (^http://[192.168.0.1].*) abortregexi (^http://[cache1.empresa.com.br].*) regexi (^.*\.zip$) http://[192.168.0.1]/cgi-bin/viralator.cgi?url=|\1 regexi (^.*\.doc$) http://[192.168.0.1]/cgi-bin/viralator.cgi?url=|\1 regexi (^.*\.exe$) http://[192.168.0.1]/cgi-bin/viralator.cgi?url=|\1

Onde:192.168.0.1oIPdoseuproxyecache1.empresa.com.bro FQDN2domesmo.

Repitaalinhaquefazrefernciaaextensoparatodosostiposde arquivosquequiserescanearporvrus.

Editeagoraoarquivosquid.confadicionandoumredirecionamento: redirect_program /usr/squid/bin/squirm redirect_children 10

Crieumusurioegrupoparausodosuexeceadicione-osaoseu arquivodeconfiguraodoapache(normalmentehttpd.conf) < VirtualHost 192.168.0.1> ServerAdmin webmaster@empresa.com.br DocumentRoot /var/www/ ServerName cache1.empresa.com.br ErrorLog logs/error_log TransferLog logs/access_log ScriptAlias /cgi-bin/ /usr/local/viralator/cgi-bin/ User viralator Group viralator </VirtualHost>

Onde:/usr/local/viralator/cgi-bin/deveseroseudiretriodecgise viralatoronomedousurioegrupoquevoccriou.

Crieumdiretriochamadodownloadsacessvelaoapache-Algocomo /var/www/downloadsnoDebian-mudesuaspermissespara755.

BaixeoViralatorem http://viralator.loddington.com/downloads/viralator-09pre2.zipe executeoscomandos:

20 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

# # # #

unzip viralator-09pre2.zip cp viralator-09pre2.cgi /usr/local/viralator/cgi-bin/viralator.cgi chown viralator.viralator -R /usr/local/viralator/cgi-bin/ chmod 755 /usr/local/viralator/cgi-bin/viralator.cgi

Editeoarquivo/usr/local/viralator/cgi-bin/viralator.cgieverifique setodososcaminhosdeprogramasestocorretos.

Referncias

http://viralator.loddington.com/ http://squirm.foote.com.au/

Autenticandousurios

umrecursobeminteressanteparacontrolepessoaldeusurios.Isso permitequevoccrieACLsindividuaisegereLOGsdequalidadebem superior.

Existemdiversosmtodosdeautenticao,sendointeressanteaveriguar exatamenteoquevocirprecisar.Namaioriadoscasos,oncsa_auth resolveoproblema.

ncsa_auth
Oncsa_authaalternativamaissimples.Eleestdisponveljunto comosquidepodeserimplementadorapidamente.asoluoideal parapequenasemdiainstalaeseredescomarquiteturadegrupode trabalho.

Editandoosquid.conf

Procurepelaseoquefalasobreautenticao(TAG: authenticate_program)einsiraaslinhas: auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/ auth_param basic children 5 auth_param basic realm Digite seu Login

Criandoumarquivodesenhas

Oarquivo/etc/squid/passwdnoexisteporpadro.Paracria-lovamos fazer: # touch /etc/squid/passwd

Adicionandousurios

21 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

Paraadicionarnovosusuriosbastafazer: # htpasswd /etc/squid/passwd USUARIO

econfirmarasenhaduasvezes.

Nota:Dependendodasuadistribuio,oncsa_authpodeestaremvrios lugares,como/usr/bin,/usr/sbineassimpordiante!Verifiqueonde estasuaecoloqueaslinhasacimadeacordo!

Quantoaoauthenticate_children5,osuficientesesuaredeno muitogrande.Mudeovalordeacordocomsuasnecessidades.

AgoravamoseditarnovamenteaACLdenossaredeinterna(aquelada seo2.3) acl rede_interna src 192.168.5.0/24 acl rede_interna proxy_auth REQUIRED

smb_auth

Osmb_authumatimaopoparaquemtemumaredeumpoucomaiorou trabalhacomambientesWindowsClient/Server.Devidoasuaintegrao comoPDC,facilitamuitoavidadoadministrador.

Nota:necessrioqueosambaestejainstaladonamquinadoSquid parautilizaressaopo.Elenoprecisaestarconfiguradoou ativado.

Instalandoosmb_auth
Baixeosmb_authem http://www.hacom.nl/~richard/software/smb_auth-0.05.tar.gz # tar zxvf smb_auth-0.05.tar.gz # cd smb_auth-0.05

EditeoarquivoMakefileetenhacertezadequeosparmetros SAMBAPREFIXeINSTALLBINestocorretos. # make # make install

ConfigurandooPDC

Paracontrolaroacessoporusuriosegrupos,osmb_authloarquivo \netlogon\proxyauthemumdoscontroladoresdedomniopreviamente informado.Sealeituradessearquivoretornaum"allow",entoo acessoliberado.Casocontrrio,negado.

CrieumarquivochamadoproxyauthnocompartilhamentoNETLOGONdeseu PDC(dprefernciaaoprimrio).Essearquivodeveconterunicamente apalavra"allow"(semasaspas)edpermissodeleituraparaos gruposeusuriosquedesejapermitiracesso.

22 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

Configurandosquid.conf

Adicioneasseguinteslinhas: auth_param basic program /usr/local/bin/smb_auth -W DOMINIO -U 192.168.5.24 auth_param basic children 5 auth_param basic realm Digite seu Login

Onde:DOMINIOodomniodoPDCe192.168.5.24oIPdomesmo.

Referncias

http://squid.visolve.com/squid24s1/externals.htm#authenticate_program

http://web.onda.com.br/orso/ncsaplus.html

http://www.hacom.nl/%7Erichard/software/smb_auth.html

http://www.linux.trix.net/dicas_squid_nt.htm

ControledeBanda

Esseumfeaturemuitotilparaquemtemumabandaestreita,ou simplesmentetemprioridadesparasuabanda.

Orecursodosquidqueusamosaquichamadodedelaypools. necessrioqueosquidtenhasidocompiladocomessaopoativa, conformeinstruesdaseo2.

Editandoosquid.conf

Vamosadicionaralgumaslinhas.Aprimeiravaievitarquehaja restriodebandainternamente,porissonodeixedecoloc-la. acl controle1 url_regex -i 192.168.5 acl controle2 url_regex -i ftp .exe .mp3 .tar.gz .gz .zip .rar .avi .mpeg .mpg .qt .ram .rm .iso .raw .wav delay_pools 2 delay_class 1 2 delay_parameters 1 -1/-1 -1/-1 delay_access 1 allow controle1 delay_class 2 2 delay_access 2 allow rede_interna delay_access 2 allow controle2

Referncias

23 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

http://www.tldp.org/HOWTO/Bandwidth-Limiting-HOWTO/index.html

http://www.linuxit.com.br/modules.php?name=Sections&op=viewarticle&artid=232

BrincandocomACLs

VamostentaragoraexplorarmaisafundoaspossibilidadesqueasACLs nosfornecem.bomlembrarquevriasACLspodemsercombinadas, sendoissoumgrandegeradordeproblemas.Faasuasregrascommuita ateno.

UtilizandoIPseredes

Issooarroz-com-feijodasACLs.LimitarporIPe/ourede.Vamos porexemplosparasimplificar: acl acl acl acl ip_do_diretor src 192.168.5.5 ips_da_diretoria src 192.168.5.5 192.168.5.6 192.168.5.7 168.5.8 rede_do_rh src 192.168.6.0/24 rede_do_cpd src 192.168.7.0/255.255.255.0

UsandoACLsexternas

O recurso de ACL externa muito til para um tratamento melhorado de algum recurso que no compreendido por ACLs normais.

Uma ACL externa pode ser escrita em qualquer linguagem. Ela deve sempre retornar OK para o stdout caso a condio seja satisfeita,ouERRtambmparaostdoutcasoelanosejasatisfeita.

Voumostraraquiumexemploondeadiretoriadeveacessarqualquercoisa,masosusuariosnormaissaosubmetidosacertas restries.Levoemconsideraoqueousuriojestautenticado. external_acl_type checa_diretoria %LOGIN /etc/squid/modulos/diretoria.sh acl diretoria external checa_diretoria

Arquivo/etc/squid/modulos/diretoria.sh(deveserexecutvel) #!/bin/bash while read linha do if [ `grep -i $linha /etc/squid/users/diretoria` ] then echo OK else echo ERR fi done Esse script verifica se o usurio autenticado pertence diretoria. Para que um usurio seja reconhecido como diretoria, seu usernamedeveestardentrodoarquivo/etc/squid/users/diretoria.

Trabalhandocomdomnios

24 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

EssetipodeACLtemqueserutilizadacomcuidado.Tentarbloquearo acessoachatemportaiscomessaopotambmpodeacarretarem acessonegadoasitesdenotciasoudeinteressegeral.Todosos sub-domniosehostsabaixododomnioprincipalsoafetadospela ACL. acl GEOCITIES dstdomain geocities.com

Restringindoporhorrio
acl expediente time MTWHF 9:00-18:00 acl final_de_semana time SA 8:00-13:00

Onde: Sigla
S M T W H F A

Dia
Domingo segunda-feira tera-feira quarta-feira quinta-feira sexta-feira sbado

ExpressoregularnaURL

Aquipodemosfazermilharesdecoisas,desdequeconheamosmuitobem expressesregulares.Parasabermaissobreelas,procureolivro "ExpressesRegulares-GuiadeConsultaRpida"oupesquisena internet. acl jogos url_regex jogos

MACAddress

Parautilizaressaopo,oSquiddevesercompiladocomosparmetros "--enable-arp-acl",comofeitoemnossainstalaoviasource. acl administrador arp XX:XX:XX:XX:XX:XX Onde:XX:XX:XX:XX:XX:XXoMACAddressdaplacaderededo administrador.

Limitandoonmerodeconexesporusurio

Sequiserlimitaronmerodesessesquecadausurioabredeuma nicavez,podemosutilizarorecursosdemximodeconexes. acl CONEXOES maxconn 10 http_access deny CONEXOES rede_interna

25 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

ImpedindoouLimitandootamanhodeuploads
Diversasempresastemanecessidadedeimpedirqueseususuriosdemuploaddearquivosparawebmails,discosvirtuaisou algumoutrotipoderepositrionainternet. O grande problema que o mtodo utilizado para fazer estes uploads o POST, tambm utilizado para preenchimento de formulrios,pesquisas,loginsesenhas,etc.Issoimpedeobloqueiototaldomtodo. Comofazerento?

A opo mais lgica seria limitar o tamanho de um POST para um nmero suficientemente grande para permitir seu funcionamento normal e suficientemente pequeno para impedir o upload de arquivos. Para isso usamos a tag request_body_max_size,abordadaumpoucomaisabaixo.

No entanto essa tag tem uma falha, por no ser compatvel com ACLs, ela limitar todos os usurios no que for determinado, situaonormalmenteincmoda.

Segue um script que encontrei na internet (referncia abaixo), que nos permite criar ACLs baseadas nesse parmetro. Vamos cham-lode/etc/squid/modulos/size.sh #!/bin/sh while read line; do set -- $line length="$1" limit="$2" if [ "$length" -le "$2" ]; then echo OK else echo ERR fi done

DepoisbastacriarumaACLassim: external_acl_type request_body %{Content-Length} /etc/squid/modulos/size.sh acl request_max_10KB request_body 10240

Comissolimitamosotamanhodouploadpara10KB,oquedevesersuficienteparapreenchimentodeumformulrio,maspouco paraumupload.

Referncias

http://squid.visolve.com/squid24s1/access_controls.htm

http://www.secforum.com.br/article.php?sid=1259

http://www.mail-archive.com/squid-users@squid-cache.org/msg16568.html

Criandoumarquivodeconfiguraoautomtica

Parafacilitaravidadosusurios(edoadministrator),podemoscriarumarquivodeconfiguraoautomticaquesercolocado nos browsers dos clientes. Dessa forma todos tero seu proxy reconfigurado dinamicamente em caso de mudanas, sem a necessidadedeintervenoemcadamquina.

Essearquivodeveseracessvelviawebe,viaderegra,chama-seproxy.pac.

26 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

Vamo supor que seu proxy esteja rodando no servidor 192.168.5.1 na porta 3128 e voc no deseje que ele seja utilizado nas pginasdoseudomnio(empresa.com.br): function FindProxyForURL(url, host) { if (isPlainHostName(host) || dnsDomainIs(host, ".empresa.com.br")) return "DIRECT"; else return "PROXY 192.168.5.1:3128; DIRECT"; }

Referncias

http://wp.netscape.com/eng/mozilla/2.0/relnotes/demo/proxy-live.html

Gerandorelatrios

Muitasempresaseinstituiesexigemdosadministradoresrelatrios dousodainternet.Issopodeserfacilmenteconseguidocomalgumas ferramentas.

SARG

DesenvolvidopelobrasileiroPedroOrso,eletransformaologdosquid emumrelatriohtmllegvelecompleto.

Instalao

# # # # # #

wget http://web.onda.com.br/orso/sarg-1.4.tar.gz tar zxvf sarg-1.4.tar.gz cd sarg-1.4/ ./configure make make install

Configurao

Porpadroosarginstaladoem/usr/local/sarg.Nessediretrio encontramosoarquivosarg.confentreasmuitasopes,recomendoas seguintes:

languagePortuguese access_log/var/log/squid/access.log title"Relatriodeusodainternet" temporary_dir/tmp output_dir/var/www/squid-reports resolve_ipno

27 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

user_ipyes topuser_sort_fieldBYTESreverse topsites_num100 max_elapsed28800000

Sendoimportantedestacar: Comandos
access_log output_dir resolve_ip user_ip topsites_num

Descrio
Indicaoarquivodelogdosquid Indicaondesergeradoohtml.recomendvelquesejaemumlocalacessvelpeloseuhttpserver EvitaqueosargtentefazerresoluodeDNS Sevocnoestiverutilizandoautenticaoporusurio,coloque"no".Seestiver,coloque"yes" QuantidadedesitesquevocquervercomoosTOPdeacessos

Gerandoosrelatrios

Depoisdeconfigurarosarg.conf,bastagerarosrelatrioscomo comando # sarg

ExemploderelatriodoSARG

Dica

Os relatrios do Sarg ocupam um imenso espao em disco, principalmente pelo falto de no ter um rotate nem comprimir os HTMLS.Podemoscontornarissocolocandoemnossacrontable: find /var/www/squid-reports/ -name "*.html" -type f -mtime +30 -exec bzip2 {} \; find /var/www/squid-reports/ -name "*.bzip2" -type f -mtime +180 -exec rm -rf {} \;

Calamaris

OCalamarisumtradicionalprogramadeanlisedelogegeraode reportsparaosquid.Seufuncionamentosimplesenoexige instalao.Apenasnecessrioteroperlinstaladonamquina.

Baixandoerodando
Diretoereto: # # # # wget http://cord.de/tools/squid/calamaris/calamaris-2.57.tar.gz tar zxvf calamaris-2.57.tar.gz cp calamaris /usr/bin cat /var/log/squid/access.log | calamaris -F html

28 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

ExemploderelatriodoCalamaris

SquidGraph

AoestiloMRTG,esseanalisadoridealparausoemgrandescaches, ondeoimportantenosaberquaisusuriosacessaramquesite,quem teveacessonegadoeetc.Oobjetivoaquianalisarvolumedetrfego eeficinciaemgrandeescala.

Instalao

EsseprogramaexigeapresenadomduloperlGD (http://stein.cshl.org/WWW/software/GD/).Instale-oantesde comearospassosabaixo.

Satisfeitasasdependncias,baixeoSquidGraphde http://squid-graph.securlogic.com/files/stable/squid-graph-3.1.tar.gz efaaa"operaopadro": # wget http://squid-graph.securlogic.com/files/stable/squid-graph-3.1.tar.gz # tar zxvf squid-graph-3.1.tar.gz

edepois: # mv squid-graph-3.1 /usr/local/squid-graph # chmod +x /usr/local/squid-graph/bin/*

Comoumsistemafeitoemperl,nonecessriocompilar.

Criandoosgrficos

Paragerarumgrficopadro: # /usr/local/squid-graph/bin/squid-graph --output-dir=/destino/ \ < /var/log/squid/access.log

Paragerarumgrficoacumulativo: # /usr/local/squid-graph/bin/squid-graph --cumulative \ --output-dir=/destino/ < /var/log/squid/access.log

ParagerarumgrficosomentedeTCP: # /usr/local/squid-graph/bin/squid-graph --tcp-only \ --output-dir=/destino/ < /var/log/squid/access.log

ParagerarumgrficosomentedeUDP: # /usr/local/squid-graph/bin/squid-graph --udp-only \ --output-dir=/destino/ /var/log/squid/access.log

29 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

ExemploderelatriodoSquidGraph

Referncias

Sarg'sHomePage

TrabalhandocomHierarquias

Cachehierrquicoaextensolgicadoconceitodecaching.Umgrupo decachespodemsebeneficiardocompartilhamentodeseusdadosentre sisobremaneira.Issofacilmenteexplicvelquandopensamosem termosregionais.

Exemplo:Suaempresaestestabelecidaemumprdiojuntocomdiversas outras.EsseprdioatendidopelasempresasdetelecomA,BeC. Nessecaso,quandoumusuriodaempresa1desejaacessarumsite,ele vaiatseuproxy,quebuscaositeeoarmazena,agilizandoa consultadetodososoutrosusuriosdessamesmaempresa.Isso acontecetambmnaempresa2,3eetc.

Ficafcildevisualizarquesetodasasempresasinterligassem localmenteseusproxies,todasteriamganho.

Narealidade,essasinergiaentrepequenasempresasnoexiste.Mas quandofalamosdegrandesempresasegrandesbackbones,cada1MB economizadocomcaching1MBganhoemoutrosservios.

Almdetrabalharcomoconceitodervore,ondeexisteumcache principaleoutrosligadosaele,oSquidtrabalhatambmcomum conceitoparecidocomgrupodetrabalho,ondetodososservidoresse consultammutuamente.

TodaacomunicaoentreoscachesfeitaviaICP

EntendendooICP
OICPfoidesenvolvidocomopartefundamentaldoprojetoHarvest(Pai doSquid).Seuobjetivoproverummtodorpidoeeficientede obter-secomunicaoentreservidorescache.

OICPpermitequeumcachepergunteaoutroseeletemumacpia vlidadeumdeterminadoobjeto,aumentandoapossibilidadede encontraraqueleobjetojcacheado.Adicionalmente,oICPpermiteque requisiestrafeguementreservidoresfilhosemumaestruturade rvore.

30 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

Almdocontroledecache,oICPtambmgeraindicaesdoestadoda rede.OnorecebimentodeumarespostaICPnormalmenteindicaquea rotaestcongestionadaouqueooutrohostestmorto.Almdisso,a ordemdechegadadeumarespostaICPpodeindicarquaishostsesto comumadistncialgicamenoroucommenoscarga.

AsmensagensICPsogeralmentebempequenas,comcercade66bytes. Emumaestruturahierrquica,normalmentetem-semaistrocasde mensagensICPdoqueHTTP.

Fazendoroteamentopordomnios
Essafeature,apesardesimples,podemelhorarmuitoodesempenhode grandesinstalaes.

Vamosimaginarumcasoemqueexistam1cacheprincipalligadoa3 outroscaches.Vamosdizertambmquetemosumaimensamassade usuriosfazendorequisiesa3grandesportaiseaomundoemgeral.

Aconfiguraoseriaalgoassim: cache_host_domain cache_host_domain cache_host_domain cache_host_domain cache1 cache2 cache3 cache4 portalxpto.com portalxing.com portalling.com !portalxing.com ! portalxpto.com !portalling.com

Sendoqueocache4seroresponsvelportodososdomniosqueno sejamos3anteriores.

Roteandoporprotocolo

Podemostambmdefinirqualserarotatomadabaseando-seem protocolo. acl FTP proto FTP acl HTTP proto http cache_host_acl cache1 FTP cache_host_acl cache2 HTTP

Paiefilho

OCasoexistaumnicoservidorpaiediversosfilhos,aconfigurao ser: cache_host cache1 parent 3128 3130 default

Paisefilho

Emumasituaoideal,existemdiversosservidores.Aescolhasobre qualutilizarserbaseadanomtodoroundrobin. cache_host cache1 parent 3128 3130 round-robin no-query cache_host cache2 parent 3128 3130 round-robin no-query cache_host cache3 parent 3128 3130 round-robin no-query

31 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

Referncias

http://www.squid-cache.org/Doc/Hierarchy-Tutorial/tutorial.html

UtilizandooSquidcomoproxyreverso

Umafeaturemuitotil,masporvezespoucoexploradadoSquidsua capacidadedetrabalharcomproxyreverso.Issosignifcaque,almde armazenarobjetosremotos,criandotodaumasriedevantagensj discutidasaqui,eletambmpodearmazenarobjetosdeumservidorweb interno,aliviandoseuusoeprovendomaiorsegurana.AquioSquid literalmentetrabalhacomosefosseumservidorweb.

Essafeaturesemostramuitotilquandotemosumwebservercomload alto,exigindoaampliaodamquinaoucriaodeumcluster.Tambm tilquandooservidorwebutilizadopelaempresaconhecidamente inseguroesemostracomoumpontofraconaempresa.Omesmoser "protegido"emalgunsaspectospelosSquid.

Nomomentodedesenvolvimentodapginajdeve-seplanejarumafutura implementaodeSquid,cuidandoparanuncadesenvolvercontedo unfriendlyparaowebcaching.Tantocontedoestticoquandodinmico podeserutilizado.Ocontedodinmiconoserarmazenado,enquanto oestticoecoisascomoimagensficaronoSquid,aliviandootrfego nowebserverparaocontedodinmicotermaiorfluidez.

Configuraodeproxyreverso

Aconfiguraosimples.Sigaospassosabaixo: http_port 80 httpd_accel_host 192.168.0.51 httpd_accel_port 80 httpd_accel_single_host on httpd_accel_uses_host_header off

Onde: Parametro
http_port80 httpd_accel_host192.168.0.51 httpd_accel_port80 httpd_accel_single_hoston httpd_accel_uses_host_headeroff

Objetivo
NmerodaportaondeoSquidirescutar IPdoservidorWebinterno Portaondeowebserverestescutando Ativaosquidparasomenteumwebserveratrs importantemanteressaopoOFF,vistoqueelaalteraosheaders

Referncias

32 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

http://squid.visolve.com/white_papers/reverseproxy.htm

OtimizandooSquid
VamoslistaralgumasdicasparatornarodesempenhodeseuSquid. Algumasdelassogenricas,comoaumentaramemriaalocadapelo Squid,outrassoespecficas,comoutilizarumdeterminadosistemade arquivosnoLinux.

EspecificandooHardware

Essaetapaimportantenoinciodoprojeto.Oidealtraarum perfildecomoecomoserem1anoovolumedeusodessehardware.

Procuresempreutilizarhardwarequepermitacrescimento, especialmenteemmemriaearmazenamento.Eviteinstalarservidoresj comtodososbancosdememriausadosounomximo.

PequenasinstalaesdispensamHD(disco)SCSI,umaopoquejfica inviveleminstalaesmaiores.

AoutilizarRAID,prefiraonvel0doqueoutros,vistoqueomesmo feitoparadesempenho.

Maisabaixovamosestudaralgunscasosdeempresasdetamanhose necessidadesdiferentes,comtodooperfildehardwareutilizado.

interessantetambmpossuirumHDseparadoparaosdadoseparaos logsdoSquid.Seissonoforpossvel,aomenosumapartio separadaextremamenterecomendado.Comonormalmentetantoosdados quantooslogsficaabaixododiretrio/var,esseopontode montagemparaessapartio.

Sistemasdearquivo

Algunssistemasoperacionaissocapazesdetrabalharcomdiversos sistemasdearquivos,tendocadaumsuascaractersticasprprias,ora prezandoporestabilidade,orapordesempenho.

Linux-reiserfsouxfs Windows2000-NTFS

DNS

33 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

OdesempenhodasresoluesDNStambmumpontocrtico.Emuma situaoideal,deveriaexistirumcachedeDNSnamesmamquinaouem umamquinamuitoprxima,paradiminuiraomximootempode resoluodosnomes.

Mltiplasrotas

EminstalaescomoISPspodeservantagemdefinirsuasrotas manualmente.Jemempresasmdiasougrandesqueutilizamlinksde baixocusto,comoADSL,obalanceamentodecarganoslinksumatima opo.Procurejuntodocumentaodeseusistemaoperacionalcomo fazerisso.

Editandoosquid.conf

Podemostambmdefiniralgunsparmetrosnaconfigurao,deformaa obteromximodosistema. cache_mem bytes

NessaopodizemosaoSquidquantamemriaelepodeconsumir.Emuma mquinaexclusivaparaocache,80%a90%damemriatotaldamquina deveserdefinidaaqui.

Porexemplo,emumamquinacom512MBdeRAM: cache_mem 410 MB

cache_swap_lowpercentage

Aquiseespecificaolimitemnimoparasubstituiodeumobjeto.A substituiocomeaquandooswapemdiscoestacimadolimite mnimo.

Definaalgocomo: cache_swap_low 95

cache_swap_highporcentagem

Justamenteoopostodaopoanterior.Aquisedefineolimitemximo. cache_swap_high 98

maximum_object_sizebytes

Adefiniodessapropriedadedeveseranalisadacomcritrio,visto quelimitamosaquiotamanhomximodeumobjetoemcache.Objetos maioresdoqueesselimitenososalvosemdisco. Paradefinircomoconfigurarotamanhomximonessaopo,deve-se levaremconsideraoqueumnmerograndeimplicaemmaioreconomia debandaeperdadeperformancenocachelocal,enquantoumnmero menornoajudamuitoemganhodebanda,masmelhoraavelocidadeem tempoderesposta.Recomenda-seautilizaodeumavalorentre4e16 MB. maximum_object_size 16384 KB

34 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

maximum_object_size_in_memorybytes

Objetosmaioresdoqueotamanhodefinidoaquinosomantidosem memria.Otamanhodevesergrandeosuficienteparaarmazenarobjetos muitopopulares,maspequenodemaisparaarmazenarinformaes desnecessrias. maximum_object_size_in_memory 20 KB

cache_dirTypeMaxobjsizeDirectory-NameMbytesLevel-1Level2

Configuramosnessaopootamanhomximodosobjetosdentrodo diretrio,onomedodiretrio,quantosMBarmazenareosnveise sub-nveis.

possvelterdiversosdiretriosdecach,masissosvaifazer sentidoseestiverememHDsseparadas.Casoapartioondeoseui Squidfazcachevenhaaencher,possvelcriarumdiretriodecache emoutrapartio,semcomissoobterganhosdeperformance significativos. cache_dir ufs /scsi2/cache 5000 16 256

Referncias
http://www.pop-pb.rnp.br/proxy/tsld033.htm

UtilidadesPblicas

Aquiestoalgunscomandosquepodemserteis.

Resetandoocachedosquid

Podeocorrerdosquidtravaralgumavez.Paratentarresolverisso, pareosquideexecute: # squid -z

Reiniciandoasconfiguraesdosquid

SevocmudoualgumaACL,atualizoualistadesitesouqualquercoisa queexijarefazerasregrasdosquidqueestrodando,utilize: # squid -k reconfigure

EntrandoemmodoDebug

35 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

VocpodemodificaroSquidparamodoDebugontheflyutilizandooseguintecomando: # squid -k debug

Oresultadodomododebugestarnoarquivocache.log,dentrododiretriodelogs.

ATENO:Aquantidadedelogsgeradaporessemodomuitograndeeircausarlentidonosistema.Nodeixeessaopo habilitadapordefault.

Squidsaindocomerro(SquidParent:childprocessexitedduetosignal)
Quandoocorreumerroqueimpedeaexecuoouprovocaamortedosquid,umavisoenviadoaoseulogassinalandoocdigo doerro. Compileiaquiumapequenatabelacomalgunserrosqueencontreieassoluespropostas. Nmero
6 9 11 25

Verifique
Quantidadedememriadisponvel,espaoemdisco,BadBlocksnoHD,problemasdeDNS Ofilesystemread-only Segmentationfault.OuvocecontrouumbugnoSquidouseusistema(libs)estcomproblema Vejasealgumlogtemmaisde2GB-access.log,cache.logoustore.log

Estudodecasos

Sempremaisfcilaprenderbaseadoemexperinciasprticasdoque apenasemteoria.Vamosutilizaralgunsexemplosreaisaquipara vislumbrarocenrioemquenossasinstalaesiroseencaixar.

Simples,eficienteemuitotil

Emalgumaslocalidadesaindanotem-seacessoabandalargacom facilidade.Aindamais:Existemempresasquenoqueremounopodem bancarocustodeumaconexopermanente.Ocenriodessecasoo seguinte:

EmpresaXYZ,doramodeprestaodeservios,encontra-selocalizada emumaregioafastada,ondenopodeseratendidapormeios convencionaisdeinternetrpida.Oscustosdeumaconexovia satliteestomuitoalmdoqueaempresaestdispostaapagar.Seus 5funcionriosnavegamnainterneteusame-mailsomenteviawebmail. Suamissoconectaressaempresacombaixocustoeeficincia.

Diagramadarede

36 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

Soluo: Adquirirum486DX4100oumaior(Qualquerhardwaremaiordoqueum Pentium166desperdcio)com16oumaisMBdeRAM,commodemeplaca derede,almdeumaHDembomestado.

InstalarumadistribuioreduzidadoLinux,comsuporteadiscagem sobdemandaeconfiguraroSquidpararestriodeacessoporhorrio, liberandooacessoainternetsomente1ou2vezespordia.

Justificativa:

Comumgastoemhardwarebempequeno,podemosconectartodaaempresa comumdesempenhobomlevando-seemcontaseumaconexodiscada.Alm disso,aempresagarantequeningumirficarconectadoodiainteiro atravsdasrestriesdehorriodeacessoimpostaspeloSquid.

Aspequenasdominam

Esseocasomaistpico.Umapequenaempresa,normalmentede prestaodeserviosoucomrciovarejista,desejaligarseu escritrioaorestodomundopelainternet.Socercade30usurios ligadosaumaredecliente/servidornaplataformaMicrosoft.No existeumaverbamuitograndeparaoprojeto,logoimportante economizaromximoemhardwareesoftwareparaganharmaisem servio.UmaconexoADSLjfoisolicitadaaempresadetelefoniae essecustonolevadoemcontanoprojeto.

Soluo:

1-AdicionarumasegundaplacaderedeaoservidorMicrosoft.

2-Adquirirumappliancegateway/firewall(baixocusto)deumadas diversasmarcasdisponveisnomercadoeligarsuainterfaceWANna conexoADSL.LigarsuainterfaceLANdiretamentenanovaplacade rededoservidor.

InstaleoSquidnoservidorMicrosoftdeacordocomasinstrues dadasanteriormenteeconfigure-oadequadamente.

Justificativa:

ApesardemuitaspessoasimediatamenteligaremoSquidaoLinux,no fazsentidonoterumprojetoaprovadoporcausadoscustosda aquisiodeumanovamquina.Nemtampoucojustifica-seaaquisio desistemascaroseineficientesparafazerdeformainadequadaoque oSquidfazcomperfeio.Oappliancedefirewalleuconsidero necessrioporqueconhecemosbemasucessitibilidadedaplataforma Microsoftaataques.Mesmoquefosseumaplataforma100%segura,ainda nodeveramosexporoservidordaredelocaldeformatoaberta internet.

Precoces

Poroutrolado,existemempresaspequenas,talvezatmicro,quetm umavisodetecnologiamaisfrentenomercado.Advocacias,

37 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

contabilidadeseempresasquetrabalhamcominformaessigilosasem geral,tmconscinciadanecessidadedeprotegerosdadosdeseus clientescomfirewallsseguros,sistemasdedetecodeintrusose etc.

Nossoclienteagoraumaadvocaciacom8usuriosextremamente preocupadacomosigilodeseusdadoseseguranadesuaconexocoma internet.Odesempenhodaconexonotoimportantequantoa auditoriadossitesacessadosouobloqueiodeeventuaisvrus.

Soluo:

1-Adquirirumservidornovoparainstalaodofirewall ProcederinstalandooLinuxdaformamaissegurapossvel,de prefernciaaplicandopatchesnokerneleinstalandosistemasde auditoriainterna.Umsistemadedetecodeintrusostambm essencial.Feitoisso,instalaroSquidcommtododeautenticao, viralatorerestriodecontedo.Lembre-sedequenessecaso,talvez sejainteressantebloquearacessotambmawebmails.

Instalartambmosargegerarrelatriosdiriosdeutilizao. Utilizar-sedafacilidadedelogrotateefazebackupdiriodoslogs.

Justificativa:

Apreocupaodaempresacomosigilodeseusdadosedeseusclientes valeoinvestimentoemumanovamquina,quepoderfornece-lhestodas asinformaesnecessriasparaauditoriaesoluodepossveis falhas.

Arrozcomfeijo

Esseocasomaiscomumdetodos.Creioque80%dasinstalaesque jfizseguemessepadro.Nocenriotemosumaouvriasempresas,de portedepequenoagrandeemumamesmalocalidadefsicaecomapenas umlinkligando-asinternet.Jpudemosparticipardeimplantaes ondeolinkvarioudeumframe-relayde64Kbpssegurandoumanica empresaatconexesdefibrapticade2Mbitsondevriasempresase usuriosdeumcondomnioouprdiofaziamusodessaparaacessoa internetemgeral.Oproxydevesertransparenteeonicoobjetivodo Squiddarganhodevelocidadeeeconomiadolink.

Soluo:

1-Adquirirumservidordequalidade,analisandoanecessidadede hardwaredainstalao

ConfigurarofirewallutilizadoeoSquidparatrabalhardeforma transparente.RecomendousodoLinuxoudoFreeBSD,deacordocomsua familiaridadecomessessistemas.Procurealterarparmetrosde memriaeespaoemdiscoutilizado.Talvezsejabomreavaliara instalaoaps1ou2meses,procurandoumasintoniafinade parmetros.

Justificativa:

Emumarelaodecustoebenefciodemdioelongoprazo,podemos perceberquemaisbaratoinstalarumservidordecachedoque aumentarumlink.Issoespecialmenteverdadequandofalamosde conexodequalidade.Comosempre,tantooLinuxcomooFreeBSDnos

38 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

fazemoservioporumvalorquaseirrisrio,comotambmofazemcom perfeio.

15.5Umaempresasadia

Comcertezavocumdiairsedepararcomumprojetodemaior profundidade,comcomplicadoresedetalheschatos.Ocasoapresentado aquideumaempresadareadasade,quedesejavaaomesmotempo terestabilidade,desempenho,auditoriaemonitoramentodeusurios, almdenveisdeacessoeumaexignciadopresidentequepodemos dizerser,nomnimo,pitoresca:Umlinksparaele,semlog,sem auditoriaesemperguntas.

Paranodizerquestemosproblemas,averbaerabemgordaparaa implantaoerazovelparaamanuteno.

Diagramadarede

Soluo:

1-Adquirir3linksADSLdevelocidades512Kbps(x2)e2Mbits(1x)

2-Adquirir2servidores(umdelescom5placasderede)

InstalarLinuxemambososservidores.1delesseroCacheeooutro ofirewall.

Nofirewalldeveserconfiguradobalanceamentodecargaentreos2 ADSLsde512Kbps(WAN1eWAN2),enquantoode2Mbitsdeveficar isolado(WAN3).Esseservidordeveterregrasrgidasdefirewallede roteamentointerno,deformaqueapenasoservidordecachetenha acessoasuainterfacederedeLAN1eapenasamquinadopresidente tenhaacessoLAN2.AmelhorsoluoseriarestrioporMACAddress nofirewall.

Nocache,deve-seinstalarumsistemadeautenticao,restriode horrio,restriodesitesegeraodelogs.

Justificativa:

Comofirewallbemconfiguradoecomroteamentoebalanceamentode cargadefinidos,impedimosquealgumusuriomaisespertotenteburlar ocache.Damesmaforapermitimosqueopresidenteacesseawebpor seulinkexclusivosemcacheesemlog.

Todososusurios,porsuavezsomuitobemcontroladosemtudooque fazem.Garante-seassimtodososrequisitosexigidospelocliente.

Matrizefilial

Nosorarososcasosdeempresasquedispedelinkcomainternet apenasemsuamatrizetodasassuasfiliaisinterligadasaelapor

39 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

frame-relay.Administradoresquenoconhecem(ounoconheciam)o conceitodecaching,perdemumaimensaquantidadedebandacom navegaodesuasfiliaisnainternet.Algunsadministradorestentam evitaresseproblemacolocandoumcachenamatriz.Oresultadomuito bom,economizandoalarguradebandanecessriaparaoutrosservios. Noentantoacomunicaoentreasfiliaisematrizcontinua prejudicadadevidonavegao.Comoresolverisso?

Soluo: 1-Adquirirumservidorparacadafilial

Emcadafilialserinstaladoumservidorcacheutilizandoomodo transparenteecomconfiguraesdehierarquia,ondetodasasfiliais serofilhasdaMatriz.

Justificativa:

Comessasoluo,comeamosdiminuindootrfegoatamatrizcomo cachelocal.Mesmoqueumdeterminadoobjetonoestejanamemriado servidordafilial,omesmoserverificadonoservidordamatriz, economizandoasadaatainternet.Comotodasasfiliaisesto passandopelomesmoservidorfinal,provavelmenteaeconomiaser muitograndeemtermosdebandaIP.

Cacheareo

Emdiversascidadesestosurgindoosprovedoreswireless. Impulsionadosporumatecnologiabarata,desimplesimplementaoe manuteno,vrioscondomniosresidenciaisecomerciaisesto recebendoseuslinksdessetipodeprovedor.ComotodoISPsabe,o grandecustoolinkcomainternet.Algunsmilharesdereaisso gastosmensalmenteparamanterumlinkapenasrpidoosuficientepara ademanda.Sendoassim,todoequalqueresforovlidoparaevitaro upgradedelink.

Diagramadarede

Nossocenrioaquiexatamenteesse.UmISPwirelesscomumbackbone centralediversospontosdepresena.

Soluo:

1-AdquirirumservidorparacadaPOP3

Todososcachesseroconfiguradosnomodotransparenteeomais otimizadospossvel.Umahierarquiasermontada,deprefernciano modohorizontal,ougrupo.Omodelorvorepodegerartrfego desnecessrioatacentral.

Todososservidoresdeumadeterminadanuvemdevemseconsultar mutuamente,deformaamanteromximodetrfegoemumanicaregio geogrfica.DentrodoISP,umoutroproxytransparente,muitobem configuradoirfazeraindaumaltimaverificaonamemriaantesde finalmentebuscarumapginanaweb.

40 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

Justificativa:

HaverumasignificativaeconomiadebandaIP,almdeconseqente diminuiodetrfegonosAPs4eumaeconomiamuitograndeparao provedor.Almdeforneceraosclientesumserviodeexcepcional qualidadeporumvalorbemvivel.

ISP

SimplesmentenoexistemISPsquenoqueiramdarumamelhorqualidade deservioparaseusclientesediminuirseuscustoscomlink.Nossa propostaderesolveressasduasquestesdeumanicavezutilizando osquid.Deve-seestudarcomcautelaoseucasoparaqueelese enquadraramelhorsoluo.

Nessecasonopretendodarumasoluocomonosanteriores.Anica exignciautilizarproxytransparente.Dependendodoportedoseu provedor,asoluopodesercolocadaemumnicoservidorcomumaHD IDEouentoemumclusterdealtadisponibilidadecomdiscosSCSIe controladoraRAID.

Pensesemprenocustoxbenefcio.Umpequenoprovedornopode comprarumservidordemilharesdereais,damesmaformaqueumgrande provedorquecolocaumamquinadebaixaqualidadecorreoriscode terdegradaodedesempenhoemrelaoaousosemcache.

Mantenhaemsuamentequeapartemaiscaradoprovedoremtermosde infra-estruturaabandaIP.Talvezumservidordedezenasde milharesdereaissejaextremamentebaratoparaumgrandeprovedor, levando-seemcontaaeconomiadebandagerada.

Emgrandesinstalaes,procureentraremcontatocomseufornecedor debandaIPevejaapossibilidadedeinterligarseuSquidcomumdos proxiesinternosdatelecom.Issonoirgerareconomiadebanda local,masdarumganhodevelocidadeequalidade.

Tentetambmconversarcomadministradoresdeoutrasgrandes instalaes,analisandoapossibilidadedeinterligarosISPsporum linkdedicado.IssosermaisbaratoqueumabandaIPe,almdas rotas,vocaindapodeconfigurarseusproxiesparautilizarACLpor domnio,comacriaodeumcacheexclusivoparaooutroISP.

Solar Energy Charity


HelpingRelievePovertyThough TheProvisionofSolarEnergy.Join Us!
www.Solar-Aid.org

PublicServiceAdsbyGoogle

ExaminandooSquid.conf

41 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

Apartirdeagora,vamosexplicarpassoapassoastagsde configuraodosquid.conf.

Lembre-sedequealteraesbemfeitasepensadaspodemtrazerum grandeganhoparaaperformancedeseucache,enquantoumerrode configuraopodeimpedirseuSquiddetrabalharouremovermuitasde suasfuncionalidades.

Altereasopescomcautelaecertifique-sedequerealmente necessitafazeramudanaqueplaneja.

TagsdaseoNetwork
Essaseoexplicatodososparmetrosdeendereosderedes relevantesparaumainstalaodoSquid.

http_port

OnmerodaportaondeoSquidirouvirasrequisiesdosclientes. Opadro3128.Essaoposerignoradaquandoosquidiniciado comaopo"-a"nalinhadecomando

Vocpodeespeficicarmltiplasportas,emqualquerumadastrs formas:somenteaporta,porhostnameeportaouIPeporta.Sevoc espeficiarumhostnameouendereoIP,entooSquidirouvirnaquele endereoespecificado.

http_portporta http_portip:porta

hostname:porta

1.2.3.4:porta

icp_port

Especificaonmerodaportanaqualosquidirenviarereceber solicitaesICPdeoutrosCacheServers.Paradesabilitar,basta colocarum0.Padro:3130

Comojditoanteriormente,oICPusandoparacomunicaoentre caches,provendoasfuncionalidadesnecessriasparatrocade informaessobreobjetosarmazenados.

icp_portporta

htcp_port

42 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

EspecificaonmerodaportaatravsdoqualoSquidirrecebere enviarrequisiesHTCPdeeparacachesvizinhos.Paradesabilitar, colocar0.Opadro4827.

SpecifytheportnumberthroughwhichSquidsendsandreceivesHTCP queriestoandfromneighborcaches.Todisable"0"isused(default= 4827).

htcp_portporta

mcast_groups

Especificaumalistadegruposmulticast,noqualseuservidorpode juntar-separareceberrequisiesICP.Padro=none

mcast_groupsEndereo_IP

tcp_outgoing_address

usadoparaconexesfeitasemservidoresremotos.Tambmusado paracomunicar-secomoutroscachesduranteousodeHTCPouCARP. Normalmentenodeve-seespecificartcp_outgoing_address.Amelhor opodeixarosistemaoperacionalescolherumendereo.Padro: 255.255.255.255 tcp_outgoing_addressEndereo_IP

udp_incoming_address

usadopelosocketICPparareceberpacotesdeoutroscaches.Padro: 0.0.0.0

udp_incoming_addressEndereo_IP

udp_outgoing_address

usadopelosocketICPparaenviarpacotesaoutroscaches.Padro: 255.255.255.255

udp_outgoing_addressEndereo_IP

TagsdaseoPeercacheserverseSquidhierarchy

AstagsdessaseosorelevantesquandorodandooSquidemumarede comhierarquia.

43 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

cache_peer

Especificaoutroscachesnahierarquia.Aopocache_peerdividida em5campos.OprimeirocampooIPounomedoservidordocacheque serpesquisado.Osegundoindicaotipoderelacionamento.No terceiroconfigura-seaportaHTTPdoservidordestino.Noquarto campoconfigura-seaportaderequisioICPe,finalmente,oquinto campopodeconterzerooualgumaspalavras-chave.

cache_peerhostnametipoporta_httpporta_icp[opes]

ParmetrosDescrio

HostnameHostname(FQDN)ouendereoIPdocacheaserpesquisado.

tipoAquiespecifica-seahierarquiadecachedefinida.Opo importanteparaescolhaderegrasdevizinhana.

Opes:

parent

sibling

multicast

porta_httpOnmerodaportaondeocacheouveasrequisieshttp.

porta_icpOnmerodaportaondeocacheouveasrequisieshttp.
Opes proxy-only Weight=n ttl=n no-query Descrio Especificaqueosobjetosdesseservidornodevemsersalvoslocalmente Especificaopesodeum"pai".Deveserumvalorinteiro,sendoqueopadro1.Servidorescomumpesomaior tempreferncia Especificaotempodevidadeummulticast Essa opo ser utilizando quando fazendo requisiesa cachesque no aceitamou no suportamICP.Caso utilizeessaopo,configureoquartocampocomo0 SeessecacheserusadocomoumaltimaopoeelenoestconfiguradoparatrabalharcomICP,entputilize essaopo.Elenoseropadro,massimaltimaopo,apesardoqueindicaonomedatag Defineumasriede"pais"quepodemserusadosbaseadosemalgortimoround-robin. Indicaqueoservidorindicadomembrodeumgrupodemulticast. Indica que,para uma resposta ICP_OP_MISS,nssomente iremospassar CLOSEST_PARENT_MISS e nunca FIRST_PARENT_MISS. Nofazrequisiestipodigestparaessevizinho. DesabilitarequisiesICMPRTTdessevizinho Evitaqueessevizinhosejainfluenciadoporumadelaypool. Casoesseservidorexijaautenticao. Especificaotimeoutparaessaconexo. DizaoSquidparabuscaroresumodocacheutilizandoessaURL.

default round-robin multicast-responder closest-only no-digest no-netdb-exchange no-delay login=usurio:senha connect-timeout=nn digest-url=url

44 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

cache_peer_domain

Limitaodomnioparaqualcadavizinhoserrequisitado.usadoparaenviarrequisiesparacachesdiferentes dependendododomnio.

Colocarum'!'antesdodomnosignificaqueocacheirarmazenaro quenoforparatal.

Pode-secolocartantosdomniosquantonecessrioporcache,tanto namesmalinhacomoemlinhasseparadas.

Quandomltiplosdomniossodadosparaumnicocache,oprimeiro domnioaplicado.

Cachehostssemdomnioiroaceitartodosospedidos cache_peer_domaincache_hostdomnio[domnio]

neighbor_type_domain

Modificaotipodoservidorvizinhodependendododomnio.Vocpode tratardomniosdeformadiferentequandoumservidorpadrousado natahcache_peer.

neighbor_type_domainparent|siblingdomnio[domnio]

icp_query_timeout
Aquipode-sedefinirmanualmenteotimeoutdeumarequisioICP. VistoqueoSquidirautomaticamentedeterminarumvalorideal baseadoemrequisiesrecentes,bomnoalteraressaopo.

icp_query_timeoutmilisegundos

maximum_icp_query_timeout

TempomximodeexpiraodeumarequisioICP.Arespostanoser maisesperadadepoisdessetempo.

maximum_icp_query_timeoutmilisegundos

mcast_icp_query_timeout

NormalmenteoSquidenviapacotesdetesteparaosendereosmulticast paradeterminarquaisservidoresestonaescuta.Essaopodetermina quantotempooSquidiresperarporumaresposta.

45 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

ComooSquidficaaguardandoresposta,nocoloqueumvalormuito alto.OpadroestOK.2000ms.

mcast_icp_query_timeoutmilisegundos

dead_peer_timeout

ControlaquantotempooSquidlevaparadeclararumservidorcomo morto.SenenhumarequisioICPforrespondidanessetempo,oSquid continuarmandandorequisiesICP,masnoesperarporresposta.O servidorsernovamentemarcadocomovivodepoisqueumadeterminada seqnciaderespostasforenviada.Padrode10segundos.

dead_peer_timeoutsegundos

hierarchy_stoplist

Umalistadepalavrasque,encontradasnaURL,farocomqueoobjeto sejamanipuladoautomaticamenteporessecache.

hierarchy_stoplistpalavras

no_cache

UmalistadeelementosdeumaACL,onde,seencontrados,impedemo objetodesercacheado.

no_cachedeny|allownomeacl

TagsdaseoCachesize

Descreveosparmetrosrelacionadosaotamanhodamemriautilizada pelocache,assimcomoapolticaderotatividadenamemria.OSquid suportemaisqueumapolticaderotatividadedememria.

cache_mem

Especificaonmeroidealdememriausadopara:

Objetosemtransito Objetos"quentes" Objetoscomnegativadecache

Ostamanhodosdadosparaessesobjetossodefinidosemblocosde4 KB.Esseparmetroespecificaolimiteidealparaosblocosalocados.

46 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

Objetosemtransitotemprioridadesobreosoutros.Quandoespao adicionalnecessrioparanovosdados,objetos"quentes"ecom negativadecachesoliberados.Padrode8MB.

cache_memtotalMB

cache_swap_low

Aquiseespecificaolimitemnimoparasubstituiodeumobjeto.A substituiocomeaquandooswapemdiscoestacimadolimite mnimo.Padrode90.

cache_swap_lowporcentagem

cache_swap_high

Justamenteoopostodaopoanterior.Aquisedefineolimitemximo. Padrode95. cache_swap_highporcentagem

maximum_object_size

Adefiniodessapropriedadedeveseranalisadacomcritrio,visto quelimitamosaquiotamanhomximodeumobjetoemcache.Objetos maioresdoqueesselimitenososalvosemdisco.

Paradefinircomoconfigurarotamanhomximonessaopo,deve-se levaremconsideraoqueumnmerograndeimplicaemmaioreconomia debandaeperdadeperformancenocachelocal,enquantoumnmero menornoajudamuitoemganhodebanda,masmelhoraavelocidadeem tempoderesposta.Recomenda-seautilizaodeumavalorentre4e16 MB.Nopadroserutilizado4096kB.

maximum_object_sizebytes

minimum_object_size

Objetosmenoresdoqueessevalornoseroarmazenadoemcache.O valorpadro0,oquesignificaquetodososobjetossero armazenados.

minimum_object_sizebytes

maximum_object_size_in_memory

Adefiniodessapropriedadedeveseranalisadacomcritrio,visto

47 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

quelimitamosaquiotamanhomximodeumobjetoemcache.Objetos maioresdoqueesselimitenososalvosemdisco.

Paradefinircomoconfigurarotamanhomximonessaopo,deve-se levaremconsideraoqueumnmerograndeimplicaemmaioreconomia debandaeperdadeperformancenocachelocal,enquantoumnmero menornoajudamuitoemganhodebanda,masmelhoraavelocidadeem tempoderesposta.Recomenda-seautilizaodeumavalorentre4e16 MB.

maximum_object_size_in_memorybytes

ipcache_size

Especificaotamanhodocachedeip.Padrode1024.

ipcache_sizenmero_entradas

ipcache_low
EspecificaonmeromnimodeIPscacheados.Padrode90.

ipcache_lowporcentagem

ipcache_high

EspecificaonmeromximodeIPscacheados.Padrode95.

ipcache_highporcentagem

fqdncache_size

EspecificaonmeromximodeFQDNscacheados.Padrode1024.

fqdncache_sizenmero_entradas

cache_replacement_policy

Definequalobjetosermantidonamemriaequalserremovidopara criarespaoparanovosobjetos.
Opo LRU Descrio AopopadroutilizadapeloSquid.Mantmemcacheobjetosreferenciadosarecentemente,ouseja,comearemovendo docacheoobjetoquefoireferenciadoamaistempo.

48 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

heap GDSF heap LFUDA heapLRU

Tem a filosofia de mantm em cache objetosmenores,referenciadosmaisvezes,gerando uma maior possibilidade de fornecerumhit. Mantmosobjetosmaispopularesemcache,independentedeseutamanho. PolticaLRUacrescidadousodepilhas.

cache_replacement_policypoltica

memory_replacement_policy

Determinaquaisobjetossoremovidosdamemriaquandopreciso liberarespao.Segueasmesmaspolticasdocache_replacement_policy

memory_replacement_policypoltica

TagsdaseoLogfilepathnamesandcachedirectories

Descreveosparmetrosparaconfiguraodosdiretriosdecacheelog emdisco.Osarquivosdelogsoimportantesnospara troubleshooting,mastambmgeraoderelatrioeobservaode anomalias.

recomendvelquevocutilize-sedeumapolticaderotacionamento delog,comoolog-rotate.

cache_dir

Diretrioondeseroarmazenadososobjetos.possvelcriar-se vriosdiretriosdecache,masissosirfazersentidoseosmesmo forememparties(ganhodeespao)oudiscos(ganhodevelocidade) separados.

tipoEspecificaotipodearquivoqsercriado.Utilizeoufs.Aopo aufsdeveserutilizadaquandoemumLinuxouSolariscomI/O Assncrono.

tamanho_mx_objRefere-seaotamanhomximodoobjetoqueser armazenadonessediretrio. nome_diretriooraizdodiretriodecache.Casoestejautilizando umdiscoseparadoparaocache,seropontodemontagem.Odiretrio jdeveexistirpreviamenteeousuriodoSquiddeveterdireitoa escritanele.

MbytesQuantidadedeespaoemdiscoocupadoporessediretrio. DefinidoemMB.

nvel-1Nmerodesubdiretriosdeprimeironvelcriadossobo diretrioprincipal.

nvel-2Nmerodesubdiretriosdesegundonvelquesercriado

49 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

abaixodecadasubdiretriodeprimeironvel.

cache_dirtipotamanho_mx_objnome_diretrioMbytesnvel-1nvel2 [..]

cache_access_log
Especificaocaminhoparaoarquivodelogsdeacesso,oqualguarda todasasrequisieseatividadesdeclientes.Osdetalhesdolog podemsercustomizadoscomolog_mime_hdrs,log_fqdnmclient_netmaske emulate_httpd_log.Padro:/usr/local/squid/logs/access.log.

cache_access_logpath_diretrio/nome_arquivo

cache_log

Configuraocaminhoparaologdecache.Essearquivoirconter informaesgeraissobreocomportamentodoSquid.Padro: /usr/local/squid/logs/cache.log.

cache_logpath_diretrio/nome_arquivo

cache_store_log

Dizqualocaminhodologdearmazenamento.Essearquivocontm detalhessobreoprocessodearmazenamentoemdisco,podendofornecer informaescomoquaisarquivosforamremovidosdocache,quaisforam mantidoseporquantotempo.Padro:/usr/local/squid/logs/store.log.

cache_store_logpath_diretrio/nome_arquivo

cache_swap_log

Caminhoparaoarquivoswap.log.Essearquivocontmmetadadossobre objetossalvosemdisco,podendoserutilizadoparadarum"rebuld"no cacheduranteainicializao.Normalmenteeleficaarmazenadono primeirodiretriodecache,maspodeterocaminhoalteradocomessa opo.Essearquivonopodeserrotacionado. Sevoctemmaisdeumcache_dir,entooseuarquivodelogdeswap ternomescomo:

cache_swap_log.00

cache_swap_log.01

cache_swap_log.02

50 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

cache_swap_logpath_diretrio/nome_arquivo

emulate_httpd_logon|off

OSquidtemahabilidadedeemularologdeservidoresweb.Para utilizaressaopo,bastaconfigurarcom"on".Sevocnotem nenhumaaplicaoespecficaparautilizaodologemformatoweb, sugiroquemantenhanopadrodoSquid,vistoquesermaissimples encontrarferramentasdeanalisedelogsnessepadro.

emulate_httpd_logon|off

log_ip_on_direct

Ativa/DesativaaopodelogginparaumIPdestinoemumahierarquia quandoocachedirecionaarequisiodeumservidororigem.

log_ip_on_directon|off

mime_table

ConfiguraatabelaMIMEdoSquid.Essearquivoirconterostipos MIMEsuportadospeloSquid.Padro:/usr/local/squid/etc/mime.conf.

mime_tablepath_diretrio/nome_arquivo

log_mime_hdrson|off

GravatantoasrequisiesquantoasrespostasMIMEnocabealhode cadatransaoHTTP.Oscabealhosiroaparecerem2partes diferentesnoaccess.log.

log_mime_hdrson|off

useragent_log

Parautilizaressaopo,oSquidprecisatersidocompiladocoma opo"--enable-useragent_log".Comissoserpossvelagravaremum logoUser-Agentdetodasasrequisieshttp.Desabilitadopor padro.

useragent_logpath_diretrio/nome_arquivo

referer_log

51 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

TambmnecessitaqueoSquidtenhasidocompiladocomumaopoextra: "--enable-referer_log".Esselogirguardartodasasrefernciasdas requisiesHTTP.Desabilitadoporpadro.

referer_logpath_diretrio/nome_arquivo

pid_filename

EspecificaemqualarquivoserarquivadooPIDdosprocessosdo Squid.Padro:/usr/local/squid/logs/squid.pid.

pid_filenamepath_diretrio/nome_arquivo

debug_options
Comooslogssoconfiguradospornvel,podemosconfigurarotantode informaesqueoSquidirgerarparanossaanlise.Recomendoque utilizeopadro,excetoseestivertendoalgumproblemaquenopossa serfacilmentediagnosticado.Quantomenoronveldelog,menos informaesserogeradas.UsandoapalavraALL,podemosconfiguraro nveldelogemtodosdeumanicavez.Padro:ALL,1.

debug_optionsseo,nvel

log_fqdn

PodeserconfiguradocomoON,sevocdesejalogaroFQDNno access.log.Porpadroestdesabilitado.

log_fqdnon|off

client_netmask

Amscaraderedeparaoendereodeclientesesadadocachemgr. Utilizeopadrocomomelhoropo.Padro:255.255.255.255.

client_netmaskmscara_rede

TagsdaseoSupportforExternalfunctions

Solicitacertasfunesexternasquenosopartedobinriodo Squid.EsseexecutveisnormalmentesorelacionadosaDNS,ftp, redirecionamentoeautenticao.

52 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

ElessochamadospeloSquidatravsdefork()ouexec()padro.O nmerodeforksfilhosserespecificadosparacadaprocessoexterno.

Parmetrosrelevantesparaessaseo:

ftp_user

Essatagutilizadasevocdesejaqueologinannimosejamais informativo.Coloquealgumainformaosignificativacomo proxy@seudominio.com.br.Padro:Squid@.

ftp_usernome_usurio

ftp_list_width

Otamanhodalarguradalistadosarquivosdoftp.Umnmeromuito pequenoircortarnomesdearquivosgrnadesquandonavegandoemsites web.Padro:32

ftp_list_widthnmero

ftp_passive

SeoseufirewallnopermitequeoSquiduseconexespassivas, desligueessaopo.

ftp_passiveon|off

cache_dns_program

Define-seaquiocaminhoparaoexecutveldodnslookup.Essaopo sestdisponvelseoSquidforcompiladocomaopo --disable-internal-dns.

Oprogramadednsexternousaasbibliotecasderesoluo,provendoum clientedednsmuitomaisamadurecidoeconfivel.Casonohajanada deestranhocomsuaresoluodeDNSdoSquid,mantenhaoresolver interno.

cache_dns_programprograma

dns_children
NmerodeprocessossimultneosparaoserviodeDNS.Paraservidores comgrandeload,pelomenos10filhosdevemseriniciados.Omximos ficaem32filhos,sendoopadro5.Novamenteprecisotercompilado oSquidespecialmenteparasuporteaDNSexterno.Quantomaisrpidaa

53 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

resoluoDNS,melhorodesempenhogeraldosistema.Tendoissoem mente,utilize32processosfilhos.

dns_childrennmero

dns_retransmit_interval

TempoinicialqueoDNSaguardapararetransmitirumasolicitao.O intervalodobracadavezquetodososDNSconfiguradossotentados.

dns_retransmit_intervalsegundos

dns_timeout

TimeoutpararequisiesDNS.Senohouverrespostadepoisdesse tempo,todososDNSconfiguradosparaessedomniosoconsiderados indisponveis.Padrode5minutos.

dns_timeoutminutos

dns_defnames

Normalmenteoservidordednsdesabilitaaopoderesoluo RES_DEFNAMES.Issoimpedequecachesemumahierarquiaresolvamnomes dehostslocalmente.Parautilizaressaopo,noesqueade habilitarnahoradacompilao. dns_defnameson|off

dns_nameservers

PodeserusadaparaespecificarumalistadeservidoresDNSnolugar no/etc/resolv.conf

dns_nameserversEndereo_IP

unlinkd_program

Especificaocaminhodoprogramaunlinkd.Issononecessriose vocestiverusandoI/Oassncrono.Padro: /usr/local/squid/libexec/squid/unlinkd.

unlinkd_programpath_diretrio/nome_programa

54 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

diskd_program

Especificaalocalizaododiskd.

diskd_programpath_diretrio/nome_programa

pinger_program

Defineocaminhodoexecutvelpinger.

pinger_programpath_diretrio/nome_programa

redirect_program

DizqualocaminhodoredirecionadordeURL.Existemdiversas aplicaesquepoderoserutilizadasaqui.

redirect_programpath_diretrio/nome_programa

redirect_children

Nmerodeprocessosfilhosparaoprogramaderedirect.

redirect_childrennmero

redirect_rewrites_host_header

PorpadrooSquidreescreveoheaderdehostemrequisies redirecionadas.Sevocestrodandocomoproxyreverso,issopodeno serdesejado.

redirect_rewrites_host_headeron|off

redirector_access

Sedefinido,essalistadeacessoespecificaquaisrequisiesso enviadasparaoprocessoderedirect.Porpadro,todasoso.

redirector_accessallow|deny

55 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

authenticate_program
Especificaocomandodoautenticadorexterno.Esseprogramaluma linhacontendo:"usuriosenha"edevolveumOKouERR.Parautilizar oautenticadorprecisoterumaACLrelacionada.

authenticate_programpath_diretrio/nome_programa path_diretrio/arquivo_senhas

authenticate_children

Nmerodeprocessosfilhosdoautenticador.Padrode5.

authenticate_childrennmero

authenticate_ttl

Especificaotempodevidaparaumaautenticaobemsucedida permaneceremcache.Seumacombinaoinvlidadenomedeusurioe senhafornecida,ousurioremovidodocacheeumarevalidao exigida.Padrode3600segundos.

authenticate_ttlsegundos

authenticate_ip_ttl

Comessaopovocpoderespecificarporquantotempoaautenticao persistirparaumdeterminadoIP.Seumarequisiousandoamesma autenticaodaconexojefetuadaforutilizadaemoutramquina, ambasteroacessobloqueadoeserexigidaumanovaautenticao.Se voctemusurioscomumaconexodiscadaconectandoemseuProxy remotamente,recomendvelquenotenhaumnmeromaiordoque60 segundos,vistoqueissooimpediriadeconectar-senovamentedurante essetemposealinhadelecasse.Opadrode0segundos. authenticate_ip_ttlsegundos

authenticate_ip_ttl_is_strict

Essaopofazcomqueaautenticaosejaumpoucomaisrgida.Ela impedequequalqueroutraconexosejafeitacomoutrosendereosIP enquantootempodevidaespecificadoanteriormentenoexpirar.Essa opoestativadaporpadro.

authenticate_ip_ttl_is_stricton|off

TagsdaseoparatunningdoSquid

56 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

Essaseodescreveimportantesparmetrosparadeterminara performancedoSquid.

wais_relay_host/wais_relay_port

DefineoservidorderelacionamentoWAIS

wais_relay_hosthost

wais_relay_portporta

request_header_max_size

Especificaotamanhomximodeumcabealhodeumarequisiohttp. Comosabe-sequeumcabealhoHTTPdeveserpequeno(porvoltade512 bytes),limitarotamanhodomesmopodeserinteressantenousode proxyreverso,criandoumabarreiraamaisparaataquesdotipobuffer overflowedenialofservice.Padrode10K.

request_header_max_sizekbytes

request_body_max_size

EspecificaotamanhomximoparaocorpodeumarequisioHTTP.Ou seja,otamanhomximodeumPUTouPOST.Essaopopodeser interessanteparaempresasquequeiramgarantirqueseususuriosno farograndesuploadspartirdaempresa.Padrode1MB..

request_body_max_sizekbytes

reply_body_max_size

Tamanhomximodocorpodeumreply.Issotilparaimpedirqueseus usuriosbaixemarquivosgrandes.Padrode0.

reply_body_max_sizekbytes

refresh_pattern

Essaopodeveserusadacomextremocuidado.Sevocnotiver nenhumaaplicaoqueexijaexplicitamentealteraressaTAG,sugiro quedeixe-ainalterada.Umvalorinadequadoaquifarcomqueseus usuriossimplesmentenoconsigammaisacessaraplicaesdinmicas naweb.Nosejalevadopelaidiadequeimpedirosusuriosdeficar

57 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

dandoreloademumapginaireconomizarsuabanda,poisadorde cabeageradasermuitomaiscaradoquesuabanda.
Parmetros mn Descrio Tempo mnimo,em minutos,que um objeto sem um tempo de expirao explicitamente configurado ser considerado vlido.Utilize,impreterivelmente0. aporcentagemdaidadedosobjetos,desdealtimamodificao,noqualesseserconsideradovlido,desdequeno tenhaumvalordeexpiraoconfigurado. otempomximo,emminutos,queumobjetossemumtempodeexpiraoexplicitamenteconfiguradoserconsiderado vlido.

porcentagem

mx

Opes override-expire override-lastmod reload-into-ims ignore-reload

Descrio Reforaotempomnimodeexpiraodeumobjeto,aindaqueomesmotenhasidoenviadonocabealho. Reforaotempomnimo,aindaqueoobjetotenhasidomodificadorecentemente. Modificasolicitaesdotipo"sem-cache"ou"reload"para"Se-modificado-desde-requisio" Simplesmenteignoraasrequisies"sem-cache"e"reload".

refresh_pattern[-i]regexmnporcentagemmx[opes]

reference_age

Comojdiscutido,oSquidatualizasuamemriabaseadoempolticas, normalmenteremovendoprimeiroobjetosmaisantigosoumenos populares.Apesardissoserfeitodinamicamente,podemosconfigurar valoresmanualmentenessaopo,configurandootempomximode permannciaemmemria.Ovalorpadrode1ano.

reference_agetempo

quick_abort_min/quick_abort_max/quick_abort_pct

Ocachepodeserconfiguradoparacontinuarcomodownloadde requisiesabortadas.Aomesmotempoqueissopodeserindesejadoem redespequenasecomconexolenta,podesertilemgrandes instalaes,ondequasecertamenteumoutrousurioirrequisitaro mesmoobjeto.

Quandoousurioabortaumdownload,oSquidverificaovalordaopo quick_aborteaquantidadededadosbaixadosatomomento.Seo transferidoformenordoqueoespecificado,eleirfinalizaro download.Padro:16KB

Seotransferidotivermaisdoqueoquick_abort_max,eleirabortar atransferncia.Padro:16KB Seumaporcentagemmaiordoqueaconfiguradaemquick_abort_pcttiver sidobaixada,elefinalizaodownload.Padrode95%.

quick_abort_minkbytes

quick_abort_maxkbytes

quick_abort_pctporcentagem

58 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

negative_ttl

Tempodevidapararequisiesfalhas.Certostiposdeerros(como conexorecusadaoupginanoencontrada)somarcadoscomo "sem-cache"porumdeterminadotempo.Padrode5minutos.

negative_ttltempo

positive_dns_ttl

TempodevidapararesultadosbemsucedidosderesoluoDNS.Sevoc realmenteprecisaralteraressevalor,nodeixeinferiora1minuto. Padrode6horas.

positive_dns_ttltempo

negative_dns_ttl
TempodevidaderesoluesfalhasdeDNS.

negative_dns_ttltempo

range_offset_limit

Configuraumlimitesuperiordeatondedeveriraabrangnciade umarequisiodearquivoemumpr-download.Sepassardesselimite, oSquidencaminhaarequisiocomoestenocacheiaoresultado.

range_offset_limitbytes

TagsdaseoTimeouts

Parmetrosdetimeoutpodemserbaseadosemtempodeconexo,conexo comhost,porsiteoudomnio,portipoderequisio,etc.Timeouts bemconfiguradossoessenciaisparaotimizaraperformancedoSquid. Osprincipaisparmetrosestolistadosabaixo.

connect_timeout

OtempodeesperaqueoSquidaguardapelarespostadoservidorde origem.Seessetempoforexcedido,oSquidrespondecomumamensagem de"Connectiontimedout".Padrode120segundos.

59 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

connect_timeoutsegundos

peer_connect_timeout

Especificaquantotempodeverseraguardadaumarespostadeumcache vizinhoparaconexesTCP.Diferenteslimitespodemserconfigurados paravizinhosdistintos.Padrode30segundos.

peer_connect_timeoutsegundos

siteselect_timeout

DefineotempodeexpiraoparaURNemseleodemltiplasURLs.URN umprotocolodesenvolvidopararesoluodenomesindependentede localizao.Padrode4segundos. siteselect_timeoutsegundos

read_timeout

Essaopousadaemconexesserver-side.Apscadaleiturabem sucedida,otimeoutseraumentadonessevalor.Senenhumdadofor lidoapsessetempo,arequisioabortadaelogadacomo ERR_READ_TIMEOUT.Padrode15minutos.

read_timeouttempo

request_timeout

DizaoSquidquantotempoesperarapsumaconexoHTTPseraberta. Paraconexespersistentes,oSquidiraguardaressetempoapsofim darequisioanterior.Defaultde30segundos.

request_timeoutsegundos

client_lifetime

Tempomximoqueumclientepoderficarconectadoaoprocessode cache.Entenda-seclientecomobrowser.Issoprotegeocachedeter muitossocketsemestadoCLOSE_WAITdevidoaclientesquedesconectam semutilizaroprocedimentoadequado.Padrode1dia.

client_lifetimetempo

half_closed_clients

60 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

AlgunsclientespodempararoenviodepacotesTCPenquantodeixamo recebimentoemaberto.AlgumasvezesoSquidnoconseguediferenciar conexesTCPtotalmentefechadaseparcialmentefechadas.Porpadro, conexesparcialmentefechadassomantidasabertasatquehajaum errodeleituraouescritanosocket.Mudandoessaopoparaofffar comqueoSquidimediatamentefecheaconexoquandoaleiturado socketretornar"semmaisdadosparaleitura".

half_closed_clientson|off

pconn_timeout

Aquiconfigura-seotimeoutparaconexespersistentes.Depoisdo tempodeinatividadedeterminadoaqui,oSquidencerraasconexes persistentes.Casovocconfigureessaopoparamenosde10 segundos,afuncionalidadeestardesabilitada.Padrode120 segundos.

pconn_timeoutsegundos

ident_timeout

TempomximoparaparaaguardarrequisiesIDENT.Seessevalor estivermuitoaltoeaopoident_lookupativada,existea possibilidadedesujeitar-seaumanegaodeservio,portermuitas requisiesIDENTaomesmotempo.Padrode10segundos.

ident_timeoutsegundos

shutdown_lifetime

QuandooSquidrecebeumSIGTERMouumSIGHUP,ocachecolocadoem modode"shutdownpendente"atquetodosossocketsativossejam fechados.Qualquerclienteaindaativodepoisdesseperodoir receberumamensagemdetimeout.Defaultde30segundos.

shutdown_lifetimesegundos

TagsdaseoAccessControlLists

Semdvidaapartemaisimportanteparaosadministradores.Comouso deACLsbemconfiguradaseplanejadas,possvelnosmanterseus usuriossobcontrole,mastambmmelhorardesempenhoefacilitara administrao.

61 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

acl

Defineumalistadeacesso.Quandousandoumarquivoparabuscaros dados,omesmodeveconterumainformaoporlinha.Expresses regularessocase-sensitive-parafaze-lascase-insensitive,utilize aopo-i.

aclnometipostring1...|"arquivo"
src Baseadoemipouhostnamedeorigemdarequisio

aclnomesrcip/mscara.
dst Baseadoemipouhostnamededestinodarequisio.AACLsinterpretadadepoisquearesoluoDNSforfeita.

aclnomedstip/mscara.
Odomnio da mquina cliente.Osdomniossero obtidosporresoluo reversa de IP,o que pode causaratrasospara a respostadarequisio.

srcdomain

aclaclnamesrcdomainnome_domnio
dstdomain Mesmoquesrcdomain,maslevando-seemcontaodestino.

aclnomedstdomainnome_domnio
srcdom_regex Expressoregularqueavaliadaparatentarmarcarumdomniorequisitante.

aclnomesrcdom_regexregex
dstdom_regex Mesmoquesrcdom_regex,mascomrelaoaodestino.

aclnomedstdom_regexregex
time Diadasemanaehora

aclnometime[abreviao-do-dia][h1:m1-h2:m2]

Onde:

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)

h1:m1-horriodeincio h2:m2-horriodotrmino
url_regex EssaACLirprocuraemnaURLumaexpressoregularqueespecificada.Opocase-sensitive

aclnomeurl_regexregex
Essa acl ir fazer uma combinao de uma expresso regular com o caminho em um servidor que est se tentando acessar.IssosignificaqueoSquidirignoraronomedoservidoreoprotocoloutilizado.

urpath_regex

aclnomeurlpath_regexregex
port Oacessopodesercontroladopelaportadoendereodoservidorrequisitado.

aclnomeportnumero-porta
proto Especificaoprotocolodetransferncia(http,ftp,etc).

62 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

aclnomeprotoprotocolo
method Especificaotipodemtododarequisio.

aclnomemethodtipo-mtodo
ExpressoregularcujopadrotentaracombinarcomocontidonocabealhoHTTPderequisiodocliente,descobrindoassim oagente(browser)utilizado.

browser

aclnomebrowsertipo
ident Seqnciadecaracteresquecombinamcomonomedousurio.RequerumservidorIdentrodandonamquinadocliente.

aclnomeidentnome_usurio
ident_regex Omesmoqueident,masutilizando-sedeexpressoregular.

aclaclnameident_regexpattern
src_as Origemdeumsistemaautnomo

dst_as

Destinodeumsistemaautnomo

snmp_community

ComunidadeSNMP.

aclsnmppublicsnmp_communitypublic
Limitemximodeconexesprovenientesdeummesmocliente.tilpararestringirnmerodeusuriosporIP,bemcomofazer controledeusodabanda.

maxconn

req_mime_type

Expressoregularquecombinacomotipodecontedocontidonocabealhoderequisio.

aclnomereq_mime_typepadro
arp MACAddressdocliente.

aclnomearpMAC_ADDRESS

http_access

Permiteounegaacessoaoserviohttpbaseadonalistadeacesso (acl)definida.Ousode"!"indicaqueseranegaodaacl.

Senenhumadasaclsconfiguradasseencaixarnarequisioemcurso, serentoaplicadaaltimaregra.importantesemprecriarumaacl chamadaall(oudescomentaralinhajexistente)ecolocarum `http_accessdenyall'. http_accessallow|deny[!]nome...

icp_access

PermiteounegaacessoportaICP,baseando-senaslistasdeacesso.

icp_accessallow|deny[!]nome...

63 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

miss_access

Usadoparaforarseusvizinhosausarseuservidorcomo"irmo"ao invsde"pai".

miss_accessallow|deny[!]nome...

cache_peer_access

Similarao`cache_peer_domain',masoferecemaisrecursospor utilizar-sedaflexibilidadedasacls.Suasintaxeidnticaao `http_access'.

cache_peer_accesscache-hostallow|deny[!]nome...

ident_lookup_access

UmalistadeelementosemumaACL,osquais,seencontrados,iro gerarumarequisioIDENT.

ident_lookup_accessallow|denynome...

Tagsdaseoauth_param

UmadasprincipaismudanasdoSquid2.4.xparao2.5.xfoiosistema deautenticao.Todasasopesreferentesaissoestoagoras sujeitasaopoauth_param.Vamosverabaixocomoelafunciona.

Formatogeral

auth_paramesquemaparmetro[opes]

program

Especificaoprogramautilizadoparaautenticao.Talprogramair lerumalinhacontendo"usuriosenha"eresponderaosquidcomum "OK"parasucessoouum"ERR"parafalha.Parautilizarum autenticador,necessrioumaacldotipoproxy_auth.Porpadro, utiliza-seosistemadeautenticaobsico.

auth_parambasicprogram/path/do/programa/path/do/arquivo/senhas

children

64 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

Nmerodeprocessosfilhosqueoprogramadeautenticaopoder conter.

auth_parambasicchildrennmero

realm

Textoqueiraparecernacaixadedilogodelogin.Nonecessrio configurar,masconfereumacertapersonalizaoaoservidor.

auth_parambasicrealmTextodelogin

credentialsttl

EspecificaporquantotempooSquidirassumirqueumaautenticao bemsucedidacontinuarvlida.

auth_parambasiccredentialsttltempo

Tagsdaseoparmetrosadministrativos

Oparmetrosconfiguradosnessaseopermitemqueoadministradordo SquidespecifiqueusurioegruposnoqualoSquidirrodar,bemcomo hostnamequeiraparecerquandohouvererros,etc.

cache_mgr

Usandoessatag,nspodemosespecificaroendereodee-maildo administradordocachelocal,queseroresponsvelpelainstalao dessamquina.Esseusuriosernotificadopore-mailcasoocache morra.(usuriolocal).Padro:webmaster

cache_mgrusurio

cache_effective_user/cache_effective_group

Quandoiniciadocomoroot,oSquidirprocuraresseparmetropara determinarousurioegruponoqualirrodar.importanteressaltar queiniciaroSquidcomusurionorootfarcomqueelenoconsiga abrirnenhumaportaabaixode1024localmente.Aoconfiguraresse parmetro,tenhacertezadequeousurioescolhidoteraspermisses necessriasparaescrevernodiretriodelogs,cacheetodosos necessrios. cache_effective_userusurio

65 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

cache_effective_groupgrupo

visible_hostname

Sevocdesejaapresentarumamensagemdeerrocomumhostname especfico,definaaquiessaopo.DocontrriooSquidirtentar descobrirohostname.Esseparmetronosernecessriosevocno tiverumgrandeclusterdeSquids.

visible_hostnamenomehost

hostname_aliases

Umalistadeoutrosnomesqueseucachepossater.Essaopousada paradetectarrequisiesinternasquandoumcachetemmaisdeum hostnameemuso.

hostname_aliasesnomehost

Tagsdaseohttpd-accelerator

OSquidpodeserusadocomoumbalanceadordecargaouredutorde cargadeumwebserveremparticular.Algunscachespodemtrabalharcom requisiesdecacheerequisieshttp,fazendodelestambmum servidorweb.OdesenvolvimentodoSquidnooptouporessasoluo. Entretanto,adicionando-seumacamadadetraduooSquidpodereceber einterpretarrequisiesnoformatoweb-server,asquaiseleir repassaraoservidorwebreal,situadoatrsdele.

Nessaseotambmconfigura-seoSquidparatrabalhardemodo transparente.

httpd_accel_host

Configuraonomedohostparaoservioacelerado.Sevoctiver vriosservidores,sernecessrioutilizarapalavravirtualaoinvs dehostname.

httpd_accel_hosthostname(IP)|virtual

httpd_accel_port

Portaparaqualasrequisiesaceleradasseroenviadas.

httpd_accel_portporta

66 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

httpd_accel_single_host

SevocestutilizandooSquidcomoumaceleradorwebetemsomente umservidornobackend,configureessaopoparaon.Issofarcom queoSquidmandeasrequisiesparaoservidor,independentementedo queocabealhodisser.

httpd_accel_single_hoston|off

httpd_accel_with_proxy

Seaopohttp_accel_hostestiverativada,entooSquidirpararde trabalharafuncionalidadedecache.necessrioconfiguraressa opoparaqueambasasfuncionalidadescontinuemativas.

httpd_accel_with_proxyon|off

httpd_accel_uses_host_header

AsrequisiesHTTP/1.1incluemumcabealhorelativoaohost,que basicamentecontmonomedomesmonaURL.OSquidpodeserum aceleradorparadiferentesservidoreswebatravsdaanalisedo cabealhohttp.Entretanto,oSquidnochecaosvaloresdocabealho dohost,abrindoumapossvelbrechadesegurana.Maisumavez, recomendadoutilizaressatagcomcuidado.

httpd_accel_uses_host_headeron|off

TagsdaseoMiscellaneous

Comoonomesugere,essaseosobrealgunsparmetrosquenopodem serexplicitamenteencaixadoscomnenhumaoutracategoria.Iremos abranger:

Limitedecrescimentodearquivosdelog. Mostrarinformaescustomizadassobreosclienteseerros. DefinirpoolsdememriaparaoSquid. GerenciamentoporSNMP. CoordernaocomcachesvizinhosatravsdeWCCP. Direcionarasrequisiestantoparaoservidordeorigemcomoumcachevizinho.

dns_testnames

OtestedeDNSpradeserexecutadotologoeleconsegueresolvera primeirabuscadenome.Essetestepodeserdesabilitadoiniciando-se oSquidcomaopo-Dnalinhadecomando.

dns_testnamesURL

67 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

logfile_rotate

Especificaonmeroderotaesexecutadasquandodadigitaode `squid-krotate'.Opadro10,oquesignificaqueoSquidcriar extensesde0at9.Configurarolog_rotatepara0irdesabilitaro rotacionamento.

logfile_rotatenmero

append_domain
Anexaonomedodomniolocalparahostnamessemnenhumponto(.). Essaopodeveconterumdomniocomponto(.)noincio.

append_domainnome_domnio

tcp_recv_bufsize

TamanhomximodeumbufferTCP.

tcp_recv_bufsizebytes

err_html_text

EspecificaotextodoHTMLqueserincludonasmensagensdeerro. Podeseralgumamensagemsobrecontatodoadministador,ouumlink paraapginadaempresa.

err_html_texttexto

deny_info

Essaopopodeserusadapararetornarumapginadeerropara requisiesquenopassempelasregrasdefinidasemumaACL.Voc podeutilizaraspginaspadrodeerrodoSquidoucriarassuas prprias. deny_infonome_pagina_erroacl

memory_pools

Seconfigurado,oSquidirmanterpoolsdememriaalocadaelivre parausofuturo.

memory_poolson|off

68 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

memory_pools_limit

Deve-setambmdeterminarumvalorparaessepooldememriaembytes. Senoconfigurada,oucomvalorigualazero,oSquidirguardar tantamemriaquantopossvel.

memory_pools_limitbytes

forwarded_for

AtualmenteopadroHTTP/1.1noprovnenhumaformadeindicaro endereoderequisiodeumcliente.Entretanto,comoessaerauma featurerequisitada,oSquidadicionaemsuasrequisiesumcabealho dotipo"X-Forwarded-For".SeativadaessaopooSquidirmandar requisiescomoIPdeorigemnocabealho.Casocontrrio,omesmo irterorigemdesconhecida.

forwarded_foron|off

log_icp_queries

Configurando-seessaopocomoativa,asrequisiesICPpassaroa serlogadasnoaccess.log.

log_icp_querieson|off

icp_hit_stale

SevocdesejaretornarumICP_HITparaobjetosestticoscacheados, configureessaopopara`on'.

icp_hit_staleon|off

minimum_direct_hops

SevocutilizarICMP,faabuscasdiretasparasitesqueestejama maisdeumhopdedistncia.Esseparmetrotilparadescobrira latnciadarede.

minimum_direct_hopsnmero

minimum_direct_rtt

69 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

SeestiverutilizandoICMP,faabuscasdiretasasitesqueestejama maisdoqueonmerodemilisegundosconfiguradosaquidedistncia. Padrode400.

minimum_direct_rtttempo

cachemgr_passwd

Especificaasenhaparaoperaesdegerenciamentodecache.

cachemgr_passwdsenhaaoao...
Aes 5mineventsnon_peersvia_headers 60minfiledescriptorsobjectsvm_objects asndbfqdncachepconn authenticatorhistogramspeer_select cbdatahttp_headersredirector client_listinforefresh comm_incomingioserver_list configipcacheshutdow countersdelaymemstore_digest digest_statsmenustoredir dnsnetdbutilization store_avg_object_size(kbytes)

Otamanhomdiodeobjetosusadoparaestimaronmerodeobjetos queseucachepodemanipular.Parafazeressaestimativa,basta calcular:Nmerodeobjetos=cache_swap/tamanhomdiodeobjetos.

store_avg_object_sizetamanho

store_objects_per_bucket

Nmerodeobjetosarmazenadosdeumanicavezemumatabelahash.

store_objects_per_bucketkbytes

client_db

Sevocdesejadesabilitarestatsticasporcliente,desabiliteessa opo.

client_dbon|off

netdb_low/netdb_high

70 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

OslimitesmnimosemximosdamedioICMP.Porpadroessesvalores so900e1000.Issosignificaquequandoolimitemximoatingido, obancodedadosirapagarregistrosatalcanarolimitemnimo.

netdb_lowentradas

netdb_highentradas

netdb_ping_period

Otempomnimodemediodeumsite.

netdb_ping_periodtime-units

query_icmp
SevocdesejafazercomqueasrequisiesICPsejamtambm respondidascominformaesICMPpelosseusvizinhos,habiliteessa opo.Lembre-sequenecessrioqueoSquidtenhasido especificamentecompiladocomsuporteaicmpparaqueessaoposeja funcional.

query_icmpon|off

test_reachability

Quandohabilitado,repostasICPMISSserointerpretadascomoICPMISS NOFETCHseohostalvonoestivernabasededadosICMPoutiverum RTTzero.

test_reachabilityon|off

reload_into_ims

Habilitandoessaopo,vocfarcomqueumarequisiono-cacheseja transformadaemumaif-modified-since.Essaopodeveserusada apenasemcasosmuitosespecficos.

reload_into_imson|off

always_direct

PodeutilizarelementosdeumaACLparaespecificarrequisiesque devemsempreserencaminhadasparaoservidordeorigem.Isso

71 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

normalmenteutilizadojuntamentecomaopocache_peer. always_directallow|deny[!]nome...

never_direct

aregraopostaaoalways_direct,funcionandodamesmamaneira.

never_directallow|deny[!]aclname...

anonymize_headers

Substituioantigocabealho`http_anonymizer'porumaopomais configurvel.Agorapossvelespecificarquaiscabealhossero enviadosouremovidosdasrequisies.

anonymize_headersallow|denynome_cabealho...

possvelutilizaressaopopermitindoquedeterminadostiposde cabealhossejamvistosounegandooutros.

Paraterumaheaderigualao`http_anonymizer',precisoconfigurar daseguinteforma:

anonymize_headersallowAllowAuthorizationCache-Control

anonymize_headersallowContent-EncodingContent-Length anonymize_headersallowContent-TypeDateExpiresHost

anonymize_headersallowIf-Modified-SinceLast-Modified

anonymize_headersallowLocationPragmaAccept

anonymize_headersallowAccept-EncodingAccept-Language

anonymize_headersallowContent-LanguageMime-Version

anonymize_headersallowRetry-AfterTitleConnection

anonymize_headersallowProxy-Connection

fake_user_agent
EssaopofazcomqueoSquidenvie,comoversodobrowser,o parmetroqueforconfigurado.

72 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

fake_user_agentString

icon_directory

Especificaodiretrioemqueosconesestoarmazenados.

icon_directorypath_diretrio/nome_diretrio

error_directory

CasodesejecustomizarasmensagensdeerrodoSquid,bastaindicaro diretrioondeoshtmlsseroencontradosecria-losdeacordocoma padronizao.

error_directorypath_diretrio/nome_diretrio

minimum_retry_timeout

Especificaotamanhomnimodetimeout,quandoessetemporeduzido paracompensaradisponibilidadedemltiplosendereosIP.Isso significaquequandoumaconexoiniciadacomumhostquetem mltiplosendereosIPs,otempopadrodetimeoutentoreduzido dividindo-seessevalorpelonmerodeendereos. minimum_retry_timeoutsegundos

maximum_single_addr_tries

Configuraonmeromximodetentativasdeconexesemumservidorque tenhasomenteumendereo.

maximum_single_addr_triesnmero

snmp_port

OSquitemacapacidadedefornecerinformaessobrestatuse estatsticasviaSNMP.Aquiconfiguramosaportaondeesseservioir escutar.Utilize0paradesabilitaressaopo.Padro:3401.

snmp_portporta

snmp_access

73 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

PermiteounegaacessoportaSNMP,baseando-seemumaacl.

snmp_accessallow|deny[!]aclname...

Tagsdaseodelaypool

Conceitualmente,asdelaypoolssolimitantesdeconsumodebanda. Basicamenteoqueumdelaypoolfazcriarumalentidoartificial paraosclientes,gerandoumagrandeeconomiadebanda.Comuma combinaobemfeitadedelaypoolseacls,possvelfazerumgrande controleelimitaodebanda.

delay_pools

Nmerototaldedelaypoolsqueiroserutilizadas.Issosignifica quesevoctiverumadelaypooldeclasse2e4declasse3,esse nmerodeverser5.

delay_poolsnmero

delay_class

Defineaclassedecadadelaypool.Devehaverexatamenteumaclasse dedelayparacadadelaypool.

delay_classnmero(delay-poolnumber),nmero(delayclass)

delay_access

Determinaemqualdelaypoolumarequisioserencaixada.Aprimeira acombinarserutilizada,porissoverifiquecomcuidadosuasacls.

delay_accessallow|denynomeacl

delay_parameters

Defineosparmetrosparaumadelaypool.Cadadelaypooltemum nmerodealocaodetrfegoassociado.

delay_parameterspoolagregado(delay_class1)

delay_parameterspoolagregadoindividual(delay_class2)

74 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

delay_parameterspoolagregadonetworkindividual(delay_class3)

delay_initial_bucket_level DeterminaqualaporcentagemcolocadaemcadaalocaoquandooSquid iniciado.

delay_initial_bucket_levelbytes

incoming_icp_average / incoming_http_average / incoming_dns_average / min_icp_poll_cnt / min_dns_poll_cnt/min_http_poll_cnt

Sodescritososalgoritmosusadosparaastagsacima,

TagNamenmero

Padro:

incoming_icp_average6

incoming_http_average

4incoming_dns_average

4min_icp_poll_cnt8

min_dns_poll_cnt8

min_http_poll_cnt8

max_open_disk_fds

EspecificaonmeromximodefiledescriptorsqueoSquidpodeusar paraabrirarquivos.EssaopousadaparaevitargargalodeI/Oe acessoadiscolimitandoonmerodearquivos.

max_open_disk_fdsnmero

offline_mode

Comessaopoativada,oSquidnuncairtentarvalidarobjetos cacheados.

offline_modeon|off

uri_whitespace

75 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

AaoquesertomadaquandoumaURIcontiverespaosembranco decididanessatag.Padrostrip.

uri_whitespaceopes
Opes strip deny allow encode chop Descrio OsespaosembrancosoremovidasdaURL,deacordocomorecomendadonaRFC2616 Arequisionegadaeoclienterecebeumamensagemde"RequisioInvlida" Arequisioaceitaeosespaosembranconosoalterados. ArequisioaceitaeosespaossocodificadosdeacordocomaRFC1738 Arequisiocortadaemandadaapenasatoespaoembranco

broken_posts

UmalistadeelementosdeumaACLque,seencontrados,irofazercom queoSquidcoloqueumparextradeCRFL(CarriagereturneLineFeed) emumPUTouPOST.Issosomenteutilizadojuntoaalgunsservidores HTTPproblemticosqueexigemessamodificao.Senosouberde nenhumcasoespecfico,ignoreessaopo.

broken_postsallow|denynomeacl

nonhierarchical_direct

Porpadro,oSquidirenviarqualquerrequisionohierrquica diretamenteaosservidoresdeorigem.Sevocdesabilitarisso,o Squidirenviarissoparaocache"pai".Namaiorpartedoscasos, noumaboaidiadesabilitaressaopo,vistoqueelairgerar umalatnciadesnecessria,semnecessariamentealgumganho.

nonhierarchical_directon|off

prefer_direct

OcomportamentonormaldoSquidtentarutilizarseus"pais"namaior partedasrequisies.Umapossvelutilidadedehabilitarumabusca diretaaoinvsdisso,seriacombinandoasopesnon hierarchical_directoffandprefer_directon,fazendobasicamentedos "pais"umarotabackupemcasodeerroembuscasdiretas.

prefer_directon|off

strip_query_terms
Parahabilitarologdetodosparmetrosdasrequisies,necessrio habilitaressaopo.CasocontrriooSquidapenasdforwarddas

76 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

mesmassemgerarumlogcompleto.

strip_query_termson|off

coredump_dir

Emcasodefalhas,ossistemasUnixgeramsempreumarquivodecore dosprogramas.OSquidnormalmenteguardaosarquivosdecoregerados porelenodiretriodecache.Comessaopopossvelconfigurar ondeserarmazenadoessearquivo.

coredump_dirdiretrio

redirector_bypass

Quandohabilitado,umarequisionoiratravsdosredirecionadores setodoselesestiveremocupados.Seestivercomessaopoestiver desativadaeafilacomearacrescermuito,oSquidirabortare gerarumerrosolicitandoqueaquantidadederedirecionadoresseja aumentada.

redirector_bypasson|off

ignore_unknown_nameservers

OSquidsempreverificaseumarespostaDNSestsendorecebidadeum mesmoIPdeorigemparaqualestsendoenviadaarequisio.Casono sejamosmesmos,oSquidirignorararespostaemandarumamensagem nolog.Recomendoquenodesabiliteessaopo,vistoqueuma proteoamaiscontraataquesbaseadosemDNS. ignore_unknown_nameserverson|off

digest_generation

Aquipossvelcontrolarseoservidorirgerarumresumoeotipo deseucontedo.Parahabilitaressaetodasasoutrasopes referentesaresumo,necessrioqueoSquidtenhasidocompiladocom opo--enable-cache-digests.

digest_generationon|off

digest_bits_per_entry

Nmerodebitsdoresumodecachedoservidor,oqualserassociado comacombinaodeumdadotipodemtodoHTTPeURL.

77 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

digest_bits_per_entrynmero

digest_rebuild_period

Nmerodesegundosparaareconstruodoresumodocache.Opadro de1hora.

digest_rebuild_periodtempo

digest_rewrite_period

Tempodeesperaentreescritasderesumonodisco.Comonaopo anterior,oresumoescritoacada1hora.

digest_rewrite_periodtempo

digest_swapout_chunk_size

Nmerodebytesdoresumoaescreverdecadavez.PorpadrooSquid utiliza4KB,queotamanhopadrodeumapginadeswap.

digest_swapout_chunk_sizebytes

digesvt_rebuild_chunk_percentage

Configura-seaquiaporcentagemdoresumodecachequeserverificada decadavez.Porpadroestconfiguradopara10%dototal.

digest_rebuild_chunk_percentageporcentagem

chroot

Devidoaalgunsprocedimentosquenecessitamdepoderesderoot,o Squidrodaparcialmentecomotal.SevocdesejarodaroSquidcomo chroot,precisohabilitaressaopo.IssofarcomqueoSquidrode osprocedimentosnecessrioscomorootedepoisabandonecompletamente esseprivilgio.Lembre-sequeparausarumchrootnecessrioum chroot_dir.

chrootenable|disable

client_persistent_connections/server_persistent_connections

78 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

Suporteaconexespersistentesparaclienteseservidores.Por padro,oSquidirusarconexespersistentesparacomunicar-secom clienteseservidores.

client_persistent_connectionson|off

server_persistent_connectionson|off

pipeline_prefetch

Paramelhorarodesempenhoderequisiesefila,oSquidir trabalharcom2requisiesparalelamente.

pipeline_prefetchon|off

extension_methods

OSquidsomentetrabalhacomrequisiesHTTPpadro.Apesarde mtodosdiferentesseremnegados,possvelfazercomqueelessejam aceitosadicionando-osaumalista.possvelincluirat20mtodos diferentes. extension_methodsrequestmtodo

high_response_time_warning

Seamdiadefalhasporminutoexcedeessevalor,oSquidmandaum avisodenvel0nodebug(normalmentegerandoumasadanosyslog)de alerta.

high_response_time_warningmsec

high_page_fault_warning

Seamdiadefalhasporminutoexcedeessevalor,oSquidmandaum avisodenvel0nodebug(normalmentegerandoumasadanosyslog)de alerta.

high_page_fault_warningtime-units

high_memory_warning

Seousodememriaexcedeovalordeterminado,oSquidmandaumaviso denvel0nodebug(normalmentegerandoumasadanosyslog)de

79 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

alerta.

high_memory_warningnmero

store_dir_select_algorithm

OSquidpodetrabalharcom2tiposdealgoritmosparaescolherentre vriosdiretriosdecache:least-loaderound-robin.Opadro leat_load.

store_dir_select_algorithmtipo_algoritmo

ie_refresh

OMicrosoftInternetExplorerataverso5.5SP1temproblemasao trabalharcomproxytransparente,impossibilitandoforarumrefresh. Ativandoessaopopossvelcorrigirparcialmenteoproblema, fazendocomquetodosospedidosderefreshvindodeumIEseja automaticamenteinterpretadocomoforado.Amelhoropo,quando possvel,atualizarosclientes.

ie_refreshon|off

Outrasrefernciaseleiturascomplementares

http://squid.visolve.com/squid24s1/contents.htm

http://br.groups.yahoo.com/group/squid-br/

http://lasdpc.icmc.sc.usp.br/pesquisa/jac/quali.pdf

http://directory.google.com/Top/Computers/Software/Internet/Servers/Proxy/Caching/Squid/?tc=1/ http://hermes.wwwcache.ja.net/servers/squids.html

http://freshmeat.net/search/?q=squid&section=projects

http://www.pop-pb.rnp.br/proxy/pal0100.PPT

http://squid.visolve.com/squid24s1/externals.htm#authenticate_program

http://web.onda.com.br/orso/ncsaplus.html

http://www.hacom.nl/%7Erichard/software/smb_auth.html

http://www.tldp.org/HOWTO/Bandwidth-Limiting-HOWTO/index.html

http://squid.visolve.com/squid24s1/access_controls.htm

80 of 81

10/06/2010 08:23 AM

Configurando um Squid "Ninja" | LinuxMan

http://www.linuxman.pro.br/squid/

http://stein.cshl.org/WWW/software/GD/

http://squid.visolve.com/squid24s1/contents.htm

http://br.groups.yahoo.com/group/squid-br/

http://lasdpc.icmc.sc.usp.br/pesquisa/jac/quali.pdf

http://directory.google.com/Top/Computers/Software/Internet/Servers/Proxy/Caching/Squid/?tc=1/

http://hermes.wwwcache.ja.net/servers/squids.html

http://freshmeat.net/search/?q=squid&section=projects

http://www.pop-pb.rnp.br/proxy/pal0100.PPT

ThisHTMLpageis (seesource)

Home

editprimarylinks

81 of 81

10/06/2010 08:23 AM

You might also like