instalando o servidor squid no linux

Upload: cesar-augustus-silva

Post on 13-Jul-2015

257 views

Category:

Documents


0 download

DESCRIPTION

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

TRANSCRIPT

SEGUNDA-FEIRA, 09 DE MAIO DE 2011

Instalando o Servidor Squid no LinuxPostado por Cesar Augustus Silva s 16:17 Linux Seguranca Servidor Tutorial Video

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.

Instalando o SquidDebian/[email protected]'s # apt-get install squid3

Aps a instalao, altere o dono e grupo do arquivo "swap.state", seno ir encontrar problemas mais para frente:[email protected]'s # chown proxy:proxy /var/spool/squid3/swap.state

Fedora/[email protected]'s # yum install squid

Aps a instalao, coloque o Squid para iniciar durante o boot:[email protected]'s # chkconfig squid on

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/[email protected]'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

Aps a instalao, coloque o Squid para iniciar durante o boot:[email protected]'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

# # # #

ln ln ln ln

-s -s -s -s

/etc/rc.d/rc.squid /etc/rc.d/rc.squid /etc/rc.d/rc.squid /etc/rc.d/rc.squid

/etc/rc.d/rc6.d/K05squid /etc/rc.d/rc3.d/S95squid /etc/rc.d/rc4.d/S95squid /etc/rc.d/rc5.d/S95squid

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

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

Fedora/CentOSerror_directory /usr/share/squid/errors/pt-br

Slackwareerror_directory /usr/share/squid/errors/Portuguese

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

hierarchy_stoplist: defina palavras que se for encontradas na url, a pgina ir ser

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

Fedora/CentOScache_dir ufs /var/spool/squid 2048 16 256

Slackwarecache_dir ufs /var/log/squid/cache 2048 16 256

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

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

Fedora/CentOSaccess_log /var/log/squid/access.log cache_log /var/log/squid/cache.log

Slackwareaccess_log /var/log/squid/logs/access.log cache_log /var/log/squid/logs/cache.log

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

Crie uma acl com o tipo proto (protocolo) e adicione o protocolo "cache_object":acl manager proto cache_object

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

Crie uma acl do tipo method (mtodo de requisio) e adicione o mtodo PURGE:acl purge method PURGE

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

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

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

Para bloquear o acesso em portas que no foram liberadas, adicione a seguinte regra:

http_access deny !Safe_ports

Crie uma acl do tipo method (mtodo de requisio) e adicione o mtodo CONNECT, que permite fazer conexo direta:acl connect method CONNECT

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

Para bloquear o acesso em portas que no foram liberadas para conexo direta, adicione a seguinte regra:http_access deny connect !SSL_ports

Crie uma acl do tipo dstdomain (domnio de destino) e adicione um dminio iniciando com o ponto:acl domains dstdomain .twitter.com

Se no caso for vrios domnios de destino, define o caminho do arquivo que ser adicionado os domnios:acl domains dstdomain "/etc/squid/domains"

Crie o arquivo que foi definido na acl e adicione os domnios de destino:.twitter.com .youtube.com .vimeo.com

Para bloquear o acesso nos domnios de destino, adicione a seguinte regra:http_access deny domains

Crie uma acl do tipo url_regex (expresso regular na url) e adicione uma expresso regular:acl words url_regex jogo

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"

Crie o arquivo que foi definido na acl e adicione as expresses regulares:jogo

blog msn

Para bloquear o acesso em urls com as expresses regulares, adicione a seguinte regra:http_access deny words

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"

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($|\?|\&) \.exe($|\?|\&) \.scr($|\?|\&)

Para bloquear o acesso em urls path com expresses regulares, adicione a seguinte regra:http_access deny extensions

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

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

Debian/Ubuntu Aps ter terminado as configuraes, recarregue as configuraes no Squid:[email protected]'s # /etc/init.d/squid3 reload

Fedora/CentOS Aps ter terminado as configuraes, inicie o servidor Squid:[email protected]'s # service squid start

Slackware Aps ter terminado as configuraes, inicie o servidor Squid:[email protected]'s # /etc/rc.d/rc.squid start

Pronto.

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

http://blog.cesar.augustus.nom.br/instalando-o-servidor-squid-no-linux.html