You are on page 1of 7

Introduo

O que Squid? O Squid um servidor proxy que suporta os protocolos HTTP, HTTPS, FTP e outros.
Ele reduz a utilizao da conexo e melhora os tempos de resposta fazendo cache de requisies
frequentes de pginas web numa rede de computadores. Pode ser usado para controle de banda,
restrio de sites, usurios, entre outros. Podemos executar o Squid nas principais plataformas do
mercado, como GNU/Linux, Unixes e Windows.

Instalando o Squid
Para fazer a instalao, basta digitar, como root, no terminal, o comando:
# apt-get install squid
Editando o squid.conf.
O arquivo original do Squid gigantesco devido aos seus inmeros comentrios. Nesse tutorial vamos
criar um arquivo de configurao a partir do zero. Mas primeiro vamos conservar o arquivo original,
renomeando-o com o comando:
# mv /etc/squid/squid.conf /etc/squid/squid.original
Agora sim vamos comear a editar nosso arquivo com o comando:
# vim /etc/squid.conf

Idioma e cache
Configurando o idioma:
possvel alterar as mensagens que o Squid mostra quando um cliente tenta acessar um site ou fazer
um download bloqueado por exemplo, bem como mensagens de erro de DNS, entre outras.
Para isso vamos criar a linha:
error_directory /usr/share/squid/errors/Portuguese
Obs.: Voc pode criar suas prprias pginas de mensagens de erro ou ento editar as j existentes. Basta
ir no seu diretrio indicado acima e utilizar um editor de textos simples.
Configurando cache. Crie as linhas:

cache_mem 700 MB
Esta linha define quanto da memria RAM (no caso 8MB) ser usada pelo cache: em um servidor
dedicado recomendado reservar 1/3 da memria RAM para o cache.
maximum_object_size_in_memory 32 KB
Esta linha define o tamanho mximo dos objetos na RAM. Defina um tamanho pequeno para que sejam
salvos apenas pginas html na RAM e no downloads por exemplo, que devem ser salvos no disco.
maximum_object_size 1024 MB
Define o tamanho mximo dos objetos no cache do disco. Aqui sero armazenados os downloads por
exemplo. Se tem costume de baixar arquivos grandes, coloque um tamanho grande.
minimum_object_size 0 KB
Tamanho mnimo dos objetos no cache.
cache_swap_low 90
cache_swap_high 95
Essas linhas indicam que a partir do momento em que o cache atingir 95%, sero descartados arquivos
mais antigos at que a porcentagem volte para um nmero abaixo de 90%.
cache_dir ufs /etc/squid/cache 30000 16 256
Esta linha a que realmente define o tamanho total do cache em disco. O endereo refere a que
diretrio se deseja utilizar como cache, seguido do tamanho mximo do cache no disco (em MB) e os
dois ltimos nmeros da linha indicam a quantidade de pastas e subpastas que o Squid utilizar para se
organizar ao gravar o cache;
cache_access_log /etc/squid/access.log
Esta linha indica o caminho para onde devem ser exportados os logs que depois podero ser analisados,
manualmente, com com algum gerador de relatrios como o SARG.
Basta ento editar estas linhas de acordo com a capacidade do seu servidor e a sua necessidade.
Limpar cache e recriar estrutura.
Sempre que alterar configuraes referentes ao cache, recomendvel limp-lo e recri-lo. Basta fazer
os seguintes comandos.
Apagar os arquivos:
# rm -rf /var/spool/squid/*
Recriar estrutura, pastas e subpastas:

# squid -z

Este tutorial tem o objetivo de fazer uma configurao simples do Squid, porm funcional, que atende
maioria dos casos.
Por: Italo Diego Teotonio em 27/02/2010

Porta e regras ACL


Porta do Squid e nome do servidor.
Crie as seguintes linhas:

Porta e regras ACL


Porta do Squid e nome do servidor.
Crie as seguintes linhas:
http_port 3128
visible_hostname ServLinux
Onde 3128 a porta padro do Squid, mas voc pode alter-la se desejar e ServLinux o nome do
meu servidor.

Configurando regras ACL


O Squid l as regras de cima para baixo, ento se quer bloquear algo, primeiro bloqueie o que deseja,
depois libere o restante.
As ACLs so criadas no seguinte modelo:
acl nome_da_acl parmetros
Primeiro, aproveitando o arquivo original do Squid, vamos criar as regras que permitem o acesso
apenas a algumas portas especficas e no a qualquer coisa, como no exemplo abaixo.

acl all src 0.0.0.0/0.0.0.0


acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl SSL_ports port 443 563 873
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 873 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 901 # swat
acl Safe_ports port 1025-65535 # portas altas
acl purge method PURGE
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports

Agora vamos inserir nossas regras de bloqueio e permisso.


Aqui criamos uma regra chamada "sites_proibidos" que bloquear as palavras ou URLs contidas no
arquivo indicado no caminho "/etc/squid/sites_proibidos". No esquea de criar este arquivo com as
palavras proibidas, uma por linha.
Em seguida, com a instruo deny, proibimos o acesso aos sites listados na regra que criamos na linha
cima.
acl sites_proibidos url_regex -i "/etc/squid/sites_proibidos"
http_access deny sites_proibidos

Nesta regra bloqueamos o download de alguns tipos de extenses. Da mesma maneira criamos a regra
primeiro e bloqueamos depois.

acl downloads_proibidos url_regex -i \.exe \.torrent \.avi \.mp3


http_access deny downloads_proibidos

A ACL abaixo indica a nossa faixa de rede para que apenas os computadores nessa faixa possam usar o
proxy. Substitua os valores de acordo com sua rede.

acl redelocal src 192.168.254.0/24

Proibindo e liberando acessos finais.


Por fim, vamos criar 3 linhas:

http_access allow localhost


http_access allow redelocal horario
http_access deny all

Na primeira linha liberamos o acesso total para o servidor onde est o Squid.
Na segunda linha liberamos o acesso aos computadores da rede local de acordo com o horrio
determinado na acl horario.
E na terceira linha proibimos o resto, ou seja, proibimos que pessoas fora da nossa rede usem o nosso
proxy.

Exemplo de squid.conf
Abaixo vai um exemplo de Squid j configurado, com base no que foi explicado acima:

# Configurao Squid
# Configurado por: Equipe de Informtica
# Mensagens de erro em Portugus
error_directory /usr/share/squid/errors/Portuguese
# Porta do Squid
http_port 3128
# Nome do servidor
visible_hostname ServLinux
# Cache
cache_mem 700 MB
maximum_object_size_in_memory 32 KB
maximum_object_size 1024 MB
minimum_object_size 0 KB
cache_swap_low 90
cache_swap_high 95
cache_dir ufs /etc/squid/cache 30000 16 256
# Logs de acesso
access_log /var/log/squid/access.log squid
# Regras acl padro
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl SSL_ports port 443 563 873
acl Safe_ports port 80 # http

acl Safe_ports port 21 # ftp


acl Safe_ports port 443 563 873 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 901 # swat
acl Safe_ports port 1025-65535 # portas altas
acl purge method PURGE
acl CONNECT method CONNECT
# Permisses e bloqueios padro
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
# Bloqueio de sites por URL
acl sites_proibidos url_regex -i "/etc/squid/sites_proibidos"
http_access deny sites_proibidos
# Bloqueio de downloads por extenso
acl downloads_proibidos url_regex -i \.exe \.torrent \.avi \.mp3
http_access deny downloads_proibidos
# Permisso rede local e servidor
acl redelocal src 192.168.254.0/24
http_access allow localhost
http_access allow redelocal
# Bloqueio de usurios fora da rede
http_access deny all

You might also like