• Nenhum resultado encontrado

Projeto e Configuração de Firewalls. Squid. Requisitos de hardware

N/A
N/A
Protected

Academic year: 2021

Share "Projeto e Configuração de Firewalls. Squid. Requisitos de hardware"

Copied!
10
0
0

Texto

(1)

Projeto e Configura¸c˜ao de Firewalls

Squid Proxy

Prof. Emerson Ribeiro de Mello, Dr. mello@ifsc.edu.br

P´os-Gradua¸c˜ao em Redes de Computadores e Seguran¸ca de Sistemas UNIDAVI

Dezembro de 2010

Squid

I Trata-se de um proxy e cache para navega¸c˜ao web, atendendo protocolos como HTTP, HTTPS e FTP

I proxy == procurador. Aquele que atua em favor de um outro

I cache == esconder. Local de armazenamento que cont´em

dados que o computador precisar´a usar em curto tempo ou usa com mais frequˆencia

Funcionamento

Squid atua como um agente, recebendo pedidos dos clientes e repassando estes para os servidores na Internet

I Armazena uma c´opia em disco do conte´udo transferido e faz uso desta c´opia em pedidos subsequentes para um mesmo conte´udo

Requisitos de hardware

I Disco r´ıgido

I Velocidade de acesso – SAS ou SATA (taxa at´e 6Gb/s) I Espa¸co de armazenamento – Ex: dez usu´arios com consumo

m´edio di´ario de 10Mb ir´a consumir um espa¸co no cache de 1 Gb em apenas 10 dias

I Mem´oria RAM

I Squid guarda em mem´oria a tabela com os objetos armazenados no cache

I Obter tais informa¸c˜oes no swap em disco resulta em uma maior demora

I Poder de processamento

I Squid quando usado somente como cache, sem controle de acesso, n˜ao exige muito CPU

I Ferramentas de relat´orios de acesso consomem intensivamente

(2)

Instalando o Squid – Ubuntu 10.10

I Instala¸c˜ao

1 sudo apt-get install squid3 apache2-utils

I Configura¸c˜ao b´asica: /etc/squid3/squid.conf

2 # Nome da maquina

3 visible_hostname webproxy.empresa.com.br

4 # Ouvira nas portas 3128

5 http_port 3128

6 # Local onde armazenara o cache (tamanhoMb Level1_dir Level2_dir)

7 cache_dir ufs /var/spool/squid34000 16 256

8 # tamanho maximo de um unico objeto no cache em disco

9 maximum_object_size 16384KB

10 # Registro de acessos

11 access_log /var/log/squid3/access.log squid

12 # Inclua a linha abaixo antes de'http_acess deny all' ja' presente no arquivo padrao

13 http_access allow localnet

Laborat´orio 1 – Squid b´asico

I Edite o arquivo /etc/squid3/squid.conf e configure as diretivas apresentadas na lˆamina anterior

I Reinicie o servi¸co (sudo /etc/init.d/squid3 restart) I Configure o seu navegador web para apontar para a m´aquina

onde est´a rodando o Squid

I Monitore o log do Squid enquanto navega pela web

I tail -f /var/log/squid3/access.log

Listas de Controle de Acesso – ACLs

I Usadas para indicar quais m´aquinas poder˜ao fazer uso do servi¸co de cache

I Ex: Evitar que usu´arios maliciosos fa¸cam uso do seu servi¸co para atacar um terceiro

I Usadas para indicar quais s´ıtios web poder˜ao ser acessados

I Ex: N˜ao ´e permitido acessar redes sociais

I Usadas para indicar palavras proibidas nos s´ıtios web

I Ex: N˜ao ´e permitido acessar p´aginas que contenham a palavra ‘sexo’

I Usadas para indicar hor´arios permitidos ou proibidos para navegar na web

I Ex: As redes sociais podem ser acessadas somente no hor´ario do almo¸co

(3)

Sintaxe das ACLs no Squid

I O controle de acesso ´e feito atrav´es da combina¸c˜ao dos elementos classes e operadores determinando se o acesso dever´a ser permitido ou negado

I As classes indicam as caracter´ısticas da tentativa de acesso e o

operador (Ex: http_access) realiza o bloqueio ou a libera¸c˜ao

14 # classificando a origem 192.168.1.0/24 com o nome rede_local

15 # acl nome tipo (valor|"arquivo") [valor2] [valor3] ["arquivo2"]

16 acl rede_local src 192.168.1.0/24

17 # liberando o acesso para a rede_local

18 http_access allow rede_local

19 # bloqueando para o restante

20 http_access deny all

Pol´ıtica padr˜ao: NEGAR

Quando o Squid recebe uma tentativa de acesso, este analisa as regras sequencialmente. ´E desejado que a linha “http_access deny all” sempre esteja presente e ap´os as demais regras

Alguns tipos de ACL no Squid

Tipo Descri¸c˜ao Exemplo

src Endere¸co IP de origem acl rede local src 192.168.1.0/24 dst Endere¸co IP de destino acl ifsc dst 200.135.37.64/26 port Porta contida na URL acl portas port 80 443 maxconn N´umero m´aximo de conex˜oes

de um mesmo IP

acl conexoes maxconn 5

proxy_auth Usu´ario autenticado acl usuarios proxy auth REQUIRED max_user_ip N´umero m´aximo de IPs que

um usu´ario pode se autenti-car

acl unico max user ip 1

rep_mime_type Tipo do conte´udo da res-posta

acl video rep mime type video/mpeg video time Hor´ario do acesso acl almoco time MTWHF 12:00-14:00 url_regex Express˜ao regular aplicada `a

URL

acl orkut url regex .*orkut.* urlpath_regex Express˜ao regular aplicada `a

URI

acl fig urlpath regex -i (gif|jpg|png) srcdomain Dom´ınio de origem acl contabil srcdomain .cont.empresa.br dstdom_regex Express˜ao regular ao dom´ınio

de destino

acl ifsc dstdom regex (ifsc|cefetsc)\.edu\.br

I http://www.squid-cache.org/Doc/config/acl/

ACL – Exemplo 1

Nota

Fa¸ca uma c´opia de seguran¸ca do arquivo squid.conf antes de iniciar este exemplo.

1. Somente m´aquinas da rede 192.168.1.0/24 podem usar o proxy

2. N˜ao ´e poss´ıvel acessar conte´udos hospedados nos servidores do Youtube

I As restri¸c˜oes s´o devem ser aplicadas de 2ª a 6ª das

08:00-12:00 e das 14:00-18:00

I A m´aquina do gerente (192.168.1.100) pode acessar o Youtube

a qualquer momento

3. Configure como proxy transparente

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

(4)

ACL – Exemplo 1 (c´odigo)

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

24 http_port 3128 transparent# procure por essa linha no arquivo

25 visible_hostname ubuntu-squid-proxy

26 cache_mgr sysadmin@empresa.com.br

28 acl rede_local src 192.168.1.0/24

29 acl maquina_gerente src 192.168.1.100

30 # Sunday, Monday, Tuesday, Wednesday, tHursday, Friday, sAturday

31 acl matutinotime MTWHF 8:00-12:00

32 acl vespertino time MTWHF 14:00-18:00

33 acl youtube dstdomain.youtube.com .googlevideo.com .ytimg.com

35 http_access allow redelocal!matutino !vespertino youtube

36 http_access allow redelocal!youtube

37 http_access deny all

ACL – Exemplo 2

I N˜ao permita o acesso a s´ıtios de pornografia,

compartilhamento de arquivos, v´ıdeos e garanta o acesso a s´ıtios confi´aveis

Arquivo texto deve conter uma URL ou uma palavra por linha

bloqueados.txt 38 megaupload.com 39 sexo 40 batepapo liberados.txt 41 .uol.com.br 42 www.folha.com.br 43 www.g1.com.br /etc/squid3/squid.conf

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

45 acl liberados url_regex -i"/etc/squid3/liberados.txt"

46 acl flash_video url_regex \.flv$

47 http_access deny flash_video

48 http_access deny bloqueados!liberados

Bloqueando conte´udo

I Fluxos de m´ıdia

49 # Detectando o tipo do conteudo que esta' sendo baixado 50 # rep_mime_type deve ser usada com http_reply_access

51 acl media rep_mime_type x-ms-asf # Windows Media Player

52 acl media rep_mime_type video/flv video/x-flv # Flash Video

53 acl media rep_mime_type application/x-shockwave-flash

54 # Barrando pela extensao do conteudo

55 acl mediapr urlpath_regex\.(afx|asf|flv|swf)(\?.*)?$

57 http_access deny mediapr

58 http_reply_access deny media # resposta ao pedido do cliente

I MSN Messenger

59 acl msn urlpath_regex-i gateway.dll

60 acl msnd dstdomain messenger.msn.com gateway.messenger. hotmail.com

61 acl msn1 req_mime_type application/x-msn-messenger

63 http_access deny msnd

64 http_access deny msn

(5)

Fazendo cache de conte´udo dinˆamico: Youtube

66 # Mantendo arquivos .flv em cache

67 refresh_pattern -i \.flv$ 10080 90% 999999

69 # Videos tendem a ser grandes. Aumentando o tamanho maximo dos objetos em cache

70 maximum_object_size 40MB

72 # Garantindo que o conteudo do dominio sera' guardado em cache 73 acl youtube dstdomain.youtube.com

74 cache allow youtube

Personaliza¸c˜ao das p´aginas de erro

I O pacote squid-langpack apresenta um conjunto de p´aginas de aviso em diversas l´ınguas

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

I /etc/squid3/errorpage.css

I No arquivo /etc/squid3/squid.conf

76 # Diretorio com os arquivos de erros

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

Exerc´ıcio: Personalizando uma p´agina de erro

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

Autentica¸c˜ao de usu´arios

I O Squid permite que somente usu´arios autenticados fa¸cam uso do servi¸co

M´etodo Descri¸c˜ao

LDAP Lightweight Directory Access Protocol

NCSA Arquivo com usu´ario e senha no formato do NCSA MSNT Dom´ınio Windows NT

PAM M´odulos PAM do Unix

SMB Servidor SMB (Windows ou Samba) http:

(6)

Autentica¸c˜ao de usu´arios – NCSA

I Configura¸c˜ao no squid.conf

78 # Nao deixe como proxy transparente

79 http_port 3128

81 auth_param basic program /usr/lib/squid3/ncsa_auth

82 /etc/squid3/usuarios

83 acl usuarios proxy_auth REQUIRED

84 # exigindo autenticacao somente para alguns sitios

85 # acl usuarios proxy_auth REQUIRED /etc/squid3/sitios-autenticados

87 http_access allow usuarios

I Cria¸c˜ao de usu´arios com o aplicativo htpasswd

88 # criando a base e adicionando usuario 'aluno'

89 htpasswd -c usuarios aluno

90 # adicionando outro usuario

91 htpasswd usuarios professor

Relat´orios de acesso – SARG

I Squid Analysis Report Generator ´e uma ferramenta

desenvolvida por um brasileiro que consolida as informa¸c˜oes de acesso geradas pelo Squid em uma p´agina HTML I O SARG apresenta as seguintes informa¸c˜oes

I Quais usu´arios acessaram quais s´ıtios web

I O hor´ario do acesso

I Quantos bytes foram baixados

I Quais s˜ao os s´ıtios web mais acessados

I Quais os usu´arios que mais navegam, bem como os hor´arios de

mais acesso

NOTA

Se optar por usar o SARG em uma empresa/universidade ´e imprescind´ıvel que os usu´arios sejam avisados que o acesso deles a web est´a sendo monitorado

SARG – Configura¸c˜ao /etc/sarg/sarg.conf

92 # Linguagem da pagina HTML

93 language Portuguese

94 # Local do access_log gerado pelo Squid

95 access_log /var/log/squid3/access.log

96 # Titulo da pagina HTML com os relatorios

97 title "Relatorio de Acesso"

98 # Local onde serao geradas as paginas

99 output_dir /var/www/relatorio

100 # Usuarios que nao terao seus dados de acesso publicados

101 exclude_users /etc/sarg/exclude_users

102 # Maquinas que nao terao seus dados de acesso publicados

103 exclude_hosts /etc/sarg/exclude_hosts

104 # Quantos relatorios antigos devem ser mantidos no diretorio

105 lastlog10

106 # Formato da data (dd/mm/yy - e )

107 date_format e

108 # Tabela de mapeamento de IPs em nomes de usuario. Ex: 192.168.1.10 joao

109 usertab/etc/sarg/usertab

I Executando o sarg

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

(7)

Shell Script para Relat´orios di´arios ou semanais

111 #!/bin/bash

112 SAIDA=/var/www/relatorio

113 SARG=`which sarg`

114 if [ $# -ne 1 ]; then

115 echo -e "Sintaxe errada.\n Informe d para diario e s para semanal" 116 echo "Exemplo: $0 d" 117 exit 1 118 fi 119 case $1 in 120 d) 121 DIR=$SAIDA/diario

122 PERIODO=$(date --date"1 day ago" +%d/%m/%Y)

123 PERIODO=$PERIODO-$PERIODO

124 ;;

125 s)

126 DIR=$SAIDA/semanal

127 HOJE=$(date --date "1 day ago" +%d/%m/%Y)

128 PERIODO=$(date --date"1 week ago" +%d/%m/%Y)`echo "-$HOJE"`

129 ;;

130 esac

132 mkdir -p $DIR

133 $SARG -d $PERIODO -o $DIR

SARG – Configura¸c˜ao

I Aplicativo /usr/sbin/sarg-reports e CRONTAB

I /etc/cron.daily, /etc/cron.weekly e /etc/cron.monthly I /etc/sarg/sarg-reports.conf 134 SARG=/usr/bin/sarg 135 CONFIG=/etc/sarg/sarg.conf 136 HTMLOUT=/var/www/relatorio

137 PAGETITLE="Relatorio de acesso"

138 LOGOIMG=/relatorio/images/sarg.png

139 LOGOLINK="http://$(hostname)/"

140 DAILY=Diario

141 WEEKLY=Semanal

142 MONTHLY=Mensal

143 EXCLUDELOG1="SARG: No records found"

144 EXCLUDELOG2="SARG: End"

NOTA

Os relat´orios s˜ao compostos de muitos arquivos html e mantˆe-los por grandes per´ıodos pode esgotar o espa¸co em disco ou ainda o n´umero de inodes da parti¸c˜ao. (Para verificar inodes: df -i)

Controle de acesso ao relat´orio do SARG

I O pr´oprio servidor Apache HTTP permite realizar controle de acesso em um diret´orio espec´ıfico

I Pode-se colocar na configura¸c˜ao do diret´orio em

/etc/apache2ou ainda adicionando um arquivo .htaccess no diret´orio que se deseja proteger

I Para usar o .htaccess ´e necess´ario deixar as configura¸c˜oes globais do diret´orio no Apache como AllowOverride All

145 <Files .htaccess>

146 order allow,deny

147 deny from all

148 </Files>

150 # Arquivo de senhas NCSA (gerado com aplicativo htpasswd)

151 AuthUserFile/var/www/usuarios-sarg

152 AuthName "Acesso Restrito"

153 AuthType Basic

(8)

Monitorando a sa´ude do servidor com o Munin

I Munin ´e uma ferramenta para monitoramento de recursos disponibilizados em uma rede

I E poss´ıvel monitorar diversas m´aquinas atrav´es de gr´aficos em´ uma ´unica p´agina web

I A m´aquina master conecta em todas as demais m´aquinas definidas como node

I Faz uso da ferramenta RRDTool1

I Baseado no conceito de instala¸c˜ao simplificada e modular

I Plugins podem ser adicionados e removidos para monitorar os mais diferentes servi¸cos

I Plugins podem ser escritos em qualquer linguagem

1http://oss.oetiker.ch/rrdtool

Munin – Configura¸c˜ao

I Master

155 apt-get install munin apache2

156 # Arquivo: /etc/munin/apache2.conf

157 # Trocar a linha Allow from localhost 127.0.0.0/8 ::1 por

158 Allow from all

159 # Arquivo: /etc/munin/munin.conf

160 # Trocar a linha: [localhost.localdomain] por

161 [nome-da-tua-maquina]

162 # Acrescentar as seguintes linhas para cada maquina que deseje monitorar

163 [nome-da-outra-maquina]

164 address192.168.1.10# Coloque o IP da maquina node

165 use_node_name yes

I Node

166 apt-get install munin-node

167 # Arquivo: /etc/munin/munin-node

168 # Permitindo que a maquina master (192.168.1.1) acesse o munin

169 allow ^192\.168\.1\.1$

Gr´aficos Munin – Espa¸co em Disco (dia)

(9)

Gr´aficos Munin – Espa¸co em Disco (ano)

/var60% ocupado n˜ao ´e t˜ao preocupante (Em junho houve uma interven¸c˜ao do administrador)

Gr´aficos Munin – Uso de inodes (dia)

(10)

Gr´aficos Munin – Squid pedidos

Gr´aficos Munin – Squid tr´afego

Conclus˜oes

I O Squid atuando como cache consegue diminuir o tr´afego externo

I Bem ´util para arquivos grandes e que s˜ao baixados por diversas m´aquinas da rede local

I Atualiza¸c˜oes de antiv´ırus, de softwares e dos sistemas

operacionais

I O Squid combinado com um firewall (camada 3 e 4) consegue evitar acesso a s´ıtios web indesejados, indicar o tipo de acesso para cada usu´ario e a restri¸c˜ao temporal para o acesso

I Aplicativos como o SquidGuard e Dansguardian apresentam filtros ainda mais poderosos

I E poss´ıvel combinar o Squid com Antiv´ırus (Ex: Clamav)´ I Ferramentas de monitoramento e de registro de acessos s˜ao

´

uteis para verificar a sa´ude do Squid, auxiliando no aprimoramento dos filtros

I A mente ociosa do usu´ario ´e ferramenta contra o

administrador, feche uma porta e ele achar´a mais 10 para burlar o sistema (Ex: OpenProxy)

Referências

Documentos relacionados

Profissionais especializados criam novos métodos para minimizar os impactos causados pelo ambiente de trabalho. Torna-se primordial manter a Qualidade de Vida no

Além de serem gravados no cartão, os dados são transmitidos através de um módulo de rádio frequência transmissor para um receptor do modelo, onde há um outro PIC capaz de

São muitos os problemas ambientais causados pelo crescimento urbano, o poder público não acompanha esse crescimento com investimentos em obras de infraestrutura, são ocupados

Após ter recebido o auto de infração pelo fiscal do trabalho, a empresa poderá recorrer ao Delegado Regional do Trabalho local, no prazo de 10 dias , para apresentar sua

Após o encerramento da etapa de lances da Sessão Pública, o Pregoeiro poderá encaminhar, pelo Sistema eletrônico, contraproposta ao licitante que tenha

A revolta do 1º de Dezembro e a guerra da Restauração Motim Restauração Cortes - Observação e legendagem de imagens; - Análise de transparências; - Elaboração

As referências teóricas, as atividades problematizadoras realizadas e as informações obtidas durante as etapas da pesquisa evidenciam diversos obstáculos para o ensino e a

As relações hídricas das cultivares de amendoim foram significativamente influenciadas pela a deficiência hídrica, reduzindo o potencial hídrico foliar e o conteúdo relativo de