Tutorial Squid

6

Click here to load reader

Transcript of Tutorial Squid

Page 1: Tutorial Squid

TUTORIAL DE SQUIDVersão 1

Autora: Juliana Cristina dos SantosEmail: [email protected]

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

Page 2: Tutorial Squid

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

Page 3: Tutorial Squid

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

Page 4: Tutorial Squid

#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ÍTICASacl SSL_ports port 443acl Safe_ports port 80 # httpacl Safe_ports port 21 # ftpacl Safe_ports port 443 # httpsacl Safe_ports port 70 # gopheracl Safe_ports port 210 # waisacl Safe_ports port 1025­65535 # unregistered portsacl Safe_ports port 280 # http­mgmtacl Safe_ports port 488 # gss­httpacl Safe_ports port 591 # filemakeracl Safe_ports port 777 # multiling http

acl redeLocal src 172.16.1.0/24acl ipsBloqueados src 172.16.1.10acl 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_portshttp_access deny ipsBloqueadoshttp_access deny !redeLocalhttp_access allow almoco sitesLiberadosAlmocohttp_access deny sitesBloqueados 

http_access allow all

#­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­# OUTRAS CONFIGURAÇÕEShierarchy_stoplist cgi­bin ?coredump_dir /var/spool/squid3refresh_pattern ^ftp: 1440 20% 10080refresh_pattern ^gopher: 1440 0% 1440refresh_pattern ­i (/cgi­bin/|\?) 0 0% 0refresh_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

Page 5: Tutorial Squid

No arquivo /etc/squid3/etc/bloqueados.txt digite:orkut.comtwitter.comfacebook.comcapricho.abril.com.br

No arquivo /etc/squid3/etc/liberadosNoAlmoco.txt digite:orkut.comfacebook.comtwitter.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 Portugueseaccess_log /var/log/squid3/access.logoutput_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/crontab0 */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

Page 6: Tutorial Squid

sarg – Este agendamento executará o comando “sarg”.

Página 6 de 6