Você está na página 1de 6

TUTORIAL DE SQUID

Versão 1

Autora: Juliana Cristina dos Santos


Email: professora.julianacristina@gmail.com

1. SERVIDOR PROXY

Serviço proxy é um representante do cliente web, que busca na Internet o conteúdo requisitado por este. Desse modo, o
serviço proxy se situa como um intermediário entre o cliente web [navegador] e o serviço web na internet.

Por exemplo, quando determinado cliente solicita alguma página em http://www.es.senai.br, o serviço proxy busca essa
página na Internet e a entrega ao cliente, atendendo à solicitação.

Um serviço proxy normalmente é usado com as seguintes funções:

 Cache: uma vez atendida à solicitação de determinado cliente, o arquivo que foi buscado na Internet é
guardado no cache, então quando o próximo cliente solicitar esse mesmo conteúdo o servidor proxy não
precisará buscar na internet de novo, pois já tem no cache. Isso agiliza o acesso à internet e economiza banda
de dados [link] de acesso à internet;

 Regras de filtragem: como o proxy centraliza as atividades de acesso à internet, basta aplicar filtros de
acesso a conteúdo no serviço proxy que irá afetar a todos os clientes web.

2. PROXY SQUID

Squid é um serviço proxy e daemon cache web. É usado principalmente no acesso HTTP, HTTPS e FTP.

O proxy Squid é popular devido a sua performance, economia e recursos avançados.

3. TOPOLOGIA DE REDE

A partir da topologia utilizada no exercício anterior, sobre iptables, criaremos a seguinte topologia de rede:

Página 1 de 6
Segue na tabela abaixo os sistemas operacionais, e os serviços que serão configurados nas máquinas virtuais:
HOSTNAME SISTEMA OPERACIONAL SERVIÇOS
FW-1 Linux Firewall (iptables) e proxy (Squid)
FW-2 Linux Firewall (iptables) e proxy (Squid)
VM1-1 Linux
VM2-1 Linux
VM2-2 Windows XP

OBS: Os IPs, roteamento, e regras do firewall permanecerão os mesmos do exercício anterior, salvo se for requisitado
alguma alteração.

4. POLÍTICA DO PROXY

Cada rede terá as seguintes políticas de acesso:

 Rede 172.16.1.0/24

Bloqueia sites como orkut.com, facebook.com, twitter.com, entre outros.

Libera alguns sites como facebook.com, entre outros, na hora do almoço.

Bloqueia acesso do que não for da rede local (172.16.1.0/24).

Libera acesso a todos os sites.

 Rede 172.16.2.0/24

 Libera acesso a certos sites (google.com, abril.com, gazetaonline.com.br).

Libera acesso a certos sites (orkut.com, twitter.com) no horário diferente do horário de trabalho.

Bloqueia tudo.

5. INSTALAÇÃO DO PROXY SQUID

Para descobrir se o serviço Squid está instalado, procurar pelo seu script de inicialização em /etc/init.d:

# ls /etc/init.d/ | grep squid

Se não houver saída no comando acima é indicativo de que o serviço Squid não está instalado. Nesse caso, instalar com
o comando apt-get:

# apt­get install squid3 squid3­common

Após instalado, verificar se existem os seguintes arquivos:

Página 2 de 6
# file /etc/init.d/squid3 

/etc/init.d/squid3: POSIX shell script text executable

# file /usr/sbin/squid3 

/usr/sbin/squid3: ELF 64­bit LSB executable, x86­64, version 1 (SYSV), dynamically linked (uses 
shared libs), for GNU/Linux 2.6.15, stripped

# file /etc/squid3/

/etc/squid3/: directory

Onde:

 /etc/init.d/squid é o script de inicialização do serviço squid;

 /usr/sbin/squid é o executável que dará origem ao processo daemon;

 /etc/squid é o diretório de configuração do serviço squid.

6. CONFIGURAÇÃO DO SERVIÇO

Os procedimentos descritos nesta seção devem ser executados no FW-1.

Inicialmente, olhar as configurações de instalação do serviço. Para isso, entrar no diretório /etc/squid:
# cd /etc/squid3/
# ls
errorpage.css  msntauth.conf  squid.conf

O arquivo de configuração do serviço é "squid.conf".


# more squid.conf 

Porém, esse arquivo tem quase 5.000 linhas, então procurar alguma coisa olhando linha a linha não é boa ideia. E
dessas quase 5000 linhas, a maior parte são comentários ou linha em

branco. Desse modo, visualizar o conteúdo do arquivo sem linhas de comentário e sem linhas em

branco ajuda muito, e isso é obtido com o comando abaixo:

# grep ­v "^#" squid.conf | grep ­v "^$" | more

Antes de fazer qualquer alteração no arquivo é recomendável fazer o backup deste, caso seja necessário voltar a
configuração inicial:
# cp squid.conf squid.conf.BKP

Configure as seguintes linhas no arquivo de configuração:


visible_hostname FW1­Proxy
# Nome que é visível nas páginas de erro

http_port 3128 transparent
# Porta de escuta do Squid

#­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­

Página 3 de 6
#CONFIGURAÇÃO DO CACHE

maximum_object_size 20 MB
# Tamanho máximo do objeto em cache

minimum_object_size 0 KB
# Tamanho mínimo do objeto em cache

cache_swap_low 90
# Os objetos mais antigos até a capacidade máxima ficar em 90%

cache_swap_high 95
# Quando o cache em disco atingir 95% de sua capacidade máxima, o Squid automaticamente irá apagar 
arquivos

cache_dir ufs /var/spool/squid3 100 16 256
# Diretório onde está armazenado o cache de disco, tamanho do cache em MB, quantidade de diretório 
e subdiretórios

#­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
# ACLS E POLÍTICAS
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025­65535 # unregistered ports
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 redeLocal src 172.16.1.0/24
acl ipsBloqueados src 172.16.1.10
acl sitesBloqueados url_regex ­i "/etc/squid3/etc/bloqueados.txt"
acl sitesLiberadosAlmoco url_regex ­i "/etc/squid3/etc/liberadosNoAlmoco.txt"
acl almoco time MTWHF 20:20­20:30

http_access deny !Safe_ports
http_access deny ipsBloqueados
http_access deny !redeLocal
http_access allow almoco sitesLiberadosAlmoco
http_access deny sitesBloqueados 

http_access allow all

#­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
# OUTRAS CONFIGURAÇÕES
hierarchy_stoplist cgi­bin ?
coredump_dir /var/spool/squid3
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern ­i (/cgi­bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320

Onde:
Sigla Dia
S Domingo
M segunda−feira
T terça−feira
W quarta−feira
H quinta−feira
F sexta−feira
A sábado

Página 4 de 6
No arquivo /etc/squid3/etc/bloqueados.txt digite:
orkut.com
twitter.com
facebook.com
capricho.abril.com.br

No arquivo /etc/squid3/etc/liberadosNoAlmoco.txt digite:


orkut.com
facebook.com
twitter.com

No script do firewall, que já existe em /etc/init.d/firewall.sh, adicione a seguinte linha:


iptables ­t nat ­A PREROUTING ­i eth1 ­p tcp –dport 80 –j REDIRECT –to­port 3128

Onde:

 eth1, é a interface que liga o firewall FW-1 a rede interna.

7. SARG

Instale o sarg com o seguinte comando:


# apt­get install sarg apache2

No arquivo /etc/sarg/sarg.conf altere as linhas abaixo para os valores:


language Portuguese
access_log /var/log/squid3/access.log
output_dir /var/www/html/squid­reports

Execute o sarg com o comando:


# sarg

Na máquina real acesse:

http://IP_EXTERNO_DO_FW1/html/squid-reports/

Onde:

 IP_EXTERNO_DO_FW1, deve ser substitúido pelo IP externo (obtido via DHCP) do FW1.

Para automatizar a geração de relatórios do sarg, edite o arquivo /etc/crontab


0 */4 * * * root sarg

Onde:

 0 – este agendamento será executado quando os minutos forem “0”.

 */4 – este agendamento será executado a cada 4 horas.

 root - Este agendamento será executado pelo usuário root.

Página 5 de 6
 sarg – Este agendamento executará o comando “sarg”.

Página 6 de 6

Você também pode gostar