Instalando o Servidor Squid no Linux

Download Instalando o Servidor Squid no Linux

Post on 13-Jul-2015

250 views

Category:

Documents

0 download

Embed Size (px)

DESCRIPTION

Hoje irei mostrar como instalar o Servidor Squid para compartilhar na sua rede a Internet com melhor desempenho em acessos (Cache) e maior segurana (Proxy) no GNU/Linux.

TRANSCRIPT

<p>SEGUNDA-FEIRA, 09 DE MAIO DE 2011</p> <p>Instalando o Servidor Squid no LinuxPostado por Cesar Augustus Silva s 16:17 Linux Seguranca Servidor Tutorial Video</p> <p>Hoje irei mostrar como instalar o Servidor Squid para compartilhar na sua rede a Internet com melhor desempenho em acessos (Cache) e maior segurana (Proxy) no GNU/Linux.</p> <p>Instalando o SquidDebian/Ubunturoot@cesar.augustus.nom.br's # apt-get install squid3</p> <p>Aps a instalao, altere o dono e grupo do arquivo "swap.state", seno ir encontrar problemas mais para frente:root@cesar.augustus.nom.br's # chown proxy:proxy /var/spool/squid3/swap.state</p> <p>Fedora/CentOSroot@cesar.augustus.nom.br's # yum install squid</p> <p>Aps a instalao, coloque o Squid para iniciar durante o boot:root@cesar.augustus.nom.br's # chkconfig squid on</p> <p>Slackware Baixe o pacote do Squid, suas dependncias e instale: http://repository.slacky.eu/slackware(...)/squid-3.0.stable18-i486-1sl.tgz ftp://ftp.slackware-brasil.com.br/slackware(...)/d/gcc-4.2.4-i486-1.tgz ftp://ftp.slackware-brasil.com.br/slackware(...)/d/gcc-g++-4.2.4-i486-1.tgzroot@cesar.augustus.nom.br's # installpkg gcc-4.2.4-i486-1.tgz # installpkg gcc-g++-4.2.4-i486-1.tgz # installpkg squid-3.0.stable18-i486-1sl.tgz</p> <p>Aps a instalao, coloque o Squid para iniciar durante o boot:root@cesar.augustus.nom.br's # # # # chmod ln -s ln -s ln -s +x /etc/rc.d/rc.squid /etc/rc.d/rc.squid /etc/rc.d/rc0.d/K05squid /etc/rc.d/rc.squid /etc/rc.d/rc1.d/K05squid /etc/rc.d/rc.squid /etc/rc.d/rc2.d/K05squid</p> <p># # # #</p> <p>ln ln ln ln</p> <p>-s -s -s -s</p> <p>/etc/rc.d/rc.squid /etc/rc.d/rc.squid /etc/rc.d/rc.squid /etc/rc.d/rc.squid</p> <p>/etc/rc.d/rc6.d/K05squid /etc/rc.d/rc3.d/S95squid /etc/rc.d/rc4.d/S95squid /etc/rc.d/rc5.d/S95squid</p> <p>Configurando o SquidO arquivo de configurao do Squid se encontra no seguinte caminho: Debian/Ubuntu: "/etc/squid3/squid.conf" Fedora/CentOS: "/etc/squid/squid.conf" Slackware: "/etc/squid/squid.conf" Para comear com a configurao do zero, renomeie o arquivo de configurao padro, crie um novo arquivo com o nome "squid.conf" e adicione as seguintes configuraes:http_port 3128 visible_hostname servidor cache_mgr webmaster@localhost</p> <p>http_port: determina a porta que ser usada pelo servidor. visible_hostname: defina o nome de exibio do servidor. cache_mgr: defina o e-mail do administrador para receber mensagem em casos graves. Para definir o idioma das pginas de mensagem de erros em portugus brasileiro, adicione a seguinte configurao: Debian/Ubuntuerror_directory /usr/share/squid3/errors/Portuguese</p> <p>Fedora/CentOSerror_directory /usr/share/squid/errors/pt-br</p> <p>Slackwareerror_directory /usr/share/squid/errors/Portuguese</p> <p>CacheO cache onde fica armazenado os objetos (arquivos e pginas) quando acessa as pginas ou baixar arquivos pela Internet. Ao invs de toda vez que um usurio for acessar um site e ter que esperar baixar a pgina toda e os arquivos direto da hospedagem, o servidor verifica se j existe no cache podendo baixar direto do servidor, melhorando o desempenho na navegao. Para configurar o cache no Squid, adicione as seguintes configuraes:hierarchy_stoplist cgi-bin ? cache_mem 32 MB maximum_object_size_in_memory 64 KB maximum_object_size 100 MB</p> <p>hierarchy_stoplist: defina palavras que se for encontradas na url, a pgina ir ser</p> <p>carregada direto do cache. cache_mem: defina a quantidade de memria que o servidor ir usar para o cache. maximum_object_size_in_memory: defina o tamanho mximo do objeto que poder ser armazenado na memria, seno ser armazenado no disco rgido. maximum_object_size: defina o tamanho mximo do objeto que poder ser armazenado no disco rgido, seno ser descartado o objeto. Para especificar o diretrio do cache, aonde ser armazenado os objetos e atribuir 2GB de espao de armazenamento no cache, adicione a seguinte configurao: Debian/Ubuntucache_dir ufs /var/spool/squid3 2048 16 256</p> <p>Fedora/CentOScache_dir ufs /var/spool/squid 2048 16 256</p> <p>Slackwarecache_dir ufs /var/log/squid/cache 2048 16 256</p> <p>Agora vamos definir o tempo de vida dos objetos no cache, para que sempre o Squid for verific-los, saber se necessrio atualiz-los ou no.refresh_pattern ^ftp: 360 refresh_pattern -i (/cgi-bin/|\?) 0 refresh_pattern . 0 20% 0% 20% 10080 0 4320</p> <p>1 coluna: defina o tempo em minutos, em cada acesso, quando deve verificar se houve modificao no objeto. 2 coluna: defina a porcentagem mnima da modificao do objeto que deve ter para ser atualizado. 3 coluna: defina o tempo em minutos, quando deve efetuar uma atualizao mesmo no ter sido modificado. Para especificar o caminho do Log de acesso do Squid e o caminho do Log do cache, adicione a seguinte configurao: Debian/Ubuntuaccess_log /var/log/squid3/access.log cache_log /var/log/squid3/cache.log</p> <p>Fedora/CentOSaccess_log /var/log/squid/access.log cache_log /var/log/squid/cache.log</p> <p>Slackwareaccess_log /var/log/squid/logs/access.log cache_log /var/log/squid/logs/cache.log</p> <p>Controle de AcessoA ACL ou Lista de Controle de Acesso, onde define aonde pode acessar ou no pela Internet. Uma coisa importante que deve saber que o Squid interpreta as ACL's de cima para baixo, ento deve ficar atento quando for criar as regras. Crie duas acl com o tipo src (IP de origem) e adicione o IP do servidor e o IP da rede:acl localhost src 127.0.0.1/32 acl localnet src 192.168.0.0/24</p> <p>Crie uma acl com o tipo proto (protocolo) e adicione o protocolo "cache_object":acl manager proto cache_object</p> <p>O protocolo "cache_object" usado para obter informaes sobre o estado do Squid. recomendvel que permita apenas o servidor obter as informaes do Squid, ento adicione a seguinte regra:http_access allow manager localhost http_access deny manager</p> <p>Crie uma acl do tipo method (mtodo de requisio) e adicione o mtodo PURGE:acl purge method PURGE</p> <p>O mtodo de requisio PURGE serve para limpar/excluir objetos armazenados no cache. Para permitir que apenas o servidor possa exclua objetos, adicione a seguinte regra:http_access allow purge localhost http_access deny purge</p> <p>Crie uma acl do tipo port (porta) e adicione as portas que sero liberadas:acl Safe_ports port 21 70 80 210 280 443 488 563 591 631 777 873 901 1025-65535</p> <p>Se quiser deixar mais organizado, ou seja, adicionar uma porta de cada vez para poder comentar em cada linha a descrio do protocolo da porta que est sendo liberada, tambm pode deixando assim:acl acl acl acl acl acl acl acl acl acl acl acl acl acl Safe_ports Safe_ports Safe_ports Safe_ports Safe_ports Safe_ports Safe_ports Safe_ports Safe_ports Safe_ports Safe_ports Safe_ports Safe_ports Safe_ports port port port port port port port port port port port port port port 21 # ftp 70 # gopher 80 # http 210 # wais 280 # http-mgmt 443 # https 488 # gss-http 563 # nntps 591 # filemaker 631 # cups 777 # multiling http 873 # rsync 901 # swat 1025-65535 # unregistered ports</p> <p>Para bloquear o acesso em portas que no foram liberadas, adicione a seguinte regra:</p> <p>http_access deny !Safe_ports</p> <p>Crie uma acl do tipo method (mtodo de requisio) e adicione o mtodo CONNECT, que permite fazer conexo direta:acl connect method CONNECT</p> <p>Crie uma acl do tipo port (porta) e adicione as portas dos protocolos com SSL que foram adicionadas na acl "Safe_ports" e devem ser liberadas para conexo direta:acl SSL_ports port 443 acl SSL_ports port 563 acl SSL_ports port 873 # https # nntps # rsync</p> <p>Para bloquear o acesso em portas que no foram liberadas para conexo direta, adicione a seguinte regra:http_access deny connect !SSL_ports</p> <p>Crie uma acl do tipo dstdomain (domnio de destino) e adicione um dminio iniciando com o ponto:acl domains dstdomain .twitter.com</p> <p>Se no caso for vrios domnios de destino, define o caminho do arquivo que ser adicionado os domnios:acl domains dstdomain "/etc/squid/domains"</p> <p>Crie o arquivo que foi definido na acl e adicione os domnios de destino:.twitter.com .youtube.com .vimeo.com</p> <p>Para bloquear o acesso nos domnios de destino, adicione a seguinte regra:http_access deny domains</p> <p>Crie uma acl do tipo url_regex (expresso regular na url) e adicione uma expresso regular:acl words url_regex jogo</p> <p>A acl do tipo url_regex percorre url em busca de expresses regulares. A acl case-sensitive, se no caso estiver procurando a expresso "jogo" e tiver "Jogo", sero consideradas diferentes. Para adicionar vrias expresses, define o caminho do arquivo que ser adicionado as expresses. E use a opo "-i" para tornar a acl em case-insensitive:acl words url_regex -i "/etc/squid/words"</p> <p>Crie o arquivo que foi definido na acl e adicione as expresses regulares:jogo</p> <p>blog msn</p> <p>Para bloquear o acesso em urls com as expresses regulares, adicione a seguinte regra:http_access deny words</p> <p>Criar uma acl do tipo urlpath_regex (expresso regulares no caminho da url) e define o caminho do arquivo que ser adicionado as expresses regulares:acl extensions urlpath_regex -i "/etc/squid/extensions"</p> <p>A acl do tipo urlpath_regex semelhante a url_regex, s que ignorado o domnio e protocolo. Por exemplo, essa url "http://www.dominio.com.br/blog/invasao.html", ir fazer a busca da expresso regular apenas nessa parte "/blog/invasao.html": Crie o arquivo que foi definido na acl e adicione as expresses regulares:\.bat($|\?|\&amp;) \.exe($|\?|\&amp;) \.scr($|\?|\&amp;)</p> <p>Para bloquear o acesso em urls path com expresses regulares, adicione a seguinte regra:http_access deny extensions</p> <p>Sem mais acl para criar, adicione a seguinte regra para permitir que apenas as mquinas da rede e o servidor sejam liberados para acessar a Internet:http_access allow localnet http_access allow localhost http_access deny all</p> <p>Com as acl definidas, a sequncia das regras devero est na ordenao correta, independente esteja a acl junto com a regra. O que importa que esteja criada a acl antes de definir a regra. Aqui vai uma amostra de como deve est ordenado as regras:http_access http_access http_access http_access http_access http_access http_access http_access http_access http_access http_access http_access allow manager localhost deny manager allow purge localhost deny purge deny !Safe_ports deny connect !SSL_ports deny domains deny words deny extensions allow localnet allow localhost deny all</p> <p>Debian/Ubuntu Aps ter terminado as configuraes, recarregue as configuraes no Squid:root@cesar.augustus.nom.br's # /etc/init.d/squid3 reload</p> <p>Fedora/CentOS Aps ter terminado as configuraes, inicie o servidor Squid:root@cesar.augustus.nom.br's # service squid start</p> <p>Slackware Aps ter terminado as configuraes, inicie o servidor Squid:root@cesar.augustus.nom.br's # /etc/rc.d/rc.squid start</p> <p>Pronto.</p> <p>A obra Instalando o Servidor Squid no Linux de Cesar Augustus Silva foi licenciada com uma Licena Creative Commons - Atribuio - Partilha nos Mesmos Termos 3.0 No Adaptada. Permisses adicionais ao mbito desta licena podem estar disponveis em http://creativecommons.org/.</p> <p>http://blog.cesar.augustus.nom.br/instalando-o-servidor-squid-no-linux.html</p>