servredes - aula 11 - proxy conceito, funcion e aplic. no linux.pdf

38
O Serviço PROXY (“O Procurador”) Prof: Bruno Roberto V. Castro [email protected] v2.0

Upload: antonio-higino-manoel-machado

Post on 23-Jun-2015

447 views

Category:

Documents


3 download

DESCRIPTION

Uploaded from Google Docs

TRANSCRIPT

Page 1: SERVREDES - Aula 11 - PROXY Conceito, funcion e Aplic. no Linux.pdf

O Serviço PROXY (“O Procurador”)

Prof: Bruno Roberto V. [email protected]

v2.0

Page 2: SERVREDES - Aula 11 - PROXY Conceito, funcion e Aplic. no Linux.pdf

O Serviço Proxy

� A palavra “Proxy”, oriunda do Inglês, significa:

� “Procuração, Procurador, Representante, Substituto…”

� É em essência, um computador que presta um serviço de procurador de um ou mais computadores em rede, buscando e repassando conteúdos que estes computadores desejam acessar.

Page 3: SERVREDES - Aula 11 - PROXY Conceito, funcion e Aplic. no Linux.pdf

O Serviço Proxy

� O Serviço Proxy age como um representante de um usuário que precisa acessar um sistema do outro lado do Proxy.

� Possui ainda a capacidade de armazenar os conteúdos mais acessados (geralmente “web-sites”) em uma área denominada “CACHE”.

Page 4: SERVREDES - Aula 11 - PROXY Conceito, funcion e Aplic. no Linux.pdf

O Serviço Proxy - Cache

� O “Cache” pode ter seu tamanho definido pelo administrador, e por guardar os conteúdos mais acessados, permite significativa melhora na velocidade do acesso aos sites que já possuem conteúdos guardados neste “Cache”.

Page 5: SERVREDES - Aula 11 - PROXY Conceito, funcion e Aplic. no Linux.pdf

O Serviço Proxy - Proteção

� O Proxy também pode ser interpletado como um tipo de firewall

� Oferece proteção à uma rede interna, pois, permite “esconder” toda uma coleção de estações de trabalho que o utilizam para o acesso externo (Internet)

Page 6: SERVREDES - Aula 11 - PROXY Conceito, funcion e Aplic. no Linux.pdf

O Serviço Proxy - Proteção

� Assim como oferece proteção à Rede Interna ou à LAN de uma empresa, pode também proteger ou resguardar a empresa ou o administrador da rede, de problemas.

� Pois, também é possível com o Serviço Proxy:� Filtrar Sites Indesejados;� Filtrar Sites que contenham determinada palavra chave;� Permitir determinados sites;� Permitir ou Negar o download de determinados tipos de

protocolo (ex: ftp) e também de determinadas extensões de arquivos (ex: exe, com, mp3, etc….).

Page 7: SERVREDES - Aula 11 - PROXY Conceito, funcion e Aplic. no Linux.pdf

O Serviço Proxy

� Resumindo, um Servidor PROXY bem configurado deve estar baseado em 4 pilares:

� Oferecer Proteção à Rede Interna� Oferecer LOG´s ao administrador da REDE� Permitir economia de Banda através do “CACHE”� Permitir filtros de acesso à conteúdos no protocolo

HTTP

Page 8: SERVREDES - Aula 11 - PROXY Conceito, funcion e Aplic. no Linux.pdf

O Serviço Proxy em uma Empresa com 10 estações de trabalho

Rede LAN:192.168.0.0/24

eth0192.168.0.254

Servidor Proxy

Internet

Link – “Qualquer prestadora”

201.200.200.1eth1

Page 9: SERVREDES - Aula 11 - PROXY Conceito, funcion e Aplic. no Linux.pdf

O Serviço Proxy

� Geralmente, Servidores PROXY possuem a capacidade de “Rotear” os seguintes protocolos:

� http

� https

� ftp

� gopher

� socks

Page 10: SERVREDES - Aula 11 - PROXY Conceito, funcion e Aplic. no Linux.pdf

O Serviço Proxy – Porta TCP

� Opera utilizando o protocolo de Transporte TCP, normalmente nas portas

� 3128ou

� 8080

Page 11: SERVREDES - Aula 11 - PROXY Conceito, funcion e Aplic. no Linux.pdf

Proxy – Exemplo de Funcionamento

Servidor Proxy1043 tcp

3128 tcpRequisição de acesso à

http://www.altavista.com1043 tcp

3128 tcp

Conteúdo do website requisitado

Localização e Obtenção do Conteúdo

Internet

Page 12: SERVREDES - Aula 11 - PROXY Conceito, funcion e Aplic. no Linux.pdf

O Serviço Proxy x “Compartilhamento de Conexão”� PROXY não é o mesmo do que NAT

� O NAT (Network Address Translator) é a tradução de endereços. Geralmente usada para traduzir endereços “inválidos” na Internet para endereços “válidos” e vice e versa.

� Já o Proxy, é utilizado como Procurador, apenas para serviços específicos como por exemplo “http” e “https”, com a vantagem de “auditar” o conteúdo das mensagens trocadas e ainda de guardar “cache” dos sites visitados.

Page 13: SERVREDES - Aula 11 - PROXY Conceito, funcion e Aplic. no Linux.pdf

Clientes Proxy

� Os Clientes Proxy, geralmente são embutidos nos conhecidos navegadores (“Browsers”), tais como:

� Internet Explorer (versões: 3, 4, 5, 6)

� Mozilla

� Netscape

Page 14: SERVREDES - Aula 11 - PROXY Conceito, funcion e Aplic. no Linux.pdf

Configurando o Cliente ProxyInternet Explorer 6

Page 15: SERVREDES - Aula 11 - PROXY Conceito, funcion e Aplic. no Linux.pdf

Configurando o Cliente ProxyNetscape v.7

Page 16: SERVREDES - Aula 11 - PROXY Conceito, funcion e Aplic. no Linux.pdf

Servidores Proxy – Plataforma Microsoft

� Windows 2000 e 2003 Server� ISA Server 2004

� Outros Fabricantes� Ex: Wingate (http://www.wingate.com)

http://www.microsoft.com/isaserver/

Page 17: SERVREDES - Aula 11 - PROXY Conceito, funcion e Aplic. no Linux.pdf

Servidor Proxy – Plataforma Gnu/Linux

� SQUID – http://www.squid.org

� Opera em diversas plataformas:

� Linux � FreeBSD � NetBSD � OpenBSD � BSDI � Mac OS/X � OSF/Digital Unix/Tru64 � IRIX � SunOS/Solaris � NeXTStep � SCO Unix � AIX � HP-UX � [Compiling#building_squid_on_os_2 OS/2]

Page 18: SERVREDES - Aula 11 - PROXY Conceito, funcion e Aplic. no Linux.pdf

SQUID – Serviço Proxy no GNU/Linux

http://www.squid-cache.org

Page 19: SERVREDES - Aula 11 - PROXY Conceito, funcion e Aplic. no Linux.pdf

SQUID no Debian Linux 4.0

� A versão disponível para o Debian Linux:

� squid 2.6.5-6etch1

� Instalando o SQUID no Debian

� apt-get install squid

Page 20: SERVREDES - Aula 11 - PROXY Conceito, funcion e Aplic. no Linux.pdf

Principais Arquivos e Diretórios do Squid no Debian Linux 4.0� Arquivo Principal de Configuração:

� /etc/squid/squid.conf

� Arquivos de Saída (LOG):� /var/log/squid

� acccess.log (guarda log’s de acesso à sites)

� cache.log (guarda log’s relativos ao serviço squid em si)

� Iniciando e/ou parando o serviço:� /etc/init.d/squid (start | stop | restart)

Page 21: SERVREDES - Aula 11 - PROXY Conceito, funcion e Aplic. no Linux.pdf

Comandos úteis no PROMPT do Linux, aplicados com o Squid� “Re-criando” a área de “cache” do Squid

# squid –z

� “Rotating” nos LOG´s do SQUID

# squid –k rotate

� Utilizando um diferente arquivo de configuração

# squid –f /root/novoarquivodeconfiguração.conf

Page 22: SERVREDES - Aula 11 - PROXY Conceito, funcion e Aplic. no Linux.pdf

squid --helpUsage: squid [-dhsvzCDFNRVYX] [-f config-file] [-[au] port] [-k signal]

-a port Specify HTTP port number (default: 3128).

-d level Write debugging to stderr also.

-f file Use given config-file instead of

/etc/squid/squid.conf

-h Print help message.

-k reconfigure|rotate|shutdown|interrupt|kill|debug|check|parse

Parse configuration file, then send signal to

running copy (except -k parse) and exit.

-s Enable logging to syslog.

-u port Specify ICP port number (default: 3130), disable with 0.

-v Print version.

-z Create swap directories

-C Do not catch fatal signals.

-D Disable initial DNS tests.

-F Don't serve any requests until store is rebuilt.

-N No daemon mode.

-R Do not set REUSEADDR on port.

-S Double-check swap during rebuild.

-V Virtual host httpd-accelerator.

-X Force full debugging.

-Y Only return UDP_HIT or UDP_MISS_NOFETCH during fast reload.

Page 23: SERVREDES - Aula 11 - PROXY Conceito, funcion e Aplic. no Linux.pdf

Exemplo de “squid.conf”parte 1

� coredump_dir /var/cache/squid� http_port 3128� cache_mgr [email protected]� request_body_max_size 45 MB� request_header_max_size 10000 KB� ie_refresh on� cache_mem 100 MB� cache_dir ufs /var/log/squid/squid 300 32 256� cache_access_log /var/log/squid/access.log� cache_log /var/log/squid/cache.log� cache_store_log /var/log/squid/store.log

� ################################� # Define ACL's #� ################################� acl all src 0.0.0.0/0.0.0.0� acl Deny_ports port 563 666 1146 1224 1161 1204 1225 1214 1414 1126 1137 2764 2646 1335 1165 1755 1167 3716 3676 1072 1070� acl redeuna src 10.0.0.0/255.0.0.0� acl download_files urlpath_regex \.asf$ \.arj$ \.bzip$ \.ace$ \.iso$ \.adt$ \.cbt$ \.cla$ \.com$ \.cpl$ \.csc$ \.dot$ \.drv$ \.lha$ \.lzh$ \.mso$

\.ov?$ \.pot$ \.sys$ \.mp3$ \.asf$ \.wma$ \.wmf$ \.wmf$ \.ttf$ \.scr$ \.mp3$ \.mpeg$ \.avi$

� acl permiteurl dstdomain -i "/etc/squid/regra-url-ok.txt"� acl bloqueiaurl dstdomain -i "/etc/squid/regra-url.txt"� acl bloqueianomes dstdom_regex "/etc/squid/regra-nomes.txt"

� #######################################################[

Page 24: SERVREDES - Aula 11 - PROXY Conceito, funcion e Aplic. no Linux.pdf

Exemplo de “squid.conf”parte 2

� ###### APLICANDO ACL's ##################################� #

� http_access allow permiteurl� http_access deny bloqueiaurl� http_access deny bloqueianomes� #� http_access deny Deny_ports� http_access deny download_files� #� http_access allow redeuna� #� http_access deny all� #######################################################

� httpd_accel_with_proxy on� httpd_accel_port 80 3128� httpd_accel_port 80� httpd_accel_host virtual

� ### Fim do squid.conf

Page 25: SERVREDES - Aula 11 - PROXY Conceito, funcion e Aplic. no Linux.pdf

Analisando os principais parâmetros do SQUID.CONF� http_port 3128

� Define a porta de operação do Serviço PROXY.

� cache_mgr [email protected]� Define o email do administrador do PROXY (Será exibido aos usuários nas

mensagens de “erros e report´s”.� ie_refresh on

� “Acerta” compatibilidade com o “Refresh” do Browser MS Internet Explorer.� cache_mem 100 MB

� Define o tamanho do CACHE que será utilizado.� cache_dir ufs /var/log/squid/squid 300 32 256� cache_access_log /var/log/squid/access.log� cache_log /var/log/squid/cache.log� cache_store_log /var/log/squid/store.log

� Define respectivamente:� Diretório do CACHE� Arquivo de log´s de acesso (ACCESS.LOG) *** Mais Importante!!� Arquivo de log´s referentes ao SQUID em si (CACHE.LOG)� Arquivo de log´s de gravações em cache e outros (STORE.LOG)

Page 26: SERVREDES - Aula 11 - PROXY Conceito, funcion e Aplic. no Linux.pdf

Analisando os principais parâmetros do SQUID.CONF - “As ACL´s”� As ACL´s ou “Access Lists”, fazem parte dos

mais importantes recursos de um Servidor PROXY bem configurado.

� É necessário primeiro DEFINIR ou CRIAR uma ACL e posteriormente, APLICAR a mesma, para só então ela entrar em ação.

Page 27: SERVREDES - Aula 11 - PROXY Conceito, funcion e Aplic. no Linux.pdf

Definindo ACL´s(Principais Parâmetros)

� Parâmetro para definição:

� acl nomedefinido tipodaacl endereço,domínio,destino,etc…

� Principais “Tipos de ACL”� src = define um ou mais endereços IP`s, ou um RANGE dos

CLIENTES (Browsers). (SRC = SOURCE)� port = define uma ou mais portas de DESTINO do pacote IP.� urlpath_regex = define extensões de arquivos dentro de uma

URL solicitada pelo cliente� dstdomain = define um ou vários domínios ou FQDN´s que

podem ou não serem acessados� dstdom_regex = define “palavras-chaves” que podem ou não

serem acessados

Page 28: SERVREDES - Aula 11 - PROXY Conceito, funcion e Aplic. no Linux.pdf

Definindo ACL´s(Exemplos)

� acl TODOS_IPS src 0.0.0.0/0.0.0.0� acl PORTAS port 563 666� acl REDEINTERNA src 10.19.0.0/255.255.0.0� acl ARQUIVOS urlpath_regex \.arj$ \.mp3$

� acl PERMITEURL dstdomain .una.br www.mec.org� OU

� acl PERMITEURL dstdomain –i “/root/arquivo1.txt”

� acl BLOQUEIAURL dstdomain .orkut.com .youtube.com.googlevideo.com� OU

� acl BLOQUEIAURL dstdomain -i "/root/arquivo2.txt"

.una.brwww.mec.brwww.ufmg.brwww.cnpg.br

.orkut.com

.youtube.com

.meebo.com

Page 29: SERVREDES - Aula 11 - PROXY Conceito, funcion e Aplic. no Linux.pdf

Aplicando as ACL´s

� A aplicação das ACL´s devem ser feitas seguindo o critério definido pelo administrador da REDE

� Deve-se levar em conta a ordem de aplicação de cada uma das ACL´s

� Sempre que um PACOTE vindo dos BROWSER´s for recebido pelo servidor PROXY, todas as ACL´s APLICADAS, serão rigorosamente seguidas. DE CIMA para BAIXO (TOP -> DOWN).

Page 30: SERVREDES - Aula 11 - PROXY Conceito, funcion e Aplic. no Linux.pdf

Aplicando as ACL´s(Principal Sintaxe)

� Parâmetro para APLICAÇÃO:

� http_access permite_ou_nega nomedaacl

� Também é possível SOMAR duas ou mais ACL em uma mesma LINHA, fazendo uma ligação lógica do tipo “E”, ou seja, somente se atender AMBAS as condições:

� http_access permite_ou_nega nomedaacl1 nomedaacl2

Page 31: SERVREDES - Aula 11 - PROXY Conceito, funcion e Aplic. no Linux.pdf

Aplicando as ACL´s(Exemplos)

� http_access allow PERMITEURL� http_access deny BLOQUEIAURL

� http_access deny PORTAS� http_access deny ARQUIVOS

� http_access allow REDEINTERNA

� http_access deny TODOS_IPS

TOP

DOWN

** Cada Pacote será submetido a todas as regras.- Caso encontre algum ALLOW, conseguirá acessar. Caso contrário, encontrará DENY

Page 32: SERVREDES - Aula 11 - PROXY Conceito, funcion e Aplic. no Linux.pdf

Revisando: Exemplo de DEFINIÇÃO e de APLICAÇÃO de ACL´s# DEFININDO listas de acessos

acl TODOS_IPS src 0.0.0.0/0.0.0.0acl PORTAS port 563 666acl REDEINTERNA src 10.19.0.0/255.255.0.0acl ARQUIVOS urlpath_regex \.arj$ \.mp3$ acl PERMITEURL dstdomain .una.br www.mec.orgacl BLOQUEIAURL dstdomain .orkut.com .youtube.com .googlevideo.com

# APLICANDO listas de acessos

http_access allow PERMITEURLhttp_access deny BLOQUEIAURLhttp_access deny PORTAShttp_access deny ARQUIVOS

http_access allow REDEINTERNAhttp_access deny TODOS_IPS

A ordem em que as ACL´s são aplicadas é tão importante

quanto à existência das mesmas.

Page 33: SERVREDES - Aula 11 - PROXY Conceito, funcion e Aplic. no Linux.pdf

Exemplo do “access.log”

� 1181591169.159 2 192.168.10.144 TCP_IMS_HIT/304 220 GET http://www.camaraolivicola.com.ar/imagenes/der.gif - NONE/- image/gif

� 1181591169.161 1 192.168.10.144 TCP_IMS_HIT/304 220 GET http://www.camaraolivicola.com.ar/imagenes/noti2.gif - NONE/-image/gif

� 1181591169.161 1 192.168.10.144 TCP_IMS_HIT/304 220 GET http://www.camaraolivicola.com.ar/imagenes/line.gif - NONE/- image/gif

� 1181591169.162 1 192.168.10.144 TCP_IMS_HIT/304 220 GET http://www.camaraolivicola.com.ar/imagenes/esq1.gif - NONE/-image/gif

� 1181591266.736 11 192.168.10.33 TCP_DENIED/403 1450 GET http://panoramix.ebuddy.com/pics/p/Q/V/pQVjvk1ZiYjJy1BXK6TRXscuu8.png - NONE/- text/html

� 1181591270.147 48 192.168.10.33 TCP_DENIED/403 1418 GET http://content.e-messenger.net/emotions/thumbs_up.gif - NONE/-text/html

� 1181591270.159 11 192.168.10.33 TCP_DENIED/403 1422 GET http://content.e-messenger.net/emotions/thumbs_down.gif - NONE/-text/html

� 1181591271.566 162 192.168.10.33 TCP_DENIED/403 1408 GET http://pagead2.googlesyndication.com/pagead/ads? - NONE/- text/html

� 1181591271.575 7 192.168.10.102 TCP_DENIED/403 1500 GET http://ads.globo.com/RealMedia/ads/adstream_mjx.ads/caldeiraodohuck/lardocelar/1625892316@x01? - NONE/- text/html

� 1181591271.806 97 192.168.10.102 TCP_DENIED/403 1434 GET http://caldeiraodohuck.globo.com/Caldeirao/upload/bt_blog.swf -NONE/- text/html

� 1181591289.293 620 192.168.10.33 TCP_MISS/200 675 GET http://www.phonefox.com/servlet/update? - DIRECT/193.238.162.21 text/html

� 1181591289.332 586 192.168.10.27 TCP_MISS/200 310 GET http://www.phonefox.com/servlet/update? - DIRECT/193.238.162.21 text/html

Dica: Para analisar o log em “tempo real”, use “tail –f /var/log/squid/access.log”

Page 34: SERVREDES - Aula 11 - PROXY Conceito, funcion e Aplic. no Linux.pdf

Gerando Gráficos e Relatórios Detalhados

� É possível utilizar ferramentas externas, como o “SARG – Squid Analysis Report Generator”, para gerar relatórios em formatos mais amigáveis, organizados por:

� IP� DIA� SITES ACESSADOS

� Site Oficial do Projeto:http://sarg.sourceforge.net

Page 35: SERVREDES - Aula 11 - PROXY Conceito, funcion e Aplic. no Linux.pdf

Exemplo de Relatórios de Acessos Gerados com o “SARG”

Page 36: SERVREDES - Aula 11 - PROXY Conceito, funcion e Aplic. no Linux.pdf

Exemplo de Relatórios de AcessosGerados com o “SARG”

Page 37: SERVREDES - Aula 11 - PROXY Conceito, funcion e Aplic. no Linux.pdf

Exemplo de Relatórios de AcessosGerados com o “SARG”

Page 38: SERVREDES - Aula 11 - PROXY Conceito, funcion e Aplic. no Linux.pdf

Fim!

� Finish Him!