Sei sulla pagina 1di 36

Projeto e Configuracao de Firewalls

Squid Proxy

Prof. Emerson Ribeiro de Mello, Dr.


mello@ifsc.edu.br
P
os-Graduac
ao em Redes de Computadores e Seguranca de Sistemas
UNIDAVI

Dezembro de 2010

Prof. Emerson R. de Mello (IFSC)

Projeto e Configurac
ao de Firewalls

Dezembro de 2010

1 / 30

Squid

Trata-se de um proxy e cache para navegacao web, atendendo


protocolos como HTTP, HTTPS e FTP
proxy == procurador. Aquele que atua em favor de um outro
cache == esconder. Local de armazenamento que contem dados que o
computador precisara usar em curto tempo ou usa com mais frequencia

Funcionamento
Squid atua como um agente, recebendo pedidos dos clientes e repassando
estes para os servidores na Internet
Armazena uma copia em disco do conte
udo transferido e faz uso
desta copia em pedidos subsequentes para um mesmo conte
udo

Prof. Emerson R. de Mello (IFSC)

Projeto e Configurac
ao de Firewalls

Dezembro de 2010

2 / 30

Requisitos de hardware

Disco rgido
Velocidade de acesso SAS ou SATA (taxa ate 6Gb/s)
Espaco de armazenamento Ex: dez usuarios com consumo medio
diario de 10Mb ira consumir um espaco no cache de 1 Gb em apenas
10 dias

Mem
oria RAM
Squid guarda em mem
oria a tabela com os objetos armazenados no
cache
Obter tais informac
oes no swap em disco resulta em uma maior demora

Poder de processamento
Squid quando usado somente como cache, sem controle de acesso, nao
exige muito CPU
Ferramentas de relat
orios de acesso consomem intensivamente o CPU

Prof. Emerson R. de Mello (IFSC)

Projeto e Configurac
ao de Firewalls

Dezembro de 2010

3 / 30

Instalando o Squid Ubuntu 10.10


Instalacao
1

sudo apt-get install squid3 apache2-utils

Configuracao basica: /etc/squid3/squid.conf


2
3
4
5
6
7
8
9
10
11
12
13

# Nome da maquina
visible_hostname webproxy.empresa.com.br
# Ouvira nas portas 3128
http_port 3128
# Local onde armazenara o cache (tamanhoMb Level1_dir Level2_dir)
cache_dir ufs /var/spool/squid3 4000 16 256
# tamanho maximo de um unico objeto no cache em disco
maximum_object_size 16384 KB
# Registro de acessos
access_log /var/log/squid3/access.log squid
# Inclua a linha abaixo antes de 'http_acess deny all' ja' presente no
arquivo padrao
http_access allow localnet

Prof. Emerson R. de Mello (IFSC)

Projeto e Configurac
ao de Firewalls

Dezembro de 2010

4 / 30

Laboratorio 1 Squid basico

Edite o arquivo /etc/squid3/squid.conf e configure as diretivas


apresentadas na lamina anterior
Reinicie o servico (sudo /etc/init.d/squid3 restart)
Configure o seu navegador web para apontar para a maquina onde
esta rodando o Squid
Monitore o log do Squid enquanto navega pela web
tail -f /var/log/squid3/access.log

Prof. Emerson R. de Mello (IFSC)

Projeto e Configurac
ao de Firewalls

Dezembro de 2010

5 / 30

Listas de Controle de Acesso ACLs

Usadas para indicar quais maquinas poderao fazer uso do servico de


cache
Ex: Evitar que usuarios maliciosos facam uso do seu servico para atacar
um terceiro

Prof. Emerson R. de Mello (IFSC)

Projeto e Configurac
ao de Firewalls

Dezembro de 2010

6 / 30

Listas de Controle de Acesso ACLs

Usadas para indicar quais maquinas poderao fazer uso do servico de


cache
Ex: Evitar que usuarios maliciosos facam uso do seu servico para atacar
um terceiro

Usadas para indicar quais stios web poderao ser acessados


Ex: Nao e permitido acessar redes sociais

Prof. Emerson R. de Mello (IFSC)

Projeto e Configurac
ao de Firewalls

Dezembro de 2010

6 / 30

Listas de Controle de Acesso ACLs

Usadas para indicar quais maquinas poderao fazer uso do servico de


cache
Ex: Evitar que usuarios maliciosos facam uso do seu servico para atacar
um terceiro

Usadas para indicar quais stios web poderao ser acessados


Ex: Nao e permitido acessar redes sociais

Usadas para indicar palavras proibidas nos stios web


Ex: Nao e permitido acessar paginas que contenham a palavra sexo

Prof. Emerson R. de Mello (IFSC)

Projeto e Configurac
ao de Firewalls

Dezembro de 2010

6 / 30

Listas de Controle de Acesso ACLs

Usadas para indicar quais maquinas poderao fazer uso do servico de


cache
Ex: Evitar que usuarios maliciosos facam uso do seu servico para atacar
um terceiro

Usadas para indicar quais stios web poderao ser acessados


Ex: Nao e permitido acessar redes sociais

Usadas para indicar palavras proibidas nos stios web


Ex: Nao e permitido acessar paginas que contenham a palavra sexo

Usadas para indicar horarios permitidos ou proibidos para navegar na


web
Ex: As redes sociais podem ser acessadas somente no horario do
almoco

Prof. Emerson R. de Mello (IFSC)

Projeto e Configurac
ao de Firewalls

Dezembro de 2010

6 / 30

Sintaxe das ACLs no Squid


O controle de acesso e feito atraves da combinacao dos elementos
classes e operadores determinando se o acesso devera ser permitido
ou negado
As classes indicam as caractersticas da tentativa de acesso e o
operador (Ex: http_access) realiza o bloqueio ou a liberacao
14
15
16
17
18
19
20

# classificando a origem 192.168.1.0/24 com o nome rede_local


# acl nome tipo (valor|"arquivo") [valor2] [valor3] ["arquivo2"]
acl rede_local src 192.168.1.0/24
# liberando o acesso para a rede_local
http_access allow rede_local
# bloqueando para o restante
http_access deny all

Poltica padrao: NEGAR


Quando o Squid recebe uma tentativa de acesso, este analisa as regras
desejado que a linha http_access deny all
sequencialmente. E
sempre esteja presente e ap
os as demais regras
Prof. Emerson R. de Mello (IFSC)

Projeto e Configurac
ao de Firewalls

Dezembro de 2010

7 / 30

Alguns tipos de ACL no Squid


Tipo
src
dst
port
maxconn
proxy_auth
max_user_ip
rep_mime_type
time
url_regex
urlpath_regex
srcdomain
dstdom_regex

Descric
ao
Endereco IP de origem
Endereco IP de destino
Porta contida na URL
N
umero m
aximo de conex
oes de
um mesmo IP
Usu
ario autenticado
N
umero m
aximo de IPs que um
usu
ario pode se autenticar
Tipo do conte
udo da resposta
Hor
ario do acesso
Express
ao regular aplicada `
a
URL
Express
ao regular aplicada `
a URI
Domnio de origem
Express
ao regular ao domnio de
destino

Exemplo
acl rede local src 192.168.1.0/24
acl ifsc dst 200.135.37.64/26
acl portas port 80 443
acl conexoes maxconn 5
acl usuarios proxy auth REQUIRED
acl unico max user ip 1
acl video rep mime type video/mpeg video
acl almoco time MTWHF 12:00-14:00
acl orkut url regex .*orkut.*

acl fig urlpath regex -i (gif|jpg|png)


acl contabil srcdomain .cont.empresa.br
acl ifsc dstdom regex (ifsc|cefetsc)\.edu\.br

http://www.squid-cache.org/Doc/config/acl/
Prof. Emerson R. de Mello (IFSC)

Projeto e Configurac
ao de Firewalls

Dezembro de 2010

8 / 30

ACL Exemplo 1
Nota
Faca uma copia de seguranca do arquivo squid.conf antes de iniciar este
exemplo.
1
2

Somente maquinas da rede 192.168.1.0/24 podem usar o proxy


Nao e possvel acessar conte
udos hospedados nos servidores do
Youtube
As restric
oes s
o devem ser aplicadas de 2 a 6 das 08:00-12:00 e das
14:00-18:00
A maquina do gerente (192.168.1.100) pode acessar o Youtube a
qualquer momento

21

Configure como proxy transparente


iptables -t nat -A PREROUTING -i $DEV_LAN -p TCP --dport 80 -j REDIRECT
--to-port 3128

Prof. Emerson R. de Mello (IFSC)

Projeto e Configurac
ao de Firewalls

Dezembro de 2010

9 / 30

ACL Exemplo 1 (codigo)

22

# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS

24

http_port 3128 transparent # procure por essa linha no arquivo


visible_hostname ubuntu-squid-proxy
cache_mgr sysadmin@empresa.com.br

25
26
28
29
30
31
32
33
35
36
37

acl rede_local src 192.168.1.0/24


acl maquina_gerente src 192.168.1.100
# Sunday, Monday, Tuesday, Wednesday, tHursday, Friday, sAturday
acl matutino time MTWHF 8:00-12:00
acl vespertino time MTWHF 14:00-18:00
acl youtube dstdomain .youtube.com .googlevideo.com .ytimg.com
http_access allow redelocal !matutino !vespertino youtube
http_access allow redelocal !youtube
http_access deny all

Prof. Emerson R. de Mello (IFSC)

Projeto e Configurac
ao de Firewalls

Dezembro de 2010

10 / 30

ACL Exemplo 2
Nao permita o acesso a stios de pornografia, compartilhamento de
arquivos, vdeos e garanta o acesso a stios confiaveis

Arquivo texto deve conter uma URL ou uma palavra por linha
bloqueados.txt
38
39
40

liberados.txt

megaupload.com
sexo
batepapo

41
42
43

.uol.com.br
www.folha.com.br
www.g1.com.br

/etc/squid3/squid.conf
44
45
46
47
48

acl bloqueados url_regex -i "/etc/squid3/bloqueados.txt"


acl liberados url_regex -i "/etc/squid3/liberados.txt"
acl flash_video url_regex \.flv$
http_access deny flash_video
http_access deny bloqueados !liberados

Prof. Emerson R. de Mello (IFSC)

Projeto e Configurac
ao de Firewalls

Dezembro de 2010

11 / 30

Bloqueando conteudo
Fluxos de mdia
49
50
51
52
53
54
55
57
58

# Detectando o tipo do conteudo que esta' sendo baixado


# rep_mime_type deve ser usada com http_reply_access
acl media rep_mime_type x-ms-asf # Windows Media Player
acl media rep_mime_type video/flv video/x-flv # Flash Video
acl media rep_mime_type application/x-shockwave-flash
# Barrando pela extensao do conteudo
acl mediapr urlpath_regex \.(afx|asf|flv|swf)(\?.*)?$
http_access deny mediapr
http_reply_access deny media # resposta ao pedido do cliente

MSN Messenger
59
60
61
63
64
65

acl msn urlpath_regex -i gateway.dll


acl msnd dstdomain messenger.msn.com gateway.messenger.hotmail.com
acl msn1 req_mime_type application/x-msn-messenger
http_access deny msnd
http_access deny msn
http_access deny msn1

Prof. Emerson R. de Mello (IFSC)

Projeto e Configurac
ao de Firewalls

Dezembro de 2010

12 / 30

Fazendo cache de conteudo dinamico: Youtube

66
67
69
70
72
73
74

# Mantendo arquivos .flv em cache


refresh_pattern -i \.flv$ 10080 90% 999999
# Videos tendem a ser grandes. Aumentando o tamanho maximo dos objetos em
cache
maximum_object_size 40 MB
# Garantindo que o conteudo do dominio sera' guardado em cache
acl youtube dstdomain .youtube.com
cache allow youtube

Prof. Emerson R. de Mello (IFSC)

Projeto e Configurac
ao de Firewalls

Dezembro de 2010

13 / 30

Personalizacao das paginas de erro

O pacote squid-langpack apresenta um conjunto de paginas de


aviso em diversas lnguas
/usr/share/squid3/errors/pt-br
/etc/squid3/errorpage.css

No arquivo /etc/squid3/squid.conf
76
77

# Diretorio com os arquivos de erros


error_directory /usr/share/squid3/errors/pt-br

Exerccio: Personalizando uma pagina de erro


Edite a pagina de erro ERR_ACCESS_DENIED e deixe um aviso bem
destacado de acesso negado, inclusive com uma figura.

Prof. Emerson R. de Mello (IFSC)

Projeto e Configurac
ao de Firewalls

Dezembro de 2010

14 / 30

Autenticacao de usuarios

O Squid permite que somente usuarios autenticados facam uso do


servico
M
etodo
LDAP
NCSA
MSNT
PAM
SMB

Descric
ao
Lightweight Directory Access Protocol
Arquivo com usuario e senha no formato do NCSA
Domnio Windows NT
Modulos PAM do Unix
Servidor SMB (Windows ou Samba)

http://wiki.squid-cache.org/ConfigExamples/#Authentication

Prof. Emerson R. de Mello (IFSC)

Projeto e Configurac
ao de Firewalls

Dezembro de 2010

15 / 30

Autenticacao de usuarios NCSA


Configuracao no squid.conf
78
79

# Nao deixe como proxy transparente


http_port 3128

85

auth_param basic program /usr/lib/squid3/ncsa_auth


/etc/squid3/usuarios
acl usuarios proxy_auth REQUIRED
# exigindo autenticacao somente para alguns sitios
# acl usuarios proxy_auth REQUIRED /etc/squid3/sitios-autenticados

87

http_access allow usuarios

81
82
83
84

Criacao de usuarios com o aplicativo htpasswd


88
89
90
91

# criando a base e adicionando usuario 'aluno'


htpasswd -c usuarios aluno
# adicionando outro usuario
htpasswd usuarios professor

Prof. Emerson R. de Mello (IFSC)

Projeto e Configurac
ao de Firewalls

Dezembro de 2010

16 / 30

Relatorios de acesso SARG


Squid Analysis Report Generator e uma ferramenta desenvolvida por
um brasileiro que consolida as informac
oes de acesso geradas pelo
Squid em uma pagina HTML
O SARG apresenta as seguintes informac
oes
Quais usuarios acessaram quais stios web
O horario do acesso
Quantos bytes foram baixados
Quais sao os stios web mais acessados
Quais os usuarios que mais navegam, bem como os horarios de mais
acesso

Prof. Emerson R. de Mello (IFSC)

Projeto e Configurac
ao de Firewalls

Dezembro de 2010

17 / 30

Relatorios de acesso SARG


Squid Analysis Report Generator e uma ferramenta desenvolvida por
um brasileiro que consolida as informac
oes de acesso geradas pelo
Squid em uma pagina HTML
O SARG apresenta as seguintes informac
oes
Quais usuarios acessaram quais stios web
O horario do acesso
Quantos bytes foram baixados
Quais sao os stios web mais acessados
Quais os usuarios que mais navegam, bem como os horarios de mais
acesso

NOTA
Se optar por usar o SARG em uma empresa/universidade e imprescindvel
que os usuarios sejam avisados que o acesso deles a web esta sendo
monitorado
Prof. Emerson R. de Mello (IFSC)

Projeto e Configurac
ao de Firewalls

Dezembro de 2010

17 / 30

SARG Configuracao /etc/sarg/sarg.conf


92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109

# Linguagem da pagina HTML


language Portuguese
# Local do access_log gerado pelo Squid
access_log /var/log/squid3/access.log
# Titulo da pagina HTML com os relatorios
title "Relatorio de Acesso"
# Local onde serao geradas as paginas
output_dir /var/www/relatorio
# Usuarios que nao terao seus dados de acesso publicados
exclude_users /etc/sarg/exclude_users
# Maquinas que nao terao seus dados de acesso publicados
exclude_hosts /etc/sarg/exclude_hosts
# Quantos relatorios antigos devem ser mantidos no diretorio
lastlog 10
# Formato da data (dd/mm/yy - e )
date_format e
# Tabela de mapeamento de IPs em nomes de usuario. Ex: 192.168.1.10 joao
usertab /etc/sarg/usertab

Executando o sarg
110

sarg [-f arquivo-conf] [-d dd/mm/yyyy-dd/mm/yyyy] [-o dir-destino]

Prof. Emerson R. de Mello (IFSC)

Projeto e Configurac
ao de Firewalls

Dezembro de 2010

18 / 30

Shell Script para Relatorios diarios ou semanais


111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
132
133

#!/bin/bash
SAIDA=/var/www/relatorio
SARG=`which sarg`
if [ $# -ne 1 ]; then
echo -e "Sintaxe errada.\n Informe d para diario e s para semanal"
echo "Exemplo: $0 d"
exit 1
fi
case $1 in
d)
DIR=$SAIDA/diario
PERIODO=$(date --date "1 day ago" +%d/%m/%Y)
PERIODO=$PERIODO-$PERIODO
;;
s)
DIR=$SAIDA/semanal
HOJE=$(date --date "1 day ago" +%d/%m/%Y)
PERIODO=$(date --date "1 week ago" +%d/%m/%Y)`echo "-$HOJE"`
;;
esac
mkdir -p $DIR
$SARG -d $PERIODO -o $DIR

Prof. Emerson R. de Mello (IFSC)

Projeto e Configurac
ao de Firewalls

Dezembro de 2010

19 / 30

SARG Configuracao
Aplicativo /usr/sbin/sarg-reports e CRONTAB
/etc/cron.daily, /etc/cron.weekly e /etc/cron.monthly

/etc/sarg/sarg-reports.conf
134
135
136
137
138
139
140
141
142
143
144

SARG=/usr/bin/sarg
CONFIG=/etc/sarg/sarg.conf
HTMLOUT=/var/www/relatorio
PAGETITLE="Relatorio de acesso"
LOGOIMG=/relatorio/images/sarg.png
LOGOLINK="http://$(hostname)/"
DAILY=Diario
WEEKLY=Semanal
MONTHLY=Mensal
EXCLUDELOG1="SARG: No records found"
EXCLUDELOG2="SARG: End"

NOTA
Os relatorios sao compostos de muitos arquivos html e mante-los por
grandes perodos pode esgotar o espaco em disco ou ainda o n
umero de
inodes da particao. (Para verificar inodes: df -i)
Prof. Emerson R. de Mello (IFSC)

Projeto e Configurac
ao de Firewalls

Dezembro de 2010

20 / 30

Controle de acesso ao relatorio do SARG


O proprio servidor Apache HTTP permite realizar controle de acesso
em um diretorio especfico
Pode-se colocar na configuracao do diret
orio em /etc/apache2 ou
ainda adicionando um arquivo .htaccess no diretorio que se deseja
proteger
Para usar o .htaccess e necessario deixar as configuracoes globais do
diret
orio no Apache como AllowOverride All
145
146
147
148
150
151
152
153
154

<Files .htaccess>
order allow,deny
deny from all
</Files>
# Arquivo de senhas NCSA (gerado com aplicativo htpasswd)
AuthUserFile /var/www/usuarios-sarg
AuthName "Acesso Restrito"
AuthType Basic
Require valid-user

Prof. Emerson R. de Mello (IFSC)

Projeto e Configurac
ao de Firewalls

Dezembro de 2010

21 / 30

Monitorando a saude do servidor com o Munin

Munin e uma ferramenta para monitoramento de recursos


disponibilizados em uma rede
possvel monitorar diversas maquinas atraves de graficos em uma
E
u
nica pagina web
A maquina master conecta em todas as demais maquinas definidas
como node
Faz uso da ferramenta RRDTool1

Baseado no conceito de instalacao simplificada e modular


Plugins podem ser adicionados e removidos para monitorar os mais
diferentes servicos
Plugins podem ser escritos em qualquer linguagem

http://oss.oetiker.ch/rrdtool

Prof. Emerson R. de Mello (IFSC)

Projeto e Configurac
ao de Firewalls

Dezembro de 2010

22 / 30

Munin Configuracao
Master
155
156
157
158
159
160
161
162
163
164
165

apt-get install munin apache2


# Arquivo: /etc/munin/apache2.conf
# Trocar a linha Allow from localhost 127.0.0.0/8 ::1 por
Allow from all
# Arquivo: /etc/munin/munin.conf
# Trocar a linha: [localhost.localdomain] por
[nome-da-tua-maquina]
# Acrescentar as seguintes linhas para cada maquina que deseje
monitorar
[nome-da-outra-maquina]
address 192.168.1.10 # Coloque o IP da maquina node
use_node_name yes

Node
166
167
168
169

apt-get install munin-node


# Arquivo: /etc/munin/munin-node
# Permitindo que a maquina master (192.168.1.1) acesse o munin
allow ^192\.168\.1\.1$

Prof. Emerson R. de Mello (IFSC)

Projeto e Configurac
ao de Firewalls

Dezembro de 2010

23 / 30

Graficos Munin Espaco em Disco (dia)


Relatorios gerados pelo SARG sendo armazenados na particao /var

Prof. Emerson R. de Mello (IFSC)

Projeto e Configurac
ao de Firewalls

Dezembro de 2010

24 / 30

Graficos Munin Espaco em Disco (ano)


/var 60% ocupado nao e tao preocupante (Em junho houve uma
intervencao do administrador)

Prof. Emerson R. de Mello (IFSC)

Projeto e Configurac
ao de Firewalls

Dezembro de 2010

25 / 30

Graficos Munin Uso de inodes (dia)

Prof. Emerson R. de Mello (IFSC)

Projeto e Configurac
ao de Firewalls

Dezembro de 2010

26 / 30

Graficos Munin Uso de inodes (ano)

Prof. Emerson R. de Mello (IFSC)

Projeto e Configurac
ao de Firewalls

Dezembro de 2010

27 / 30

Graficos Munin Squid pedidos

Prof. Emerson R. de Mello (IFSC)

Projeto e Configurac
ao de Firewalls

Dezembro de 2010

28 / 30

Graficos Munin Squid trafego

Prof. Emerson R. de Mello (IFSC)

Projeto e Configurac
ao de Firewalls

Dezembro de 2010

29 / 30

Conclusoes
O Squid atuando como cache consegue diminuir o trafego externo
Bem u
til para arquivos grandes e que sao baixados por diversas
maquinas da rede local
Atualizac
oes de antivrus, de softwares e dos sistemas operacionais

Prof. Emerson R. de Mello (IFSC)

Projeto e Configurac
ao de Firewalls

Dezembro de 2010

30 / 30

Conclusoes
O Squid atuando como cache consegue diminuir o trafego externo
Bem u
til para arquivos grandes e que sao baixados por diversas
maquinas da rede local
Atualizac
oes de antivrus, de softwares e dos sistemas operacionais

O Squid combinado com um firewall (camada 3 e 4) consegue evitar


acesso a stios web indesejados, indicar o tipo de acesso para cada
usuario e a restricao temporal para o acesso
Aplicativos como o SquidGuard e Dansguardian apresentam filtros
ainda mais poderosos
possvel combinar o Squid com Antivrus (Ex: Clamav)
E

Prof. Emerson R. de Mello (IFSC)

Projeto e Configurac
ao de Firewalls

Dezembro de 2010

30 / 30

Conclusoes
O Squid atuando como cache consegue diminuir o trafego externo
Bem u
til para arquivos grandes e que sao baixados por diversas
maquinas da rede local
Atualizac
oes de antivrus, de softwares e dos sistemas operacionais

O Squid combinado com um firewall (camada 3 e 4) consegue evitar


acesso a stios web indesejados, indicar o tipo de acesso para cada
usuario e a restricao temporal para o acesso
Aplicativos como o SquidGuard e Dansguardian apresentam filtros
ainda mais poderosos
possvel combinar o Squid com Antivrus (Ex: Clamav)
E

Ferramentas de monitoramento e de registro de acessos sao u


teis para
verificar a sa
ude do Squid, auxiliando no aprimoramento dos filtros
A mente ociosa do usuario e ferramenta contra o administrador, feche
uma porta e ele achara mais 10 para burlar o sistema (Ex: OpenProxy)

Prof. Emerson R. de Mello (IFSC)

Projeto e Configurac
ao de Firewalls

Dezembro de 2010

30 / 30

Potrebbero piacerti anche