• Nenhum resultado encontrado

Projeto e Configuração de Firewalls

N/A
N/A
Protected

Academic year: 2021

Share "Projeto e Configuração de Firewalls"

Copied!
36
0
0

Texto

(1)

Projeto e Configura¸c˜

ao de Firewalls

Squid Proxy

Prof. Emerson Ribeiro de Mello, Dr. [email protected]

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

(2)

Squid

Trata-se de um proxy e cache para navega¸c˜ao web, atendendo

protocolos como HTTP, HTTPS e FTP

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

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

Armazena uma c´opia em disco do conte´udo transferido e faz uso

(3)

Requisitos de hardware

Disco r´ıgido

Velocidade de acesso – SAS ou SATA (taxa at´e 6Gb/s)

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

Mem´oria RAM

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

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

Poder de processamento

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

(4)

Instalando o Squid – Ubuntu 10.10

Instala¸c˜ao

1 sudo apt-get install squid3 apache2-utils

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/squid3 4000 16 256

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

9 maximum_object_size 16384 KB

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

(5)

Laborat´

orio 1 – Squid b´

asico

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

Reinicie o servi¸co (sudo /etc/init.d/squid3 restart)

Configure o seu navegador web para apontar para a m´aquina onde

est´a rodando o Squid

Monitore o log do Squid enquanto navega pela web

(6)

Listas de Controle de Acesso – ACLs

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

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

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

Ex: N˜ao ´e permitido acessar redes sociais

Usadas para indicar palavras proibidas nos s´ıtios web

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

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

web

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

(7)

Listas de Controle de Acesso – ACLs

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

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

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

Ex: N˜ao ´e permitido acessar redes sociais

Usadas para indicar palavras proibidas nos s´ıtios web

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

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

web

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

(8)

Listas de Controle de Acesso – ACLs

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

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

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

Ex: N˜ao ´e permitido acessar redes sociais

Usadas para indicar palavras proibidas nos s´ıtios web

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

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

web

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

(9)

Listas de Controle de Acesso – ACLs

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

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

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

Ex: N˜ao ´e permitido acessar redes sociais

Usadas para indicar palavras proibidas nos s´ıtios web

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

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

web

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

(10)

Sintaxe das ACLs no Squid

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

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”

(11)

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 autenticar

acl unico max user ip 1

rep_mime_type Tipo do conte´udo da resposta 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

(12)

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

As restri¸c˜oes s´o devem ser aplicadas de 2ª a 6ª das 08:00-12:00 e das 14:00-18:00

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

(13)

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 [email protected]

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 matutino time 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

(14)

ACL – Exemplo 2

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

(15)

Bloqueando conte´

udo

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

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

(16)

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 40 MB

72 # Garantindo que o conteudo do dominio sera' guardado em cache

73 acl youtube dstdomain .youtube.com

(17)

Personaliza¸c˜

ao das p´

aginas de erro

O pacote squid-langpack apresenta um conjunto de p´aginas de

aviso em diversas l´ınguas

/usr/share/squid3/errors/pt-br /etc/squid3/errorpage.css

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

(18)

Autentica¸c˜

ao de usu´

arios

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)

(19)

Autentica¸c˜

ao de usu´

arios – NCSA

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

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

(20)

Relat´

orios de acesso – SARG

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

O SARG apresenta as seguintes informa¸c˜oes

Quais usu´arios acessaram quais s´ıtios web O hor´ario do acesso

Quantos bytes foram baixados

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

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

(21)

Relat´

orios de acesso – SARG

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

O SARG apresenta as seguintes informa¸c˜oes

Quais usu´arios acessaram quais s´ıtios web O hor´ario do acesso

Quantos bytes foram baixados

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

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

(22)

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 lastlog 10

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

Executando o sarg

(23)

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

(24)

SARG – Configura¸c˜

ao

Aplicativo /usr/sbin/sarg-reports e CRONTAB

/etc/cron.daily, /etc/cron.weekly e /etc/cron.monthly

/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

(25)

Controle de acesso ao relat´

orio do SARG

O pr´oprio servidor Apache HTTP permite realizar controle de acesso

em um diret´orio espec´ıfico

Pode-se colocar na configura¸c˜ao do diret´orio em /etc/apache2 ou ainda adicionando um arquivo .htaccess no diret´orio que se deseja proteger

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

(26)

Monitorando a sa´

ude do servidor com o Munin

Munin ´e uma ferramenta para monitoramento de recursos

disponibilizados em uma rede ´

E poss´ıvel monitorar diversas m´aquinas atrav´es de gr´aficos em uma ´

unica p´agina web

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

Faz uso da ferramenta RRDTool1

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

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

Plugins podem ser escritos em qualquer linguagem

1

(27)

Munin – Configura¸c˜

ao

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 address 192.168.1.10 # Coloque o IP da maquina node

165 use_node_name yes

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

(28)

Gr´

aficos Munin – Espa¸co em Disco (dia)

(29)

Gr´

aficos Munin – Espa¸co em Disco (ano)

/var 60% ocupado n˜ao ´e t˜ao preocupante (Em junho houve uma

(30)
(31)
(32)
(33)
(34)

Conclus˜

oes

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

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

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

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

Aplicativos como o SquidGuard e Dansguardian apresentam filtros ainda mais poderosos

´

E poss´ıvel combinar o Squid com Antiv´ırus (Ex: Clamav)

Ferramentas de monitoramento e de registro de acessos s˜ao ´uteis para

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

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)

(35)

Conclus˜

oes

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

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

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

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

Aplicativos como o SquidGuard e Dansguardian apresentam filtros ainda mais poderosos

´

E poss´ıvel combinar o Squid com Antiv´ırus (Ex: Clamav)

Ferramentas de monitoramento e de registro de acessos s˜ao ´uteis para

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

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)

(36)

Conclus˜

oes

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

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

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

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

Aplicativos como o SquidGuard e Dansguardian apresentam filtros ainda mais poderosos

´

E poss´ıvel combinar o Squid com Antiv´ırus (Ex: Clamav)

Ferramentas de monitoramento e de registro de acessos s˜ao ´uteis para

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

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

Segundos os dados analisados, os artigos sobre Contabilidade e Mercado de Capital, Educação e Pesquisa Contábil, Contabilidade Gerencial e Contabilidade Socioambiental

Este trabalho buscou, através de pesquisa de campo, estudar o efeito de diferentes alternativas de adubações de cobertura, quanto ao tipo de adubo e época de

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

Este estudo apresenta como tema central a análise sobre os processos de inclusão social de jovens e adultos com deficiência, alunos da APAE , assim, percorrendo

São por demais conhecidas as dificuldades de se incorporar a Amazônia à dinâmica de desenvolvimento nacional, ora por culpa do modelo estabelecido, ora pela falta de tecnologia ou

Chora Peito Chora Joao Bosco e Vinicius 000 / 001.. Chão De Giz Camila e

Promovido pelo Sindifisco Nacio- nal em parceria com o Mosap (Mo- vimento Nacional de Aposentados e Pensionistas), o Encontro ocorreu no dia 20 de março, data em que também

Podem treinar tropas (fornecidas pelo cliente) ou levá-las para combate. Geralmente, organizam-se de forma ad-hoc, que respondem a solicitações de Estados; 2)