You are on page 1of 154

MDULO DE:

SERVIOS DE REDE

AUTORIA:

Msc. PEDRO HENRIQUE MANNATO COUTINHO

Copyright 2011, ESAB Escola Superior Aberta do Brasil

Copyright 2011, ESAB Escola Superior Aberta do Brasil

Mdulo de: Servios de Rede Autoria: Pedro Henrique Mannato Coutinho

Primeira edio: 2011

CITAO DE MARCAS NOTRIAS Vrias marcas registradas so citadas no contedo deste mdulo. Mais do que simplesmente listar esses nomes e informar quem possui seus direitos de explorao ou ainda imprimir logotipos, o autor declara estar utilizando tais nomes apenas para fins editoriais acadmicos. Declara ainda, que sua utilizao tem como objetivo, exclusivamente a aplicao didtica, beneficiando e divulgando a marca do detentor, sem a inteno de infringir as regras bsicas de autenticidade de sua utilizao e direitos autorais. E por fim, declara estar utilizando parte de alguns circuitos eletrnicos, os quais foram analisados em pesquisas de laboratrio e de literaturas j editadas, que se encontram expostas ao comrcio livre editorial.

Todos os direitos desta edio reservados ESAB ESCOLA SUPERIOR ABERTA DO BRASIL LTDA http://www.esab.edu.br Av. Santa Leopoldina, n 840/07 Bairro Itaparica Vila Velha, ES CEP: 29102-040 Copyright 2011, ESAB Escola Superior Aberta do Brasil

Copyright 2011, ESAB Escola Superior Aberta do Brasil

presentao

Atualmente a Internet representa um papel importante em nossas vidas. Podemos dizer que a Web mudou o nosso modo de viver, de forma que difcil imaginar como seria nosso dia a dia se a Internet deixasse de existir. Acessamos e-mails, transferimos arquivos, realizamos compras, conversamos via bate-papo, assistimos a vdeos, lemos notcias, pesquisamos, e at mesmo estudamos atravs do Ensino Online Distncia, como o caso deste Mdulo. Tudo isso possvel graas existncia de aplicaes clientes e servidoras, e tambm de protocolos e servios adicionais que permitem que os dados sejam trocados via Internet. Portanto, o objetivo deste Mdulo apresentar os principais servios com respectivos protocolos e aplicaes que permitem nossa interao com essa fantstica tecnologia de comunicao.

O
aqui.

bjetivo

Apresentar de forma dinmica e agradvel os conceitos dos principais servios de redes, em conjunto com demonstraes prticas. Para atingir esse objetivo, foram intercaladas Unidades de conceituao com outras de exemplos reais, utilizando um analisador de pacotes para demonstrar o funcionamento e detalhes de alguns servios apresentados

Copyright 2011, ESAB Escola Superior Aberta do Brasil

menta

Apresentao dos seguintes servios de rede: servio de transporte (TCP/IP), segurana de comunicao (SSL e TLS), web (HTTP), transferncia de arquivos (FTP), correio eletrnico (SMTP, POP3, IMAP), acesso remoto (Telnet e SSH), traduo de nomes para endereo IP (DNS), atribuio dinmica de IP (DHCP), rede virtual privada (VPN) e o servio para reduzir o tempo de resposta, economia de banda e controle de acesso (Proxy). Demonstrao de maneira prtica do funcionamento de alguns dos servios e respectivos protocolos e aplicaes descritos, utilizando um analisador de pacotes de redes.

obre o Autor

Mestre em Informtica (UFES -2007), Graduado em Cincia da Computao (UFES2004). A Dissertao de Mestrado rendeu o terceiro lugar no prmio de dissertaes do SBIE 2008 (Simpsio Brasileiro de Informtica na Educao). Diretor Executivo e scio fundador da empresa Projeta Sistemas de Informao. VicePresidente de Associativismo e Financeiro da ASSESPRO-ES. Professor de Ps Graduao Lato Sensu em disciplinas presenciais e online. Faz parte do corpo de consultores de tecnologia do SEBRAE-ES. Possui experincia atuando como Gerente de Projeto, Analista de Sistema, Analista de Processos de Negcio (BPM), Desenvolvedor, Pesquisador de Novas Tecnologias, dentre outros. Atuou em projetos que tinham como clientes: Arcelor Mittal, Receita Federal, IBGE, Sebrae, Grupo Coimex, ESAB, dentre outros. Atuou como analista e desenvolvedor do software para o gerenciamento de empresas do mercado rent a car, ganhador do 1 Prmio do Plo de Software do Esprito Santo (22/01/2008) e um dos quatro finalistas do 6 Encontro Nacional de Tecnologia e Negcios - Rio Info 2008 (30/09/2008).
Copyright 2011, ESAB Escola Superior Aberta do Brasil 4

UMRIO

UNIDADE 1 .........................................................................................................................7 Introduo ........................................................................................................................7 UNIDADE 2 .......................................................................................................................12 Breve Apresentao de Conceitos: Redes de Computadores ....................................... 12 UNIDADE 3 .......................................................................................................................16 Servios da Camada de Transporte: UDP e TCP ..........................................................16 UNIDADE 4 .......................................................................................................................23 Servios Seguros de Transporte: SSL e TLS................................................................. 23 UNIDADE 5 .......................................................................................................................30 Analisador de Pacotes de Rede .....................................................................................30 UNIDADE 6 .......................................................................................................................38 HTTP ..............................................................................................................................38 UNIDADE 7 .......................................................................................................................42 HTTP (Continuao) ...................................................................................................... 42 UNIDADE 8 .......................................................................................................................48 HTTPS ...........................................................................................................................48 UNIDADE 9 .......................................................................................................................52 Analisador de Pacotes de Rede HTTP x HTTPS ........................................................52 UNIDADE 10 .....................................................................................................................57 Proxy ..............................................................................................................................57 UNIDADE 11 .....................................................................................................................61 Proxy (Continuao)....................................................................................................... 61 UNIDADE 12 .....................................................................................................................65 DNS (Domain Name Server) ..........................................................................................65 UNIDADE 13 .....................................................................................................................72 DNS (Continuao) ........................................................................................................ 72 UNIDADE 14 .....................................................................................................................78 Analisador de Pacotes de Rede Consulta DNS ..........................................................78 UNIDADE 15 .....................................................................................................................83 Correio Eletrnico........................................................................................................... 83
Copyright 2011, ESAB Escola Superior Aberta do Brasil 5

UNIDADE 16 .....................................................................................................................88 Correio Eletrnico (Continuao) ...................................................................................88 UNIDADE 17 .....................................................................................................................92 DHCP (Dynamic Host Configuration Protocol) ...............................................................92 UNIDADE 18 .....................................................................................................................97 DHCP (Continuao)...................................................................................................... 97 UNIDADE 19 ...................................................................................................................100 Analisador de Pacotes de Rede DHCP ..................................................................... 100 UNIDADE 20 ...................................................................................................................106 VPN .............................................................................................................................. 106 UNIDADE 21 ...................................................................................................................110 VPN (Continuao) ...................................................................................................... 110 UNIDADE 22 ...................................................................................................................115 VPN (Continuao) ...................................................................................................... 115 UNIDADE 23 ...................................................................................................................118 Servios e Protocolos de Acesso Remoto - Telnet ......................................................118 UNIDADE 24 ...................................................................................................................121 Servios e Protocolos de Acesso Remoto - SSH (Secure Shell) ................................. 121 UNIDADE 25 ...................................................................................................................124 Analisador de Pacotes de Rede Telnet x SSH ..........................................................124 UNIDADE 26 ...................................................................................................................130 Servios e Protocolos de Transferncia de Arquivos - FTP (File Transfer Protocol).... 130 UNIDADE 27 ...................................................................................................................136 FTP (Continuao) ....................................................................................................... 136 UNIDADE 28 ...................................................................................................................140 Analisador de Pacotes de Rede FTP ........................................................................ 140 UNIDADE 29 ...................................................................................................................144 TFTP (Trivial File Transfer Protocol) ............................................................................ 144 UNIDADE 30 ...................................................................................................................148 Alternativas Seguras para realizar a Transferncia de Arquivos.................................. 148

Copyright 2011, ESAB Escola Superior Aberta do Brasil

NIDADE

Objetivo: Realizar uma apresentao inicial do contedo deste Mdulo de Servios de Redes.

Introduo Bem vindo ao Mdulo de Servios de Redes! Atualmente a Internet representa um papel importante em nossas vidas. Podemos dizer que a Web mudou o nosso modo de viver, de forma que difcil imaginar como seria nosso dia a dia se a Internet deixasse de existir. Acessamos e-mails, transferimos arquivos, realizamos compras, conversamos via bate-papo, assistimos a vdeos, lemos notcias, pesquisamos, e at mesmo estudamos atravs do Ensino Online Distncia, como o caso deste Mdulo. Tudo isso possvel graas existncia de aplicaes clientes e servidoras, e tambm de protocolos e servios adicionais que permitem que os dados sejam trocados via Internet. Portanto, o objetivo deste Mdulo apresentar os principais servios com respectivos protocolos e aplicaes que permitem nossa interao com essa fantstica tecnologia de comunicao. Os conhecimentos apresentados aqui foram organizados para serem agradveis e dinmicos, apresentando os principais conceitos em conjunto com demonstraes prticas. Para atingir esse objetivo, intercalamos algumas Unidades de conceituao com outras de exemplos reais, onde utilizamos um analisador de pacotes para demonstrar o funcionamento e detalhes de alguns servios apresentados aqui. A maioria dos servios apresentados se refere s aplicaes e respectivos protocolos da Camada de Aplicao, que so os principais servios e a razo de ser das redes de computadores. Mas antes de falarmos sobre os servios, vamos relembrar em que contexto a Camada de Aplicao est inserida. Os Modelos de Referncias e Respectivas Camadas

Copyright 2011, ESAB Escola Superior Aberta do Brasil

As redes so projetadas em camadas empilhadas com o objetivo de reduzir sua complexidade, de forma que a camada inferior possa fornecer determinados servios sua camada superior, sem que esta ltima tenha que se preocupar com detalhes da implementao dos mesmos. Portanto, entre as camadas existe uma interface que define as operaes e servios disponibilizados para a camada superior, facilitando a substituio de implementao de uma camada por outra implementao distinta.

Figura 1 Os Modelos de Referncias TCP/IP e OSI e suas respectivas Camadas

As camadas correspondentes em diferentes mquinas so denominadas pares, e se comunicam atravs de protocolos, que so os padres e regras convencionados para a comunicao. Se analisarmos mais de perto, perceberemos que os pares no se comunicam diretamente. Na verdade, a camada que deseja se comunicar com sua camada correspondente em outra mquina passa os dados e informaes para a sua camada imediatamente inferior, que adota o mesmo procedimento at atingir o meio fsico. Atravs do meio fsico a mensagem transportada at a camada mais baixa da

Copyright 2011, ESAB Escola Superior Aberta do Brasil

outra mquina, que transfere os dados para as camadas superiores at alcanar a camada desejada. O nome, nmero, funo e contedo de cada camada, diferem de uma arquitetura para outra. Duas importantes arquiteturas de redes em camadas so o modelo de referncia TCP/IP e o modelo de referncia OSI, apresentados na Figura 1. Vale destacar que o modelo de referncia TCP/IP em quatro camadas apresentado na Figura 1 se baseia no padro IETF definido na RFC 1122 (http://tools.ietf.org/html/rfc1122), embora seja possvel encontrar na literatura autores que o apresentem em cinco camadas. O modelo de referncia TCP/IP recebeu esse nome devido aos seus dois principais protocolos, e seu incio antigo. A ARPANET (antecessora da Internet) era uma rede de pesquisa patrocinada pelo Departamento de Defesa dos Estados Unidos, que foi crescendo na medida em que universidades e reparties pblicas foram se conectando. Para permitir que vrias redes se conectassem de maneira uniforme evitando problemas e conflitos, foi definida em 1974 uma arquitetura de referncia, que ficou conhecida como Modelo de Referncia TCP/IP. Quatro verses do TCP/IP foram desenvolvidas na poca. A migrao da ARPANET para TCP/IP foi oficialmente completada em 1983. J o modelo de referncia OSI (Open Systems Interconnection, em portugus, Interconexo de Sistemas Abertos) foi baseado em uma proposta de 1983 desenvolvida pela ISO (International Standards Organization, ou Organizao Internacional de Padres) para padronizar internacionalmente os protocolos utilizados nas diferentes camadas. Apesar das diferenas entre os dois modelos, que no iremos abordar aqui, podemos perceber que ambos possuem caractersticas comuns, com camadas com funes equivalentes, como, por exemplo, a camada de transporte presente nos dois modelos. A camada mais alta, a de aplicao, a camada mais prxima do usurio. Ela tambm est presente em ambos os modelos. O modelo TCP/IP no possui as camadas de Apresentao e Sesso, e a experincia com o modelo OSI demonstrou que elas so pouco utilizadas pela maioria das aplicaes. O modelo OSI (sem as camadas de Apresentao e Sesso) til para discusso de redes de computadores, porm seus protocolos no se tornaram populares. J o modelo

Copyright 2011, ESAB Escola Superior Aberta do Brasil

TCP/IP, no caminho inverso possui seus protocolos utilizados amplamente, porm o modelo praticamente no existe. Como as camadas de Apresentao e Sesso do modelo OSI praticamente no so utilizadas, durante o texto faremos referncia a um modelo adaptado conforme a Figura 2 abaixo, em que a camada de aplicao est acima da de transporte (assim como no modelo TCP/IP).

Figura 2 Modelo Adaptado

A Camada de Aplicao A camada de aplicao contm a maioria dos programas utilizados para comunicao atravs da rede, contendo um conjunto de protocolos essenciais para os usurios. Portanto, grande parte dos servios abordados neste mdulo baseada em protocolos da camada de aplicao, como: web (HTTP), transferncia de arquivos (FTP), correio eletrnico (SMTP, POP3, IMAP), acesso remoto (Telnet e SSH), e traduo de nomes para endereo IP (DNS). Alm dos servios da camada de aplicao, sero apresentados outros servios de rede de fundamental importncia para o funcionamento da Internet e dos servios da camada de aplicao, como o servio de transporte (TCP/IP), transmisso de dados criptografados oferecendo confidencialidade e integridade (SSL e TLS), atribuio

Copyright 2011, ESAB Escola Superior Aberta do Brasil

10

dinmica de IP (DHCP), rede virtual privada (VPN) e o servio para reduzir o tempo de resposta, economia de banda e controle de acesso (Proxy). Organizao do Contedo Nas prximas quatro unidades deste Mdulo, estudaremos conceitos que sero utilizados nas demais unidades. Portanto, a Unidade 2 cita brevemente as redes de computadores, portas, protocolos e arquitetura cliente/servidor. A Unidade 3 apresentar o UDP e TCP enquanto a Unidade 4 o SSL/TLS. Ao longo do estudo visualizaremos que esses servios so importantes para os servios da camada de aplicao apresentados. J a Unidade 4 apresenta uma ferramenta para captura de pacotes chamada

Wireshark, utilizada ao longo de vrios pontos deste mdulo para demonstrar de maneira prtica o funcionamento de alguns dos servios, aplicaes e protocolos descritos. A partir da Unidade 5, os outros servios citados anteriormente so apresentados, intercalando sempre que conveniente a demonstrao prtica com Wireshark .

Copyright 2011, ESAB Escola Superior Aberta do Brasil

11

NIDADE

Objetivo: Relembrar de forma sucinta alguns conceitos relativos s redes de computadores que serviro como base para as prximas unidades.

Breve Apresentao de Conceitos: Redes de Computadores Esta unidade apresenta de forma sucinta alguns conceitos gerais das redes de computadores, para que voc relembre alguns conhecimentos prvios adquiridos em outros mdulos do curso da ESAB ou em estudos anteriores Uma rede pode ser definida como um conjunto de computadores e outros equipamentos interligados e capazes de comunicarem-se utilizando um conjunto pr-determinado de regras, ou linguagem, chamada de protocolo. Os protocolos so especificados por institutos de pesquisa e anunciados para toda a comunidade por meio de um memorando publicado pela IETF (Internet Engineering Task Force Fora Tarefa de Engenharia da Internet) denominado RFC (Request for Comments Solicitao de Comentrios). Este memorando deve descrever os mtodos, padres, pesquisas ou inovaes aplicadas ao funcionamento da Internet. Na comunicao via correios, para que uma carta chegue ao endereo de destino correto e possa ser respondida ao autor devidamente, o envelope deve conter todas as informaes de como localizar remetente e destinatrio. Da mesma forma, para um pacote de dados trafegar por uma rede, este deve conter todas as informaes necessrias de endereo de origem e destino. O IP, ou Internet Protocol, um tipo de protocolo que foi projetado para criar ligaes entre diferentes redes, possibilitando a intercomunicao entre dispositivos nelas presentes. Denomina-se normalmente de internet (com i minsculo) uma interligao entre diversas redes. Como nos correios, para que no haja erros de entrega mensagens e encomendas (encomendas que em redes de computadores pode-se fazer uma analogia com os pacotes que trafegam nas redes), numa determinada internet o endereo de cada

Copyright 2011, ESAB Escola Superior Aberta do Brasil

12

equipamento de rede ativo, como switches, roteadores, e computadores deve ser nico. Este endereo chamado endereo IP. Costuma-se designar de Internet, com a letra i maiscula, interligao de milhares de redes ao redor do mundo. Por volta de 1983, ela poderia ser considerada uma rede predominantemente acadmica, com cerca de 200 computadores interligados. A partir de 1995, a Internet comea a se popularizar, chegando ao fantstico patamar que encontramos atualmente. Sem as aplicaes de redes, uma rede de computadores no faria muito sentido. Podemos citar como exemplos aplicaes de redes, o acesso remoto a computadores, transferncias de arquivos, correio eletrnico, grupos de discusso, navegao web, dentre outros. Os protocolos das aplicaes de redes normalmente especificam as comunicaes entre duas entidades: um cliente e um servidor. Portanto, normalmente temos as aplicaes clientes e as aplicaes servidoras. Podemos citar como exemplo a prpria Web, em que do lado do cliente temos os navegadores (browsers) e do lado servidor um servidor Web (como por exemplo, o servidor Web Apache). Existem casos em que a mesma aplicao implementa tanto o lado cliente como o lado servidor. Um exemplo tpico so aplicaes FTP, em que durante uma sesso entre dois hospedeiros, ambos podem transferir arquivos. Entretanto, normalmente a parte que inicia a sesso denominada de cliente. Existem dois tipos de aplicaes cliente/servidor: aplicaes proprietrias e aplicaes que implementam protocolos padres definidos em uma RFC. Nas aplicaes proprietrias, os programas clientes e servidores podem ser desenvolvidos sem precisar se basear em protocolos de domnio pblico, de forma que pode acontecer de programadores independentes no conseguir desenvolver aplicaes para se comunicar com as mesmas. No presente Mdulo, as aplicaes explicadas so baseadas em implementaes de acordo com regras definidas nas RFCs. A padronizao dos protocolos mostra a sua relevncia ao permitir que aplicaes hospedadas em diferentes sistemas operacionais e desenvolvidas por equipes independentes, possam se comunicar sem problemas.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

13

As aplicaes presentes em mquinas distintas se comunicam atravs da troca de mensagens utilizando a rede de computadores. As aplicaes enviam e recebem mensagens atravs de suas portas. Uma porta a interface entre camada de aplicao e a camada de transporte, e pode ser entendida como um canal de entrada e sada. As principais aplicaes de rede possuem nmeros das portas definidas para o servio fornecido pelo servidor. Essas portas so denominadas portas bem conhecidas (do ingls well-known port numbers), e tipicamente um nmero de porta baixo (menor do que 1024). Por exemplo, um servidor HTTP, por padro, escuta a porta 80. Em contrapartida, a aplicao cliente normalmente utiliza uma porta de nmero alto, definida dinamicamente e com objetivo de ter curta durao. Embora a maioria das aplicaes possua nmero de portas definidas para a aplicao servidora e utilizem uma porta alta alocada dinamicamente para a aplicao cliente, existem casos em que o cliente e servidor utilizam portas determinadas, como por exemplo, o DHCP em que o servidor utiliza a porta 67 e o cliente a 68. A aplicao cliente responsvel por iniciar o contato com a aplicao servidora, atravs de sua porta bem conhecida e endereo IP. Para o servidor receber o contato inicial e respond-lo, sua aplicao tem que estar ativa (rodando) e escutando a sua porta padro. como se ns clientes tivssemos um fornecedor (servidor), como por exemplo, de assinatura de revistas, responsvel por atender nossas solicitaes por telefone (ou seja, por uma rede). O nmero do telefone e ramal (no caso, endereo IP e nmero de porta) do prestador do servio precisam ser conhecidos pelo cliente que deseja o servio. Para algum poder atender a demanda do cliente, precisa estar disponvel (rodando) e escutando o seu ramal. Uma vez que o cliente telefona e o funcionrio do fornecedor atende, a comunicao estabelecida para a prestao de servio poder ser realizada. Em relao s portas, podemos tambm fazer uma analogia da camada de aplicao do servidor com um andar de atendimento de um hospital, com vrias especialidades. Se voc estiver procurando um cardiologista, ter que se dirigir porta 443 (HTTPS). Um paciente que precisa de um neurologista ter que entrar na porta 22 (SSH).

Copyright 2011, ESAB Escola Superior Aberta do Brasil

14

Figura 3 Comunicao de Aplicaes Cliente-Servidor atravs da Rede

As portas bem conhecidas so definidas pelo IANA (Internet Assigned Numbers Authority Autoridade Atribuidora de Nmeros da Internet) e podem ser vistas em http://www.iana.org/assignments/port-numbers.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

15

NIDADE

Objetivo: Apresentar os dois principais protocolos da Camada de Tranporte, o UDP e o TCP.

Servios da Camada de Transporte: UDP e TCP A camada de transporte fica situada em uma posio chave entre a camada de aplicao e a camada de rede, portanto, presta servios para a camada de aplicao e utiliza servios fornecidos pela camada de redes. Vale ressaltar que os servios fornecidos pela camada de redes no confivel, visto que o servio IP no garante a entrega, ordem e integridade dos datagramas. Com os servios IP existe a possibilidade de datagramas transbordarem os buffers dos roteadores e no chegarem ao seu destino final, assim como podem chegar fora de ordem, ou at mesmo possuir os seus bits corrompidos (mudar de 0 para 1 ou de 1 para 0). Portanto o IP no foi projetado para ser confivel. Dessa forma, cabe a camada de transporte definir se vai fornecer ou no confiabilidade na entrega. Assim, uma das principais funes da camada de transporte proteger as camadas superiores das imperfeies da rede. A separao dos servios e ocultamento de complexidade das camadas inferiores so caractersticas que tornam os modelos em camadas to teis. A seguir sero apresentados de maneira breve os dois principais protocolos da camada de transporte: o UDP e o TCP. UDP O UDP (User Datagram Protocol Protocolo de Datagrama do Usurio) permite que as aplicaes enviem mensagens sem realizar uma apresentao mtua do cliente-servidor, ou seja, quando um dos lados deseja enviar pacotes para outro, ele apenas os envia. Como no h uma sesso de apresentao entre o remetente e destinatrio, o UDP classificado como no orientado conexo. O UDP foi definido na RFC 768 em 1980 (http://tools.ietf.org/html/rfc768), e quase uma extenso da camada de rede, visto que realiza somente o mnimo esperado por um
Copyright 2011, ESAB Escola Superior Aberta do Brasil 16

protocolo de transporte. A estrutura do seu segmento, apresentada na Figura 4, consiste em um cabealho de 8 bytes, sendo quatro campos de 2 bytes cada. Os campos que representam o nmero da porta da fonte e do destino servem para que a camada de transporte entregue o segmento para o processo da aplicao correta. O campo do comprimento informa o tamanho total do segmento UDP, incluindo os 8 bytes do cabealho. J o checksum, ou soma de verificao, serve para o receptor verificar se ocorreu algum erro com o segmento.

Figura 4 Estrutura de um segmento UDP

Portanto, o UDP ao receber a mensagem do processo de aplicao, adiciona as informaes dos nmeros das portas fonte e destino e outros dois pequenos campos. Esse segmento ento entregue camada de rede, que o encapsular em um datagrama IP e tentar via melhor esforo entregar ao destinatrio, para que esse realize o processo inverso e o UDP possa entregar ao processo de aplicao correto. O UDP no fornece um servio confivel de dados, visto que no realiza garantia de entrega, controle de fluxo e nem controle de erros ou retransmisso. Ele simplesmente fornece um meio para que o protocolo IP possa ser entregue para aplicao correta. Mas se o UDP no fornece um servio de transferncia confivel de dados, no seria melhor que as aplicaes sempre escolhessem o TCP como protocolo da camada de transporte? Na realidade, no. E o motivo porque existem aplicaes em que pequenas
Copyright 2011, ESAB Escola Superior Aberta do Brasil 17

perdas so tolerveis de forma que uma entrega confivel no seja imprescindvel. Por exemplo, as aplicaes de vdeo conferncia, transmisso de udio e vdeo em tempo real normalmente rodam sobre o UDP devido a esse motivo. Outro exemplo o protocolo da camada de aplicao DNS (veremos mais detalhes sobre o DNS na Unidade 12) que normalmente realiza suas requisies padres na Internet utilizando o UDP. Existe uma forma de ter uma transferncia confivel de dados utilizando o UDP, que realizar todo o controle na prpria aplicao. S que ela no trivial e necessita de mais esforo dos desenvolvedores que precisam implementar todo controle. Entretanto, muitas aplicaes proprietrias de transferncia de vdeo e udio que utilizam o UDP optam por essa estratgia de realizar o controle na aplicao para reduzir a perda de pacotes. TCP O TCP (Transmission Control Protocol Protocolo de Controle de Transmisso) o protocolo da camada de transporte que fornece uma transferncia de dados confivel e orientado conexo. Ele foi projetado para fornecer o servio de transferncia confivel entre redes com topologias, largura de banda, tamanho de pacotes, atrasos, entre outras configuraes distintas. Portanto o objetivo do TCP fornecer um servio confivel em uma rede no confivel. O TCP foi apresentado em um artigo em maio de 1974, seguido pela primeira especificao na RFC 675 do mesmo ano

(http://tools.ietf.org/html/rfc675). Posteriormente o TCP foi especificado no RFC 793 (http://tools.ietf.org/html/rfc793), e alguns esclarecimentos e solues de bugs foram descritos em RFCs posteriores. Do ponto de vista da aplicao uma conexo TCP uma conexo virtual direta entre as portas das aplicaes cliente e servidor. Entretanto, somente cliente e servidor tm conhecimento desta conexo virtual, visto que os elementos intermedirios da rede (ex: roteadores) no mantm nenhuma informao da conexo TCP, tomando conhecimento apenas dos datagramas que passam por eles. As conexes TCP so full-duplex porque o trfego pode ser feito entre o cliente e servidor ao mesmo tempo, ou seja, os dados da camada de aplicao podem ser transferidos do cliente para o servidor no mesmo instante em que o servidor transfere dados para o cliente. As conexes TCP tambm so ponto a ponto, ou seja, ocorre
18

Copyright 2011, ESAB Escola Superior Aberta do Brasil

exatamente entre duas extremidades (um remetente e um destinatrio), de forma que a transferncia de um remetente para vrios destinatrios (o chamado multicast), no fornecida pelo TCP. J o UDP permite multicast. A Figura 5 apresenta a estrutura de um segmento TCP. Normalmente, o cabealho TCP tem 20 bytes, ou seja, 12 a mais do que o cabealho UDP. Assim como no UDP, o cabealho TCP possui os campos com o nmero da porta fonte e destino, e o campo checksum, para realizar a soma de verificao.

Figura 5 Estrutura de um segmento TCP

O campo nmero de sequncia e nmero de confirmao possuem 32 bits cada, e so utilizados pelo TCP para fornecer o servio confivel. O nmero de sequncia indica o nmero sequencial do primeiro byte de dados contidos no segmento. Dessa forma, supondo que os dados fossem divididos em 1000 bytes, o
Copyright 2011, ESAB Escola Superior Aberta do Brasil 19

primeiro segmento teria nmero de sequncia = 0, o segundo = 1000, o terceiro = 2000, e assim sucessivamente at atingir tamanho total da mensagem sendo transmitida. Para evitar possveis conflitos, o nmero de sequncia inicial pode ser escolhido aleatoriamente e os demais segmentos somam a quantidade de bytes a esse nmero inicial. J o nmero de confirmao representa o prximo byte que o destinatrio est aguardando. Dessa forma, se o destinatrio envia um nmero de reconhecimento 3001, ele indica que todos os segmentos com nmero de sequncia menores do que 3001 j foram recebidos, permitindo assim que os dados no recebidos sejam retransmitidos. O campo comprimento de cabealho possui 4 bits e serve para indicar o tamanho do cabealho, uma vez que o campo opes poder ter comprimento varivel. Por essa razo, o cabealho TCP poder ter comprimento varivel. Como o campo opes normalmente vazio, o comprimento de um cabealho TCP tpico 20 bytes. O prximo campo de 6 bits no utilizado, ele havia sido reservado para corrigir possveis erros do projeto original, mas como o TCP foi bem organizado, isso no foi preciso. Em seguida o campo flag contm 6 bits. O campo URG indica que o campo do ponteiro de dados urgentes est sendo usado, indicando que a camada superior do remetente enviou dados urgentes. O campo ACK (de acknowledgement, ou confirmao/reconhecimento em portugus) utilizado para indicar que o segmento possui um nmero de confirmao que deve ser analisado. J o bit PSH tem o objetivo de informar que o destinatrio deve passar os dados para a camada superior na medida em que eles chegarem, ao invs de aguardar que o buffer completo tenha sido recebido para realizar essa passagem. O bit RST indica que a conexo deve ser resetada devido algum tipo de problema. O SYN utilizado para estabelecer conexes, como veremos a seguir. E por fim, o bit FIN indica que a conexo deve ser encerrada j que o remetente no possui mais dados para enviar. O campo tamanho da janela possui 16 bits, e indica o nmero de bytes que o destinatrio deseja receber a partir do ltimo byte confirmado, servindo para
Copyright 2011, ESAB Escola Superior Aberta do Brasil 20

controle de fluxo. Quando esse campo possui o valor 0, o destinatrio informa que recebeu os dados de acordo com o campo nmero de confirmao e que no deseja receber mais dados no momento. Para restabelecer a transmisso, o destinatrio envia um segmento com o tamanho de janela diferente de 0, e com o mesmo nmero de reconhecimento anterior. O campo opes possui tamanho varivel, opcional, e foi projetado para oferecer recursos extras. Em uma conexo TCP, antes do processo da aplicao enviar dados ao destinatrio preciso estabelecer uma conexo, ou seja, o remetente e destinatrio precisam trocar alguns segmentos preliminares para acordar sobre parmetros de transferncia. Pelo fato do estabelecimento de conexo ser necessrio, dizemos que o TCP orientado conexo. Essa conexo estabelecida com um procedimento Handshake (em portugus "aperto de mos", ou seja, fase de estabelecimento do acordo) de 3 passos (three-way handshake). Nesta etapa, o lado do cliente envia um segmento especial ao servidor, sem nenhum dado de aplicao e com o bit SYN igual a 1, indicando que deseja estabelecer uma conexo TCP. Adicionalmente, esse segmento contm o nmero definido pelo cliente como valor inicial para o campo nmero de sequncia (conforme vimos anteriormente), que pode ser zero. O servidor, ao receber o segmento, reserva buffers e variveis TCP e em seguida envia um segmento TCP ao cliente como forma de confirmar a conexo. Esse segundo segmento, assim como o primeiro, no possui dados de aplicao e o bit SYN tambm igual a 1. J o campo nmero de sequncia possui um valor inicial definido pelo servidor (tambm pode ser zero) e o campo nmero de confirmao o campo de sequncia do cliente + 1. Para finalizar, aps o cliente receber o segmento de confirmao a terceira etapa consiste em o cliente reservar buffers e variveis e enviar ao servidor o ltimo segmento, com SYN = 0 e confirmao = sequncia do servidor + 1. Esse ltimo segmento pode conter dados da aplicao. Um handshake de 3 passos apresentado na Figura 6, utilizando como exemplo o nmero de sequncia inicial do cliente = 1200 e o do servidor = 5300. Portanto, uma conexo TCP consiste em variveis, buffers, porta para aplicao no lado cliente e servidor, mas nada nos elementos de rede intermedirios (ex: roteadores). Atravs dos campos do cabealho apresentado o TCP fornece o servio confivel de
Copyright 2011, ESAB Escola Superior Aberta do Brasil 21

entrega, oferecendo controle de fluxo, controle de congestionamento, retransmisso de segmentos perdidos e ordenao dos segmentos que chegam fora de ordem. Assim, o TCP oculta os erros existentes na camada de redes, dando a impresso aplicao que existe um fluxo contnuo de dados, garantindo que a mensagem entregue a mesma enviada pelo remetente e no est corrompida, est na ordem e no possui lacunas.

Figura 6 Estabelecimento de Conexo TCP em Trs Passos (Three-way Handshake)

Aplicaes que precisam de um servio de transferncia confivel, como por exemplo, transferncia de arquivos, correio eletrnico e web, rodam sobre TCP.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

22

NIDADE

Objetivo: Apresentar os protocolos SSL e TLS, que podem ser utilizados pelos protocolos da camada de aplicao para transmisso de dados com confidencialidade e integridade.

Servios Seguros de Transporte: SSL e TLS O SSL (Secure Sockets Layer, ou em portugus, Camada de Sockets Segura) e o seu sucessor TLS (Transport Layer Security, ou Segurana da Camada de Transporte) so protocolos destinados a prover privacidade e integridade para comunicao entre duas aplicaes. O SSL surgiu da necessidade de utilizao da WEB para trocar informaes confidenciais, como por exemplo, utilizao para fins comerciais. Inicialmente a WEB era utilizada apenas para apresentar pginas estticas, mas logo seu potencial para permitir transaes financeiras (ex: compra de mercadoria com carto de crdito) foi descoberto, introduzindo a necessidade de conexes seguras. Como o protocolo HTTP (apresentado na Unidade 6), utilizado como protocolo para transferir pginas WEB, no criptografa as mensagens e tambm no protege os dados confidenciais, vrias tecnologias foram propostas para sanar esta necessidade. O protocolo que rapidamente se tornou popular para esta finalidade foi o SSL. Histrico O SSL foi apresentado pela Nestcape Communications Corp. em 1994. Na poca a Netscape era a empresa referncia em navegadores. A primeira verso comercial, verso 2.0 (a verso 1.0 no chegou a ser lanada publicamente), foi apresentada no Netscape Navigator no final de 1994 e incio de 1995. Posteriormente em 1995, a Microsoft lanou sua verso inicial do Internet Explorer com uma tecnologia prpria de criptografia, apresentando melhorias em relao ao SSL 2.0. Em seguida (1996) a Netscape lanou o SSL 3.0 que tornou a tecnologia da Microsoft irrelevante. Na medida em que o SSL 3.0 se tornava o padro de facto, a IETF iniciou a sua padronizao, concluindo-a em 1999 (RFC 2246 - http://tools.ietf.org/html/rfc2246) de forma a torn-lo o protocolo oficial para
23

Copyright 2011, ESAB Escola Superior Aberta do Brasil

segurana das comunicaes Web, porm com o nome de Transport Layer Security (TLS). As diferenas entre o TLS 1.0 e SSL 3.0 so pequenas, mas significantes o suficiente para fazer com que as duas no interoperem. O protocolo SSL 3.0 tambm referenciado como SSL3, e o TLS 1.0 como TLS1 ou tambm como SSL3.1. Aps o lanamento do TLS 1.0, foram lanados os TLS 1.1 (RFC 4346 - http://tools.ietf.org/html/rfc4346) em 2006 e TLS 1.2 (RFC 5246 - http://tools.ietf.org/html/rfc5246) em 2008, para sanar algumas falhas de segurana identificadas nas verses anteriores. Ao longo deste mdulo o termo SSL ser utilizado para designar tanto o SSL quanto o TLS, exceto quando for explicitado o uso especfico Objetivos Os principais objetivos do SSL so: confidencialidade da comunicao, integridade dos dados, autenticao do servidor e autenticao do cliente (embora esse ltimo seja raramente utilizado, ele til para VPN SSL). A confidencialidade da comunicao proporcionada na medida em que apenas os dois computadores que esto participando de troca de mensagens com SSL devem ser capazes de entender as mesmas, que so transferidas criptografadas. Ou seja, o SSL evita que a comunicao seja violada. O SSL atua como se estivesse criando um tnel seguro entre as duas mquinas que se comunicam em um ambiente inseguro. Esse tnel virtual protege de forma que se algum conseguir interceptar as mensagens trocadas, no seria capaz de decifr-las. A integridade dos dados proporcionada pela proteo dada s mensagens transferidas na sesso, de forma que no possam ser modificadas desde o momento do envio pelo remetente at o recebimento pelo destinatrio. Uma sesso SSL segura apenas se existir uma Terceira Parte Confivel para assegurar a autenticidade do cliente/servidor, ou seja, garantir que as partes so quem realmente afirmam ser. Essa funo exercida pelas Autoridades Certificadoras, que emitem o certificado digital do servidor ou cliente.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

24

O protocolo SSL/TLS fica situado entre a aplicao e a camada de transporte, permitindo criar tneis criptografados para vrios protocolos de aplicaes que se situam acima, como por exemplo, HTTP, FTP, SMTP, dentre outros. A utilizao do HTTP com SSL/TLS forma o HTTPS. Primeiramente o SSL foi utilizado sobre protocolos confiveis da camada de transporte, como o TCP, mas tambm pode ser implementado para outros protocolos desta camada, como o UDP por exemplo. Criptografia de Chaves Simtricas e Assimtricas Antes de prosseguirmos no entendimento do SSL, importante conhecermos os conceitos bsicos dos algoritmos de criptografia de chave simtrica e assimtrica, ambos utilizados no SSL. A parte de criptografia bem extensa e est fora do escopo deste mdulo. O objetivo mostrar de maneira geral o conceito do funcionamento para entender o modo de operao do SSL. O algoritmo de chaves simtricas utiliza a mesma chave para criptografar e descriptografar, de forma que as partes envolvidas na comunicao devem compartilhar uma chave comum. Todos que tiverem acesso chave podem descriptografar a mensagem. J o algoritmo de chaves assimtricas utiliza duas chaves: a chave privada secreta e a chave pblica. Uma mensagem criptografada com a chave pblica s pode ser descriptografada com a chave privada correspondente, ou seja, o detentor da chave privada envia a chave pblica para o seu interlocutor para criptografar as mensagens e mantm a chave privada somente sob o seu domnio, de forma que s ele consiga descriptografar. A chave pblica, como o nome j diz, no secreta e compartilhada com o pblico. Se a mensagem criptografada com a chave pblica for interceptada por um invasor, o mesmo no conseguir decifr-la, visto que somente o detentor da chave privada poder descriptograf-la. O algoritmo de chaves simtricas exige menos processamento de CPU do que o de chaves assimtricas. O algoritmo de chaves assimtricas muito lento para codificar grandes volumes de dados. Entretanto, o algoritmo de chaves simtricas apresenta uma desvantagem, visto que a chave precisa ser compartilhada entre as partes que desejam se comunicar. E como compartilhar uma chave de forma segura em uma rede insegura como a Internet? Esse segundo problema o algoritmo de chaves assimtricas no enfrenta, visto que a sua chave pblica pode ser conhecida por todo mundo.
Copyright 2011, ESAB Escola Superior Aberta do Brasil 25

Para utilizar os benefcios e sanar as dificuldades de cada um dos dois algoritmos, surge uma combinao muito interessante: a utilizao do algoritmo de chaves assimtricas para compartilhar a chave simtrica entre o cliente/servidor, de forma que todas as mensagens trocadas em seguida sejam criptografadas com a chave simtrica. Nesse modelo, o cliente obtm a chave pblica do servidor com o qual deseja se comunicar, gera uma chave simtrica aleatria, criptografa-a com a chave pblica obtida e a envia ao servidor. O servidor descriptografa a mensagem utilizando sua chave privada e fica de posse da chave simtrica enviada pelo cliente. Pronto, a chave simtrica foi compartilhada de forma segura e as prximas mensagens podero ser criptografadas utilizando o algoritmo simtrico, que requer menos processamento. A Figura 7 abaixo apresenta o compartilhamento da chave simtrica de maneira segura, demonstrando que no passo 1 o servidor que possui um par de chaves assimtricas envia sua chave pblica para o cliente atravs de uma rede que est grampeada por um invasor. Esse invasor intercepta a mensagem e tambm fica de posse da chave pblica do servidor. Em seguida, o cliente pega a sua chave simtrica e gera uma mensagem, criptografando-a com a chave pblica do servidor. No passo 2 o cliente envia essa mensagem criptografada ao servidor, e o invasor a intercepta. Por fim, o invasor tenta descriptografar a mensagem com a chave pblica do servidor, mas no consegue, visto que s o servidor com sua chave privada realizar essa descriptografia. Dando sequncia ao processo de comunicao, uma que o servidor est de posse da chave simtrica todas as mensagens trocadas entre o cliente e servidor sero criptografadas com essa chave, como apresenta a Figura 8.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

26

Figura 7 Envio da Chave Simtrica criptografando-a com a Chave Assimtrica Pblica

Figura 8 Troca de Mensagens Criptografadas com a Chave Simtrica

Copyright 2011, ESAB Escola Superior Aberta do Brasil

27

Portanto, cada sesso SSL/TLS utiliza dois tipos de criptografia, assimtrica e simtrica. A criptografia de chaves assimtricas utilizada no "handshake" para permitir trocar de forma segura a chave simtrica. Aps essa fase inicial, toda comunicao de uma sesso SSL/TLS criptografada utilizando as chaves simtricas. Vale citar que existe outra forma de utilizao de um par de chaves privada/pblica para garantir a autenticidade, s que sem garantir a confidencialidade. Neste caso, o proprietrio utiliza sua chave privada para criptografar as mensagens que enviar. Qualquer um de posse da chave pblica poder descriptografar a mensagem (por isso no garante a confidencialidade) tendo certeza que ela foi assinada digitalmente pelo remetente que possui a chave privada. Um exemplo de utilizao de autenticidade atravs de chaves assimtricas pelo DNSSEC, uma extenso de segurana do DNS que estudaremos mais adiante. HandShake O incio de uma sesso SSL se d atravs de um procedimento handshake, quando um cliente tenta se conectar utilizando SSL a um servidor que fornea suporte a esse protocolo. Nesta etapa, o servidor e o cliente negociam alguns parmetros, dentre eles a verso do SSL/TLS a ser utilizada e o algoritmo de criptografia. O SSL fornece suporte a diferentes tipos de algoritmos de criptografia. Os algoritmos disponveis para uma sesso SSL podem variar de acordo com a verso do SSL/TLS, restries governamentais, restries da aplicao cliente e polticas empresariais. Ainda na fase de handshake, aps o acordo do algoritmo de criptografia, o servidor envia o seu certificado digital como forma de identificao. O certificado normalmente contm o nome do servidor, a Autoridade Certificadora (que deve ser confivel) e a chave pblica de criptografia do servidor. O cliente pode entrar em contato com Autoridade Certificadora para confirmar a validade do certificado antes de prosseguir. Uma vez que o certificado validado, o cliente gera uma chave para a comunicao (chave simtrica), criptografa-a com a chave pblica do servidor, e envia para o servidor. Como a chave foi criptografada com a chave pblica do servidor, apenas esse deve ser capaz de descriptograf-la, utilizando sua chave privada. Se a autenticao do cliente for necessria, durante o handshake o servidor requisitar o certificado do cliente.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

28

Assim o handshake concludo, a conexo segura iniciada e todas as mensagens trocadas sero criptografadas com a chave simtrica.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

29

NIDADE

Objetivo: Explicar o funcionamento e utilidade de um analisador de pacotes de rede, utilizando como ferramenta o software open source Wireshark. O Analisador de pacotes ser til para demonstrar nas prximas unidades os pacotes de alguns dos servios de redes descritos neste mdulo.

Analisador de Pacotes de Rede Introduo Em uma rede com vrios servios como DHCP, DNS, Servidor de E-mail e inmeras aplicaes sendo executadas por diversos usurios como identificar problemas? Como saber quais protocolos e portas dos protocolos de transporte esto sendo utilizadas a fim de se configurar um firewall corretamente? Uma das formas de se fazer um levantamento do que est sendo utilizado em uma rede utilizar um software analisador de pacotes. H inmeros programas capazes de fazer a captura de pacotes disponveis na Internet, tais como tcpdump, tshark, Wireshark, alm de diversos sniffers disponveis. Normalmente utilizam das bibliotecas de software libpcap/Winpcap, que devem ser instaladas junto com os programas. O funcionamento adequado destes programas depende de alguns fatores. O primeiro deles que estes sejam executados por um usurio administrador da mquina em que esto instalados. O motivo desta necessidade que a placa de rede deve ser colocada em modo promscuo fazendo com que todos os pacotes que cheguem a esta placa de rede sejam capturados, mesmo que estes no sejam endereados a ela. Em outro modo de funcionamento, pacotes que no so endereados (via MAC, Media Access Control, endereo da camada de enlace em uma rede Ethernet) a uma interface so descartados. Outro fator importante fazer com que todos os pacotes da rede cheguem a esta placa de rede. H vrias topologias de composio de uma rede Ethernet que utilizam de elementos como hubs , switches e roteadores para realizar as interconexes. Os roteadores atuam na interconexo de duas redes Ethernet atuando na camada IP. Os outros dois trabalham em camada de enlace, sendo a diferena bsica entre eles o
Copyright 2011, ESAB Escola Superior Aberta do Brasil 30

acesso s informaes. Os hubs copiam as informaes que entram em uma interface a todas as outras, e os equipamentos conectados a estas verificam se estas informaes so endereadas a eles ou no. Os switches possuem uma inteligncia no encaminhamento de pacotes. Primeiramente, atravs do protocolo ARP, verifica em qual porta est a mquina de destino e a partir de ento, os pacotes com mesmo endereo so copiados apenas para esta interface. Ento pode ser necessria a utilizao de um hub para capturar os pacotes de uma parte da rede.

Figura 9 - Exemplo de topologia de rede

Na Figura 9 mostrada acima temos uma topologia de rede para melhor exemplificar os pacotes capturados. Neste caso a mquina com o analisador de pacotes capturaria todos os pacotes destinados ao gateway, mas no capturaria pacotes entre duas mquinas usurias. Outras tcnicas podem ser utilizadas para isto, como espelhamento de trfego no switch e um tipo de ataque chamado ARP spoofing. Note que as informaes disponveis nesta Unidade so para fins acadmicos e no devem ser utilizadas para violar a privacidade e realizar ataques a redes de empresas, ficando o aluno responsvel pela autorizao de utilizar estas ferramentas em redes privadas e pelas consequncias ocasionadas por elas. Por ser open source e possuir uma interface muito amigvel, um decodificador de protocolos muito eficiente oferecendo suporte a filtros de captura e anlise de fluxos e a

Copyright 2011, ESAB Escola Superior Aberta do Brasil

31

possibilidade de capturar em tempo real pacotes de uma rede, utilizaremos o programa Wireshark como padro de analisador de pacotes neste Mdulo. Para download e procedimentos de instalao do software visite a pgina do projeto: www.wireshark.org. Neste site voc encontrar os arquivos de instalao e uma documentao completa que poder sanar dvidas quanto a utilizao do programa. Wireshark Dependendo sistema operacional (SO) no qual o programa Wireshark for instalado, o software ter suporte a diferentes tipos de rede. Isso depende principalmente da verso da biblioteca libpcap/Winpcap utilizada. O suporte do Wireshark aos diversos tipos de rede listado de forma de atualizada acordo com no o site sistema

http://wiki.wireshark.org/CaptureSetup/NetworkMedia

operacional utilizado. Abaixo, na Figura 10, mostrado o suporte oferecido em dezembro de 2010.

Figura 10 - Suporte do Wireshark a diferentes tipos de rede por SO

Nota-se que o suporte completo s conseguido utilizando-se distribuies de sistema operacional Linux. Porm para nosso estudo ser necessrio apenas suporte a redes Ethernet, WLAN.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

32

Quando se executa o programa, a janela principal, mostrada na Figura 11, apresentada ao usurio e oferece diversos recursos, tais como a janela de Captura de Trfego (em ingls, Capture) indicada no quadro A, e um Guia de usurio (em ingls, Users Guide) indicado no quadro B. A partir do quadro A pode-se iniciar diretamente a captura de trfego clicando-se numa das interfaces listadas na Lista de Interfaces (Interface List). Desta forma a captura se dar de acordo com as configuraes padro do Wireshark, que no incluem filtro de captura.

Figura 11 - Janela principal do Wireshark

Outra forma de se iniciar a captura de trfego clicar no cone Options da Barra de Ferramentas principal do Wireshark, mostrado na Figura 12. Ao se fazer isto a janela de Opes de Captura de Trfego (Capture Options), apresentada na Figura 13, ser apresentada.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

33

Figura 12 - Barra de Ferramentas Principal

A janela de Opes de Captura de Trfego mostra os dados da interface de rede selecionada e as opes de captura de trfego, tais como resoluo de nomes do endereo MAC (Enable MAC name resolution) e campo para incluso de um filtro de captura, onde apenas os pacotes que satisfizerem as condies explicitadas sero registrados. A princpio no utilizaremos os filtros de captura, mas sim filtros de exibio, que sero abordados mais a seguir. Uma vez selecionadas as opes desejadas, basta iniciar a coleta de trfego clicando no boto Start e os pacotes sero capturados e mostrados em tempo real. Para parar a captura basta clicar em Stop na Barra de Ferramentas Principal.

Figura 13 - Janela de Opes de Captura de Trfego

Copyright 2011, ESAB Escola Superior Aberta do Brasil

34

A janela de Captura de trfego, Figura 14, mostra a janela de Captura de Anlise de Trfego. No quadro A dessa figura, mostram-se as informaes principais dos pacotes coletados, tais como, tempo (time), Endereo de Origem (Source) e Destino (Destination), Protocolo (Protocol). Cada protocolo marcado com uma cor diferente facilitando sua localizao dentro dos inmeros pacotes capturados.

Figura 14 - Janela de Captura e Anlise de Trfego

No quadro B da Figura 14, apresentado o detalhamento dos cabealhos dos pacotes, podendo o usurio verificar cada campo destes. Quando se clica em um campo do cabealho em B evidenciado em C-1 os bits, convertidos em hexadecimais, referentes aquele campo. C-1 mostra todos os bits do pacote capturado. Em C-2 mostrado os bits do pacote codificados em ASCII. Cada par de algarismos hexadecimais (8 bits) representado por um caractere. Com isto pode-se ver as strings contidas nos campos de cabealhos e dados em codificao ASCII, j que se tornaria muito difcil a sua interpretao em hexadecimal. em C-2 que se consegue visualizar os dados no criptografados de uma conexo. Normalmente so apresentados pontos e outros

Copyright 2011, ESAB Escola Superior Aberta do Brasil

35

caracteres que no tm valor semntico. Isto acontece, pois os campos de cabealho no possuem sempre o mesmo nmero de bits de um caractere ASCII. Filtros Aps iniciada a captura de trfego possvel a incluso de filtros de visualizao, teis para restringir os pacotes mostrados, facilitando a visualizao de pacotes de protocolos / hosts especficos. A configurao de um filtro feita na caixa de texto, Filter, que pode ser vista na Figura 13. Um exemplo de filtro seria incluir nesta caixa a string tcp. Com isto apenas pacotes do protocolo TCP sero mostrados. Filtros mais complexos podem ser utilizados para restringir ainda mais os pacotes como a string tcp.dstporttcp.dstport == 21. Neste caso s pacotes TCP com porta de destino 21 sero apresentados. A combinao de vrias strings possvel atravs para de funes and, or e not (e, ou e no). Um exemplo seria o seguinte filtro: host 10.0.0.22 and not (port 80 or port 25). Neste filtro s sero visualizados pacotes com origem e destino no IP 10.0.0.22 e que no utilizam as portas 80 (HTTP) e 25 (SMTP). Para auxlio na criao de filtros mais complexos ainda que este, utilize o boto + Expression... na frente do campo do texto de edio de filtros, Filter, ou acessar o site: http://wiki.wireshark.org/CaptureFilters. Concluso Nesta unidade foram apresentados conceitos bsicos da utilizao de um analisador de pacotes com uma interface amigvel e muito til para administradores de rede em geral, o Wireshark. Aprendemos a como capturar trfego de diferentes tipos de interface, visualizar os campos dos cabealhos de pacotes e criar filtros para facilitar visualizao destes pacotes.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

36

Note que as informaes disponveis nesta Unidade so para fins de estudo e no devem ser utilizadas para violar a privacidade e realizar ataques a redes, ficando o aluno responsvel pela autorizao de utilizar estas ferramentas em redes privadas e pelas consequncias ocasionadas por elas. Uma ferramenta para captura de pacotes de valor inestimvel para permitir que administradores de redes realizem o gerenciamento e monitoramento das mesmas. Mas infelizmente tambm so utilizadas por criminosos. Sabemos que a apresentao das informaes desta Unidade no fornecem conhecimento para uma pessoa se tornar um hacker, que precisa de muito mais conhecimento para realizar ataques. Entretanto, no custa reforar: Aja sempre de forma tica.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

37

U
HTTP

NIDADE

Objetivo: Conhecer o protocolo HTTP, utilizado para transferncia de pginas Web.

O HTTP (Hypertext Transfer Protocol) um protocolo cliente-servidor utilizado para transferncia de pginas Web (e respectivos objetos) em toda World Wide Web, especificando como os clientes (navegadores, conhecidos tambm como browsers) devem solicitar as pginas e como os servidores devem transferi-las de volta aos clientes. O HTTP tem sido utilizado pela World Wide Web desde 1990 a partir da sua primeira verso, a de nmero 0.9. A sua verso mais atual, HTTP 1.1, foi oficialmente lanada em janeiro de 1997, porm atualizaes e melhorias foram especificadas no RFC 2616 (http://tools.ietf.org/html/rfc2616) em junho de 1999. A partir do seu lanamento, essa verso foi amplamente adotada e mantm compatibilidade com a verso 1.0. Antes de aprofundarmos sobre o HTTP, importante entender as pginas Web. As pginas Web so acessadas atravs de uma URL e so compostas por objetos, que por sua vez so arquivos, como arquivos HTML, imagens JPEG, arquivos de udio, etc. Na maioria dos casos, as pginas Web possuem um arquivo HTML como base e diversos objetos relacionados atravs das suas respectivas URLs. Uma pgina Web que possui texto HTML e trs imagens JPEG, possui quatro objetos ao todo. Muitas vezes acessamos sites na Internet e no nos damos conta do mecanismo que funciona por trs, como por exemplo, a quantidade de objetos transferidos. A Figura 15 a seguir apresenta a quantidade de objetos retornados ao acessarmos um portal de contedo (no caso abaixo utilizamos www.globo.com para exemplificao). Repare que cada objeto existente na pgina foi retornado em um mtodo GET (estudaremos o GET na prxima unidade), completando 122 requisies. Para efeito de demonstrao de um objeto, destacamos a imagem uma televiso. A Figura 15 foi obtida da ferramenta add-on do Firefox chamada Firebug (mais detalhes sobre o Firebug no final desta unidade).

Copyright 2011, ESAB Escola Superior Aberta do Brasil

38

Figura 15 Demonstrao de 122 Requisies de Objetos com o Firebug

O protocolo de transporte utilizado pelo HTTP o TCP. Como o TCP fornece um servio confivel de transferncia de dados, recuperando os dados perdidos ou reordenando-os dentro da rede, o HTTP no precisa se preocupar com os mesmos. O processo servidor, normalmente, escuta a porta padro 80, aguardando as solicitaes dos clientes que so realizadas atravs de uma URL. O servidor responde s solicitaes enviando os arquivos requisitados pelo cliente sem manter nenhuma informao sobre o estado do cliente, ou seja, se um cliente especfico solicitar duas vezes o mesmo objeto com poucos segundos de diferena, o servidor
Copyright 2011, ESAB Escola Superior Aberta do Brasil 39

reenviar o arquivo visto que no possui a informao de que havia o enviado h pouco tempo. Por esse motivo, o HTTP chamado de protocolo sem estado. Conexes Persistentes e Conexes No Persistentes No HTTP 1.0, a conexo TCP era encerrada aps o recebimento de cada resposta pelo cliente, ou seja, caso uma pgina possusse dez objetos (um arquivo base HTML e nove arquivos relacionados), era necessrio estabelecer dez conexes TCP. Dessa forma, cada conexo transporta apenas uma nica mensagem de requisio e uma mensagem de resposta. Como a conexo no persiste para outros objetos, ela chamada de conexo no persistente. As conexes TCP podiam ser sequenciais ou paralelas, de acordo com a configurao definida no navegador. Na poca do lanamento da verso 1.0 as pginas consistiam praticamente de textos HTML, tornando aceitvel esse tipo de comportamento ocasionado pelas conexes no persistentes. Entretanto, no decorrer da evoluo da WEB as pginas passaram a conter vrios objetos, tornando muito custoso estabelecer uma conexo TCP para transportar um nico cone. Observando que esse modo de operao gerava overhead desnecessrio, o lanamento do HTTP 1.1 permitiu o estabelecimento de conexes persistentes, inclusive esse sendo o seu modo default. Desta maneira, o servidor deixa a conexo TCP aberta aps enviar uma resposta permitindo que as requisies e respostas subsequentes entre o mesmo cliente e servidor sejam enviadas por essa conexo. Caso a conexo fique um tempo sem ser utilizada, o servidor HTTP a fecha. Esse perodo chamado de intervalo mximo de pausa (timeout), e normalmente pode ser configurado. Alm do encerramento por timeout, essa conexo tambm pode ser encerrada por solicitao do cliente. As conexes persistentes tambm podem ser sem paralelismo ou com paralelismo. Nas conexes sem paralelismo, o cliente lana a nova requisio apenas quando a resposta anterior recebida. Uma desvantagem deste tipo que aps o servidor enviar uma resposta, ele fica ocioso at chegar a prxima requisio, representando um desperdcio de recursos do servidor. Nas conexes com paralelismo o cliente pode fazer requisies completas para os objetos relacionados, permitindo que o servidor envie todos os objetos.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

40

O Firebug (disponvel em: https://addons.mozilla.org/pt-br/firefox/addon/firebug/) uma ferramenta de desenvolvimento gratuita muito til que pode ser integrada ao Firefox. Esta ferramenta permite editar, debugar e monitorar HTML, JavaScript e CSS enquanto voc navega em uma pgina.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

41

NIDADE

Objetivo: Conhecer o protocolo HTTP, utilizado para transferncia de pginas Web.

HTTP (Continuao) Mensagens HTTP Existem dois tipos de mensagens HTTP, as Mensagens de Requisio - enviadas pelo cliente ao servidor, e as Mensagens de Resposta enviadas do servidor para o cliente. Os formatos das mensagens so definidos nos RFCs do HTTP e sero apresentados de maneira sucinta a seguir. Mensagens de Requisio HTTP A seguir apresentada uma mensagem de requisio tpica, utilizando como exemplo a URL http://www.esab.edu.br/site/cursos/index.cfm:

Figura 16 Exemplo de uma Mensagem de Requisio HTTP

Analisando a mensagem, percebemos que ela est escrita em ASCII, permitindo a identificao das palavras por seres humanos. Na imagem acima, a primeira linha uma linha de requisio e as demais so linhas de cabealho. A linha de requisio possui trs itens: 1. Mtodo: Pode assumir os valores GET, HEAD, POST, PUT, dentre outros; 2. Caminho do objeto (URL); 3. Verso do HTTP.
Copyright 2011, ESAB Escola Superior Aberta do Brasil 42

A maioria das mensagens de requisio HTTP utiliza o mtodo GET, que tem como finalidade solicitar um objeto (que pode ser uma pgina). No exemplo acima, o navegador solicita o objeto /site/cursos/ndex.cfm utilizando a verso 1.1 do HTTP. Se ao invs de GET, o mtodo fosse o HEAD, apenas o cabealho da pgina seria retornado, permitindo obter de maneira mais rpida algumas informaes, como por exemplo, a data de ltima modificao da pgina (essa informao ser til para o Cache Proxy apresentado na Unidade 10 de Proxy). J o mtodo PUT grava pginas, permitindo criar pginas WEB em um servidor remoto. As linhas que seguem o mtodo PUT podem conter cabealho de autenticao para permitir acesso ao servidor remoto. O mtodo POST envia dados para serem processados pelo servidor, como por exemplo, dados fornecidos pelo usurio em um formulrio HTML. Tambm possvel passar dados atravs de GET, porm a diferena que com GET os dados so exibidos ao usurio na URL e com POST os dados ficam dentro da mensagem de requisio, como por exemplo:

Figura 17 Parmetros passados via GET

Figura 18 Parmetros passados via Post

Portanto o mtodo GET no recomendado para passar dados sensveis (confidenciais, crticos, etc). Voltando a Figura 16, a mensagem exemplificada possui cinco linhas, mas as mensagens de requisio podem ter mais ou menos linhas, de acordo com os cabealhos utilizados. O cabealho Host retirado da URL e tem como objetivo identificar o servidor. Ele
Copyright 2011, ESAB Escola Superior Aberta do Brasil 43

obrigatrio, com exceo de quando a requisio realizada para um Proxy. Nesse ltimo caso a primeira linha j possui a URL completa, como por exemplo: GET http://www.esab.edu.br/site/cursos/index.cfm HTTP/1.1

Mensagens de Resposta HTTP As mensagens de resposta HTTP so compostas por uma linha de status e possivelmente por linhas de cabealho e o corpo da mensagem. A figura a seguir ilustra uma mensagem de resposta.

Figura 19 Exemplo de uma Mensagem de Resposta HTTP

A linha de status possui trs campos: a verso do protocolo, o cdigo do status (trs dgitos) e mensagem de status correspondente. Os trs dgitos do status so utilizados para indicar o resultado da requisio (se foi atendida ou no, e o respectivo motivo). Existem cinco possveis grupos de status, cada um deles representado pelo primeiro dgito do cdigo do status. Por exemplo, o cdigo de status que comea com o nmero 5 indica que ocorreu um problema no servidor, seja por sobrecarga, erro no cdigo fonte, dentre outros. A Figura 20 apresenta de forma resumida os grupos com respectivo significado e exemplos.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

44

Figura 20 Grupos de Status da Mensagem de Resposta HTTP

Voltando para a Figura 19 as linhas que seguem a linha de status so as linhas de cabealho. As linhas de cabealho so do tipo MIME e apresenta informaes sobre o objeto (metadados) e sobre o servidor. A linha Date indica a data e a hora em que a resposta HTTP foi enviada pelo servidor, e no tem nenhuma relao com a data e hora de criao ou alterao mais recente do objeto. Essa informao est na linha LastModified, de fundamental importncia para realizar cache das pginas. O cabealho Server, indica que a resposta foi gerada por um servidor Web Apache. Os cabealhos do tipo Content- tem a funo de informar sobre propriedades do objeto que est sendo enviado. Content-Length apresenta o nmero de bytes e Content-Type o tipo do objeto, que no caso da figura um texto HTML. A figura apresenta apenas alguns possveis

Copyright 2011, ESAB Escola Superior Aberta do Brasil

45

cabealhos a ttulo de representao. Para uma lista completa dos possveis cabealhos, consulte o RFC 2616 que especifica o HTTP 1.1. O corpo da mensagem contm o contedo em si, no caso da mensagem ilustrada, o HTML da pgina. O corpo da mensagem no apresentado na mensagem de resposta a uma requisio do tipo HEAD. Aplicaes HTTP O protocolo HTTP serve como base para a tecnologia de comunicao que est mudando o modo de vida das pessoas, a Web. Esse protocolo da camada de aplicao WEB implementando por um programa cliente e um programa servidor, definindo como os clientes (navegadores) solicitam pginas aos servidores Web. Os navegadores (ou browsers) mais utilizados atualmente so: Microsoft Internet Explorer, Mozilla Firefox, Apple Safari, Google Chrome e Opera.

Segundo a pesquisa de Servidores Web da NetCraft (http://news.netcraft.com) em dezembro de 2010, os principais servidores Web em utilizao eram o Apache (com expressiva utilizao por 59,35%) e o Microsoft Internet Information Server - IIS(22,22%). O servidor web Apache um projeto open-source compatvel com os protocolos padro da internet, como o HTTP/1.1. o servidor web mais popular da Internet desde Abril de 1996. Dentre alguns dos recursos disponveis, podemos citar: Autenticao Suporte conexo encriptada (SSL e TLS) Domnio Virtual nico endereo IP pode suportar mltiplos sites Contedo Dinmico (ex: PHP, ASP) Compresso de Contedo permite economizar largura de banda ao enviar contedo comprimido ao usurio

Copyright 2011, ESAB Escola Superior Aberta do Brasil

46

Configurao de Limite de Usurios e Largura de Banda evita saturar o servidor ou a rede

O livro O Mundo Plano (Thomas L. Friedman) uma leitura muito interessante e apresenta como a convergncia de tecnologias (em destaque redes, Internet e Web) permitiu transformaes na globalizao, nivelando a competio entre pases industrializados e pases emergentes como ndia, China, dentre outros.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

47

NIDADE

Objetivo: Conhecer o HTTPS, utilizao do HTTP sobre SSL/TLS.

HTTPS O HTTPS consiste na utilizao do SSL/TLS para criptografar o HTTP. amplamente utilizado para prover segurana nas comunicaes via Web. Sua utilizao foi ganhando cada vez mais importncia na medida em que dados sensveis e confidenciais foram aumentando na Web, como por exemplo, dados provenientes de compras com cartes de crdito em sites. A RFC 2818 (http://tools.ietf.org/html/rfc2818) explica como utilizar o TLS, para prover conexes HTTP seguras. O principal objetivo criar um tnel seguro em uma rede insegura, como a Internet. Enquanto uma conexo tpica HTTP normalmente realizada para a porta 80 do servidor, uma conexo HTTPS por padro realizada para a porta 443. A aplicao cliente HTTPS (normalmente os navegadores) comea a conexo com o servidor iniciando o handshake SSL (apresentado na Unidade 4). Uma vez estabelecido com sucesso o handshake, o cliente pode iniciar a primeira requisio HTTP. Assim como vimos na unidade de SSL, a confiabilidade do HTTPS depende de uma Autoridade Certificadora. Os certificados de Autoridades Certificadoras geralmente vm pr-instalados nos navegadores. Voc mesmo pode verificar no seu navegador (geralmente fica em Ferramentas > Opes de Internet o caminho da para frente depende do navegador que estiver utilizando). A Figura 21 apresenta alguns certificados apresentados pelo navegador Firefox.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

48

Figura 21 Alguns Certificados do Firefox

Para uma conexo HTTPS ser considerada segura, algumas condies devem ser satisfeitas: 1. O software navegador implementar corretamente o HTTPS e vir corretamente preparado com os certificados das Autoridades Certificadoras; 2. O website apresentar um certificado vlido e que o identifique corretamente; 3. A Autoridade Certificadora autenticar apenas websites legtimos, sem confundir nomes; 4. A verso do protocolo SSL/TLS utilizado ser segura e livre de falhas. A utilizao do HTTPS pode ser identificada visualmente atravs das URLs que se diferenciam das do HTTP pela adio do s (https://) e tambm atravs de identificadores visuais (cones e cores) disponibilizados pelos navegadores.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

49

Figura 22 Indicadores Visuais de HTTPS sem problemas nos navegadores

Figura 23 Indicadores Visuais de HTTPS que apresentam problemas nos navegadores

A Figura 22 acima apresenta alguns indicadores visuais apresentados quando o HTTPS est adequado. J a Figura 23 apresenta os indicadores visuais de problemas, bem como um exemplo de mensagem de erro apresentada. Podemos citar como exemplos de

Copyright 2011, ESAB Escola Superior Aberta do Brasil

50

problemas alertados pelos navegadores, os certificados no assinados apropriadamente, invlidos, vencidos, etc. possvel consultar detalhes do certificado de segurana de um site que utiliza HTTPS a partir do seu navegador. A Figura abaixo apresenta alguns dados de um certificado de segurana visualizados no Firefox (Ferramentas>Propriedades da

Pgina>Segurana>Exibir Certificado). Podemos notar na Figura que a autoridade certificadora a Thawte, e tambm visualizar a chave pblica do servidor no formato hexadecimal.

Figura 24 Alguns dados de um certificado consultado no Firefox


Copyright 2011, ESAB Escola Superior Aberta do Brasil 51

NIDADE

Objetivo: Mostrar a confidencialidade gerada pelo uso de HTTPS nos servidores web. Analisador de Pacotes de Rede HTTP x HTTPS Introduo O protocolo HTTP utiliza a porta padro TCP 80 e deixa totalmente aparente os dados que trafegam entre o cliente/servidor. J a porta TCP 443 utilizada por padro para conexes HTTPS. Neste tipo de conexo os dados dos pacotes so encriptados trazendo a confidencialidade como maior benefcio. Isto pode ser importante para sites de comrcio eletrnico, chat, e-mail, pginas de login de sistemas, dentre outros. Nossa abordagem prtica consiste em acessar uma pgina em um servidor web, via os dois protocolos, capturar os pacotes, e tentar visualizar dentro destes o contedo da pgina. A descrio da rede: Rede Local: 10.255.255.0/24 Servidor HTTP e HTTPS: 10.255.255.101 Mquina cliente que acessar os sites: 10.255.255.100 Cdigo fonte da Pgina: <html><body>Teste ESAB!<h1></h1></body></html>\n O Wireshark ser utilizado na mquina que acessar os sites. HTTP Na Figura 25 mostrada a exibio do site em HTTP visualizado em um navegador. Em seguida, na Figura 26, apresentada a tela de captura de pacotes relativa transferncia de dados entre o servidor web e a mquina que est acessando o site. Nela possvel perceber nos pacotes 1, 2 e 3 o estabelecimento de uma sesso TCP, pois as flags TCP, SYN, SYN ACK, ACK, que formam o three-way handshake aparecem nestes pacotes respectivamente.
52

Copyright 2011, ESAB Escola Superior Aberta do Brasil

Figura 25 - Site de teste acessado em HTTP

A princpio, vemos no pacote 4 a linha de requisio HTTP para baixar a pgina, GET / HTTP/1.1. Como a pgina existe o servidor envia um pacote, 6, contendo o cdigo da pgina junto com a linha de status da resposta HTTP/1.1 200 OK. O primeiro quadro destacado em laranja na parte inferior da Figura 26 mostra o uso do protocolo TCP, sendo que a porta do servidor a 80 (porta padro do HTTP) e a do cliente uma porta alta gerada para essa conexo (no caso a porta 33366). No quadro seguinte, destaca-se a apresentao dos dados do pacote HTTP com o cdigo fonte da pgina padro adotada. Isto mostra a no confidencialidade deste protocolo no sendo indicado para algumas aplicaes.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

53

Figura 26 Pacotes capturados em HTTP e cdigo fonte do site mostrado

HTTPS Agora refaremos o acesso a pgina, porm utilizando o protocolo HTTPS. A pgina exibida no navegar mostrada na Figura 27. Vale notar que nessa figura, o incio https est em vermelho com um trao indicando problema no HTTPS. Esse comportamento ocorre visto que esta pgina de teste no possui um certificado digital assinado por uma Autoridade Certificadora.

Figura 27 - Site de teste acessado em HTTPS

Copyright 2011, ESAB Escola Superior Aberta do Brasil

54

Figura 28 Pacotes capturados em HTTPS, dados da aplicao encriptados

Na Figura 28 apresentada toda a sequncia de pacotes capturada enquanto se transferia a pgina padro em HTTPS. Assim como demonstrado para o HTTP, os trs primeiros pacotes se referem ao estabelecimento de uma conexo TCP. possvel ver tambm, nos pacotes de 8 a 11, o procedimento handshake do TLS realizado para efetuar a troca de chaves de criptografia, Key Exchange. Seguindo a anlise da Figura 28, os quadros em destaque na parte inferior desta apresentam nesta sequncia o uso do protocolo TCP com a porta padro 443 (HTTPS) como porta de origem de um pacote originado no servidor web, com destino porta 36066 do cliente. Logo abaixo, podemos visualizar a camada de aplicao segura, TLS Record Layer, contendo os dados HTTP criptografados (Encrypted Application Data). Os pacotes seguintes mantm o mesmo formato, e assim no se consegue localizar o pacote que contm o cdigo fonte da pgina, tornando evidente a confidencialidade dos dados trafegados a partir de ento

Copyright 2011, ESAB Escola Superior Aberta do Brasil

55

Mostraram-se, assim, nesta unidade os fluxos HTTP e HTTPS capturados e o padro de mensagens trocadas para que se crie uma troca de informaes confidenciais, tornando clara a utilidade da camada TLS (poderia tambm ser SSL) na soluo de transporte de dados seguros.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

56

U
Proxy

NIDADE

10

Objetivo: Entender o funcionamento e tipos de servidores proxy, suas vantagens e desvantagens.

Introduo No contexto do incio da popularizao da Internet nos anos 90, o custo por kbps (kilobit por segundo) era muito alto, se compararmos com a oferta que temos hoje. Formas de tornar o servio de Internet mais rpido para os usurios e ao mesmo tempo tornar o uso da banda contratada mais racional foram alvos de pesquisas. Varias solues foram encontradas, tais como limitao do contedo permitido dentro de uma rede, armazenamento inteligente e transparente aos usurios de dados frequentemente baixados de uma mesma rede, servios para compartilhamento de uma conexo com a Internet contratada com os demais computadores. O ponto comum entre todas essas solues, que inclusive podem ser combinadas para alcance de melhor desempenho, a necessidade de um equipamento de rede intermedirio entre as mquinas de uma rede e a conexo com a Internet disponvel. Este equipamento pode ser um computador que repasse as requisies de dados e servios de uma mquina cliente e fornea a ela os dados de resposta de interesse caso no haja alguma regra pr-configurada que impea esta operao. Denominou-se o servio executado neste equipamento que intermedeia as conexes entre mquinas diferentes de proxy. O servio de proxy pode ser implementado dentro de diversos equipamentos como computadores, servidores, roteadores, entre outros. Os proxies atuam na camada de aplicao e dependendo das funcionalidades suportadas ganham um nome diferente. Proxies focados no trfego WWW (World Wide Web), HTTP, HTTPS, so chamados de Web Proxies. Um proxy que armazena contedos frequentemente requisitados recebe o nome de Cache Proxy. H diversos tipos de proxies que sero estudados a frente.
Copyright 2011, ESAB Escola Superior Aberta do Brasil 57

Tipos e funcionalidades Um servidor proxy recebe as requisies de uma mquina usuria e pode repass-las aos servidores de destino, bloque-las, e opcionalmente, alterar a requisio do cliente ou a resposta do servidor. Em alguns casos pode responder informaes para uma solicitao sem nem mesmo se conectar ao servidor especificado, fornecendo informaes armazenadas previamente. Um servidor que armazena dados em forma de cache em redes de computadores denominado cache proxy. So instalados em mquinas com recursos computacionais tipicamente superiores s dos clientes e com poder de armazenamento elevado.

Figura 29 - Conexes realizadas atravs de servidor Proxy

Cache Proxy H grandes vantagens do uso de servidores cache proxy , uma vez que muitos dos recursos da Internet so utilizados por diversos usurios. Ainda, em um grupo, como uma empresa, muitos arquivos e sites disponveis so comumente acessados e baixados pelos funcionrios. Tradicionalmente, sem o uso do cache proxy , a cada requisio de usurio uma nova conexo feita, mesmo que o recurso j tenha sido solicitado minutos atrs. O uso de servidores cache proxy permite que requisies j feitas anteriormente no necessitem de novas conexes com a Internet, otimizando o uso de banda tornando mais rpido o acesso rede e diminuindo a latncia de acesso, do ponto de vista do usurio.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

58

Quanto ao modelo de funcionamento um proxy deve agir tanto como um servidor, quanto como um cliente. Age como servidor j que aceita requisies de usurios, como por exemplo, requisies de pginas web, atravs do protocolo HTTP. E como cliente, uma vez que tem que se conectar mquina ou ao servio de destino para conseguir retornar ou atualizar os documentos para seus clientes. Uma requisio atravs de um proxy um pouco diferente do que uma requisio normal. Vamos tomar como exemplo requisies HTTP. Uma conexo sem a utilizao de um proxy, diretamente com um servidor WWW do tipo: GET /index.html HTTP/1.1 Host: http://www.esab.edu.br Accept: */* J uma mesma conexo, porm realizada atravs de um servidor proxy seria feita da seguinte forma: GET http://servidorcache/www.esab.edu.br/index.html HTTP/1.1 Accept: */* Estas seriam a alteraes realizadas pelos navegadores quando configurados para trabalhar com um servidor cache proxy. O navegador faz a requisio das mesmas URLs atribudas pelo cliente adicionando o nome do servidor proxy de destino, e com isso, este servidor tem todas as informaes necessrias para verificar se possui a pgina em seu cach ou ento fazer a requisio ao servidor remoto especificado na URL, em caso negativo . Em casos de requisies utilizando outros protocolos, como por exemplo, o FTP, as alteraes so um pouco mais complicadas. Alm de o servidor utilizar o protocolo FTP para requisitar o arquivo do servidor, ele deve transformar esta requisio FTP em uma resposta HTTP para o cliente. Isto significa incluir os cabealhos Content-Lenght, LastModified, e Content-Type. Um comando FTP list, por exemplo, retornado como um documento HTML. GET ftp://ftp.ircache.net/download/README HTTP/1.1 Accept: */* Um ponto que pode preocupar os administradores de uma rede a garantia de consistncia do contedo acessado. Para isto, uma questo importante determinar quando os objetos sero atualizados ou removidos visto que alguns arquivos podem
59

Copyright 2011, ESAB Escola Superior Aberta do Brasil

permanecer estveis por um longo tempo e de repente mudar, enquanto outros mudam diariamente. Quando um contedo acessado, um objeto armazenado e a ele atribudo um tempo de vida em um cabealho. Se o tempo do objeto expirou, o servidor original ser consultado para revalid-lo. Um objeto armazenado no cache contm em seu cabealho o campo Last-Modified (em portugus: ltima Modificao), que indica quando ele sofreu a ltima modificao. O servidor proxy pode us-lo para fazer uma requisio If-Modified-Since ( Se Modificado Desde a Data) ao servidor web remoto e, a partir da comparao das datas, saber se o objeto foi alterado. Se o documento no foi modificado, no ser retornado pelo servidor web. O servidor receber como resposta, informaes como a nova data de expirao. Se o objeto foi modificado, este ser retornado. Mesmo sendo mquinas superiores s utilizadas pelos usurios, o armazenamento de informaes possui um limite. Quando os diretrios de cache esto cheios, alguns objetos devem ser removidos para que novos objetos sejam armazenados. Apenas a escolha de excluso dos objetos mais antigos no seria suficiente uma vez que este objeto pode no sofrer alteraes desde a sua publicao na rede. Sendo assim, a escolha feita usando algoritmos de substituio, em conjunto com algumas regras configuradas pelo administrador. Um cache proxy especializado em requisies web so chamados de web proxy .

Copyright 2011, ESAB Escola Superior Aberta do Brasil

60

NIDADE

11

Objetivo: Entender o funcionamento e tipos de servidores proxy, suas vantagens e desvantagens. Proxy (Continuao) Web Proxy com Filtro comum o uso associado de servidores proxy com um firewall, aumentando a segurana e o controle de acesso de contedos disponveis na Internet. Um web proxy com filtro prov um controle administrativo ainda maior sobre o contedo que poder passar pelo servidor at o cliente. comumente utilizado para adequar o uso da Internet por parte dos funcionrios a uma poltica estabelecida pela empresa que os contratou.

Sua forma de ao anloga aos filtros de camada 3 e 4. No entanto, alm de poder bloquear acesso a determinado IP ou no permitir o uso de determinado protocolo dentro da rede, tal como o ICMP (ping), tambm funcionam analisando o trfego da camada de aplicaes, examinando todo o contedo dos pacotes. Alguns mtodos usados para filtrar o contedo da camada de aplicao incluem: listas negras de URL e DNS, filtro por expresso regular de URL, filtros MIME (Multipurpose Internet Mail Extensions).

Um exemplo comum de uso deste tipo de proxy para bloquear o acesso a contedos erticos. Pode-se incluir uma regra para que todas as URLs que contenham palavras como sexy, playboy, entre outras, sejam bloqueadas, e no lugar do website de destino, seja apresentado ao usurio uma pgina de advertncia.

Normalmente, este tipo de proxy produz logs contendo informaes detalhadas sobre as URLs acessadas por usurios especficos, podendo tambm gerar estatsticas da banda utilizada e auditorias sobre o uso dos recursos de rede contratados. Estas informaes podem tambm ser utilizadas para incrementar os filtros existentes, tornando-os ainda mais eficazes.
61

Copyright 2011, ESAB Escola Superior Aberta do Brasil

Classificao quanto forma de utilizao Como dito anteriormente, um servidor proxy atua na camada de aplicao e pode ser utilizado pelos usurios finais de diversas maneiras. Uma dessas formas configurar a aplicao que dever utilizar o proxy com as informaes necessrias para a utilizao do servio. Por exemplo, para acesso web normalmente utilizamos os navegadores. Assim, caso um administrador de rede queira poupar banda da sua rede com um sistema de cache e filtrar o contedo que pode ser acessado, ele pode conseguir isto configurando um proxy em todos os navegadores disponveis nas mquinas dentro de sua rede. Esta forma de utilizao no escalvel. custosa demais a configurao e manuteno desta em redes maiores, pois a configurao feita de forma manual e no nvel de usurio de computador no administrador. Seria necessrio configurar os navegadores de todas as contas de usurio em todas as mquinas da rede. Alm disso, nada impede que um usurio desconfigure o uso do proxy escolhido pelo administrador para burlar um filtro de acesso de contedo por exemplo. Para soluo deste problema surgiu o Proxy de Intercepo (Interception Proxy). Proxy de Intercepo Este tipo de proxy erroneamente chamado de Proxy Transparente, embora isto ocorra de forma frequente. A RFC 2616 que especifica o HTTP/1.1

(http://tools.ietf.org/html/rfc2616) define um proxy transparente como aquele que no modifica a requisio ou resposta alm do que necessrio para a autenticao do proxy e identificao do cliente. Proxy no transparente um proxy que modifica o pedido ou resposta, a fim de fornecer alguns servios adicionados ao agente usurio, tais como servios de grupo de anotao, a transformao de tipo de mdia, a reduo de protocolo, ou anonimato filtragem . Este erro de chamar de Proxy Transparente ocorre, pois, num proxy de intercepo, definido pela RFC 3040 (Internet Web Replication and Caching Taxonomy,

http://tools.ietf.org/html/rfc3040) o cliente no precisa configurar um proxy em seu navegador e no detecta diretamente que suas requisies esto sendo enviadas via proxy.
62

Copyright 2011, ESAB Escola Superior Aberta do Brasil

Um proxy de intercepo combina um servidor proxy com um gateway ou roteador (geralmente com recursos NAT). As conexes feitas pelos navegadores do cliente atravs do gateway so desviadas para o proxy sem configurao do lado do cliente (e muitas vezes sem seu conhecimento). Porm a utilizao de um proxy de intercepo no resolve todos os problemas de limitao de acesso. Suponha que um determinado proxy s aceite requisies HTTP e HTTPS que no contenham a palavra sexo em sua URL. Um usurio poderia burlar este controle de acesso utilizando um web proxy annimo que funciona com HTTPS por exemplo. Este proxy ir camuflar as URLs de sites que contenham a palavra sexo utilizando criptografia. Uma soluo para isso seria bloquear tambm as palavras mais comuns que compem URLs de proxies annimos. Mas isto ainda no impede que um usurio avanado configure um proxy em sua casa e o utilize. Proxy Annimos Um servidor proxy annimo geralmente tenta anonimizar a navegao na web. Como esses so normalmente difceis de controlar, so especialmente teis para aqueles que procuram o anonimato online. Alguns usurios esto interessados no anonimato apenas para maior segurana, escondendo suas identidades a partir de sites potencialmente maliciosos, ou para facilitar direitos constitucionais como a liberdade de expresso. O servidor de destino recebe solicitaes a partir do servidor proxy annimo, e, portanto, no recebe informaes sobre o endereo do usurio que o requisitou. No entanto, os pedidos no sero annimos para o servidor proxy, e assim um grau de confiana deve estar presente entre o servidor proxy e o usurio. Para aumentar esta relao de confiana pode ser requisitada a autenticao do cliente, antes que o proxy possa ser efetivamente utilizado. Porm quando no h essa relao de confiana, o proxy pode oferecer riscos privacidade do usurio, substituindo os dados retornados para difuso de softwares

maliciosos, envio de mensagens no autorizadas, dentre outros. Concluso O controle de acesso cada vez mais necessrio, em empresas de qualquer tamanho. Os benefcios proporcionados pela maior difuso da Internet so evidentes, como:
Copyright 2011, ESAB Escola Superior Aberta do Brasil 63

Agilidade na troca de informaes com outras empresas, funcionrios e clientes; Relacionamentos pessoais e familiares; Comrcio eletrnico; Distribuio e compartilhamento de contedo, etc.

Aliado a estes fatores, h uma ampliao constante da largura de banda por parte de empresas e usurios domsticos, incentivando-os a utilizar servios antes inviveis. Este cenrio gera uma demanda sempre crescente de largura de banda. Deste modo, extremamente necessria, a definio de uma poltica de uso da rede, em que todos os envolvidos tenham conscincia do modo como os recursos disponibilizados devem ser utilizados. Faz-se necessrio um controle de registro de todos os acessos, bloqueando aqueles considerados indevidos, reduzindo a utilizao de banda em aes estranhas s atividades de uma empresa, mantendo-a disponvel e melhor preparada para a prtica de atividades legtimas. Isto diminui a circulao de vrus, worms, programas piratas e outros males que apresentam riscos s empresas. Uma das formas de se obter todo esse controle, adicionando ainda economia de banda, via uso de cache de contedos frequentemente acessados, utilizando proxies.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

64

NIDADE

12

Objetivo: Entender a utilidade e funcionamento do servio de traduo de nome-paraendereo IP, o DNS. DNS (Domain Name Server) Introduo Como visto anteriormente, na Internet ou em redes privadas, computadores ou quaisquer equipamentos ativos que as compe, como hubs, switches, roteadores, firewalls , proxies, entre outros, so identificados atravs de pelo menos um endereo nico na camada de rede (camada 3 do modelo OSI), o endereo IP. Em uma rede pequena fcil a memorizao dos endereos de cada mquina. Porm, quando este nmero de mquinas cresce a tarefa se torna humanamente impossvel e insustentvel. Alm disto, nos deparamos com outro problema. Suponha que por motivos da administrao de rede, ou por motivo de manuteno de servidores, precisssemos trocar determinados servios, como, por exemplo, um website, de servidor. Imagine o seguinte caso: alunos acessam diariamente o website da ESAB pelo IP 201.76.48.129. Porm, a instituio decide alocar o website em outro servidor de IP 201.76.48.128, que j possui outros servios internos, utilizados por seus funcionrios. Se o acesso fosse feito diretamente pelo endereo IP, o quo dispendioso seria avisar a todos os alunos ou a todos os funcionrios que utilizam estes servios internos que o endereo do servidor mudou? No seria muito mais fcil dar um nome a estes servios? O aluno passaria a acessar o website da ESAB pelo nome www.esab.edu.br e os funcionrios a rede interna pelo nome intranet.esab.edu.br. No entanto, os equipamentos da rede s reconhecem endereos numricos. Assim, seria necessrio algum mecanismo para converter estes nomes em endereos numricos. No incio do desenvolvimento das redes de computadores, na ARPANET (Advanced Research Projects Agency Network , ou Agncia de Projetos de Pesquisa Avanada em Redes), havia simplesmente um arquivo texto chamado hosts.txt mantido em cada
Copyright 2011, ESAB Escola Superior Aberta do Brasil 65

mquina que listava todos os nomes dos computadores da rede (hosts) e seus endereos IP. Toda dia, todos os usurios acessavam um arquivo central no local em que era mantido, atualizavam e o copiavam. Para uma rede de algumas centenas de grandes mquinas, essa estratgia funcionava razoavelmente bem. No entanto, quando as redes comearam a crescer e milhares de computadores domsticos foram conectados, todos perceberam que essa estratgia no poderia continuar a ser utilizada para sempre. Por um lado, o arquivo de hosts se tornaria grandes demais e as consultas seriam difceis. Por outro, todos estariam frequentemente sujeitos a conflitos de nomes de hosts, o que muito preocupante. A menos que este arquivo de nomes fosse gerenciado de uma forma centralizada, algo totalmente fora de cogitao em uma enorme rede internacional, como a Internet, este problema no seria solucionado. Para resolver esses problemas, foi criado o DNS (Domain Name System Sistema de Nomes de Domnios). Portanto, o objetivo principal do DNS traduzir um nome para um endereo IP. O nome conveniente para associao dos seres humanos, enquanto o endereo numrico (IP) necessrio para acessar as mquinas. Funciona de forma parecida a uma lista telefnica. Se voc sabe o nome de uma pessoa, mas no o seu telefone, voc recorre lista e atravs do nome obtm o nmero desejado. A essncia do DNS a criao de um esquema hierrquico de atribuio de nomes baseado em domnios e de um sistema de bancos de dados distribudos para armazenamento e consulta desse esquema de nomenclatura. O protocolo do DNS definido nas RFCs 1034 (http://tools.ietf.org/html/rfc1034) e 1035

(http://tools.ietf.org/html/rfc2616). Assim, de forma resumida, o DNS um protocolo da camada de aplicao e sua implementao contempla um banco de dados distribudo para traduzir nomes para endereo IP, de forma a permitir que um cliente acesse o servidor desejado. Diferentemente dos outros protocolos da camada de aplicao, o usurio no interage diretamente com os servios do DNS. Entretanto, ele utilizado por outros protocolos da camada de aplicao, como o FTP, SMTP e HTTP, fornecendo servios internos na Internet. Por exemplo, quando um navegador (um cliente HTTP) precisa acessar o site www.esab.edu.br, antes de conseguir estabelecer a conexo ele precisar obter o
Copyright 2011, ESAB Escola Superior Aberta do Brasil 66

endereo IP do respectivo servidor. Dessa forma, a aplicao cliente DNS presente na mesma mquina do navegador vai providenciar essa traduo, conforme explicaremos nesta Unidade. Uma vez obtido o endereo IP, o cliente se conectar ao servidor realizando o three-way handshake do TCP. Podemos perceber que o DNS precisa de um tempo para realizar o seu servio, adicionando o que pode ser considerado um atraso nas aplicaes Internet. De forma geral, esse atraso praticamente imperceptvel, mas em alguns casos pode ser considervel. Para minimizar esse risco e o trfego DNS na rede, so utilizados caches em servidores DNS prximos, conforme veremos mais adiante. Domnios e Hierarquia de Servidores Para entendermos a definio do DNS, preciso que antes entendamos o que um domnio. Um exemplo de domnio : esab.edu.br. Cada parte desse nome de domnio (esab, edu, br) representa um nvel de servidores. Pode ser que exista um servidor por nvel, mas fortemente recomendado que haja mais que um servidor por nvel visando tornar o servio de DNS um servio de alta disponibilidade. A cadeia comea com os servidores raiz, ou root servers. Eles so representados por um ponto no fim do domnio, ou por uma string vazia (). O domnio esab.edu.br representa a mesma coisa que esab.edu.br. para as aplicaes que utilizaram esse tipo de identificao. A seguir mostrada na Figura 30 a distribuio geogrfica destes servidores raiz.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

67

Figura 30 - Localizao dos root-servers no mundo - http://root-servers.org

As bases de dados destes servidores so pequenas (em torno de 200KB), dividida em domnios genricos e geogrficos. Porm por serem o incio da cadeia de registro de nomes, so os servidores de maior responsabilidade. A ICANN (Internet Corporation for Assigned Names and Numbers) uma corporao sem fins lucrativos habilitada a fiscalizar tarefas relacionadas com a Internet em nome do governo dos EUA e de outras organizaes notrias como IANA (Internet Assigned Numbers Authority). H um comit da ICANN denominado DNS Root Server System Advisory Committee que responsvel pela autorizao de operao de servidores de nomes raiz. Em nosso exemplo, esab.edu.br, o servidor raiz indicaria que o prximo nvel da base de dados que deve ser consultado seria o do servidor de domnio geogrfico br, indicando os IPs destes servidores. Por sua vez, eles indicariam os IPs dos servidores responsveis pelo nome edu, utilizados por instituies de educao, que indicariam os servidores de nome da ESAB. Assim, podemos perceber que uma URL analisada da direita para esquerda, na ordem .,br,edu e esab. No Brasil os registros dos servidores de primeiro nvel (com.br, gov.br, org.br, ...), so de responsabilidade do Registro.br. A hierarquia dos servidores pode ser representada como na Figura 31 abaixo.
Copyright 2011, ESAB Escola Superior Aberta do Brasil 68

Figura 31 - Hierarquia de Servidores DNS

Em nosso exemplo chegamos at o nvel do servidor DNS da ESAB. Este servidor o responsvel pelos nomes dos hosts desta instituio de ensino. Quando digitamos em nosso navegador www.esab.edu.br para acessar o site da ESAB, aquele aponta no IP do servidor web (www), onde o site est acessvel. Cada nome a esquerda do domnio pode representar uma mquina, ou um subdomnio. Um exemplo de subdomnio intranet.esab.edu.br, dentro deste domnio podem estar servidores que s so acessados de dentro da rede local da ESAB. Para prosseguirmos com nossos estudos apresentaremos definies de dois elementos do DNS da RFC1034. Elementos do DNS Segundo a RFC1034 o DNS composto de NAME SERVERS (Servidores de Nome) e RESOLVERS (Resolvedores). Os NAME SERVERS so programas servidores que detm as informaes sobre a estrutura da rvore de domnios. Um servidor de nomes pode fazer cache da estrutura ou definir informaes sobre qualquer parte da rvore de domnios, mas em geral um servidor de nomes particular tem a informao completa do subconjunto do seu espao de domnio e ponteiros para outros servidores de nomes que podem ser utilizados para

Copyright 2011, ESAB Escola Superior Aberta do Brasil

69

conseguir informaes de qualquer parte da rvore de domnios. Os tipos de servidores so: Servidores Recursivos: Consultam servidores Autoritativos Servidores Autoritativos: Respondem requisies com o endereo IP (caso conhea), com uma referncia para outro servidor, ou com uma negao (caso no tenha informaes sobre o nome consultado). Visando alta disponibilidade do sistema de traduo de nomes, recomendado que se tenha sempre mais que um servidor DNS configurado respondendo para as mesmas zonas. Para isto servidores recursivos e autoritativos podem ser configurados como servidores primrios ou secundrios. Servidor Primrio: Servidor principal. Pode ser tanto recursivo quanto autoritativo. Servidor Secundrio: Atua como backup do servidor Primrio em casos de falhas.

Um servidor que conhece todas as informaes de parte da rvore de domnios a autoridade para esse espao de nomes. Informaes autoritativas so organizadas em unidades chamadas zonas. Estas zonas podem ser automaticamente distribudas para outros servidores a fim de prover redundncia para os dados das zonas. Para descrever as caractersticas das zonas (ou domnios) os servidores DNS possuem os DNS Resource Records (RRs, ou em portugus Registro de Recursos). Os RRs tm um formato binrio, que usado para requisies e respostas destas, e um formato de texto usado nos arquivos das zonas. Exemplos de RRs: SOA: NS: A: AAAA: MX: CNAME: Indica onde comea a autoridade da zona Indica um servidor de nomes para a zona Mapeamento de nome para endereo ipv4 Mapeamento de nome para endereo ipv6 Indica um mail exchanger para um nome Mapeia um nome alternativo a outro nome

Copyright 2011, ESAB Escola Superior Aberta do Brasil

70

Um exemplo de uso destas RRs para registro de um nome na configurao de uma zona em um servidor DNS : www portal IN IN A CNAME 192.168.1.99 www

No exemplo acima na primeira linha utilizou-se o RR A para mapear o nome www dentro de uma zona para o endereo ipv4 192.168.1.99. Em seguida atribuiu-se um nome alternativo (como se fosse um apelido) para o mesmo IP via o RR CNAME de forma que tanto o nome www ou o nome portal esto mapeados para o mesmo IP. Na prtica, isto significa uma configurao semelhante a esta fosse aplicada na zona do domnio esab.edu.br, tanto o nome www.esab.edu.br, quanto o nome portal.esab.edu.br seriam traduzidos para o mesmo ipv4. Resumidamente, as zonas de um servidor autoritativo contm todas as informaes para traduo de IP NOMES, para determinada rea de domnios. Nos servidores de nomes, cada nome de domnio possui um registro de zona de autoridade. Este contm informaes do domnio e da zona em que o domnio est inserido, tais como, nome do servidor de nomes primrio, e-mail do responsvel pelo domnio, nmero de srie da zona, entre outros. Os Resolvers (ou, resolvedores), so programas que extraem as informaes de um servidor de nomes em resposta a uma requisio do cliente. Mas o resolvedor no existe como um processo distinto executado no computador. Ele uma biblioteca de rotinas ligada a qualquer aplicao que deseja traduzir endereos. Por exemplo, o sistema operacional possui um resolvedor que consultado pelos navegadores toda vez que o usurio tenta acessar um site. Assim, no necessrio nenhum protocolo entre o resolvedor e um programa utilizado pelo usurio.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

71

NIDADE

13

Objetivo: Entender a utilidade e funcionamento do servio de traduo de nome-paraendereo ip, o DNS. DNS (Continuao) Funcionamento O DNS um servio de traduo nomes que funciona utilizando os protocolos de transporte TCP e UDP na porta padro 53. Dentro da especificao do servio cada tipo de protocolo de transporte utilizado de acordo com o tipo de mensagem a ser transmitido. O protocolo UPD no aceitvel para transferncia de informaes para sincronizao de zonas, pois estas devem ser transmitidas entre dois servidores com garantia de integridade, ficando estas a cargo do protocolo TCP, mas recomendvel para requisies padro de traduo de nomes na Internet. Requisies UDP podem ser perdidas na rede, ento h estratgias de retransmisso destas pelos resolvers. O mapeamento de nomes - IPs pode ser feito de forma direta ou reversa. O mapeamento direto ocorre da seguinte maneira. O computador do usurio encaminha uma requisio de traduo de nome ao servidor DNS local da sua rede. Caso este servidor saiba a traduo, ou possua cache desta, ele responde a requisio com o IP relacionado ao nome perguntado. Caso o servidor local no saiba, ele perguntar aos servidores DNS do domnio comeando da direita para esquerda. Voltando ao nosso exemplo: um aluno quer acessar de casa o site da ESAB, www.esab.edu.br. Ento o servidor perguntar ao servidor raiz, quem www.esab.edu.br? E este servidor retornaria uma referncia ao IP dos servidores br. O servidor local prosseguir perguntando a um dos servidores br quem www.esab.edu.br? Esse, por sua vez, prosseguir respondendo qual o prximo servidor que contm as informaes sobre o domnio em questo. No Brasil so os servidores br os responsveis pelos subdomnios .com.br, .edu.br, e assim por diante. O processo de pesquisa acaba quando a consulta (query) respondida com uma referncia ao servidor que responde pelo domnio esab.edu.br. Este servidor apontar, por sua vez

Copyright 2011, ESAB Escola Superior Aberta do Brasil

72

que IP da mquina www o 201.76.48.129. Este tipo de consulta chamada de consulta recursiva, mostrada na Figura 32.

Figura 32 - Consulta Recursiva

mapeamento

reverso

foi

posteriormente

definido

na

RFC

1912

(http://tools.ietf.org/html/rfc1912), pois no era o objetivo inicial do servio de traduo de nomes. utilizado quando se deseja fazer a traduo IP nome. O servidor DNS local consulta um servidor DNS raiz e em seguida o DNS da rede de destino. A requisio ento respondida ao computador que a realizou. A traduo nome IP ns j entendemos sua necessidade, mas qual a funo do mapeamento reverso? Esse tipo de resoluo muito importante para que os servidores de e-mail entreguem mensagens a outros domnios. A conferncia do domnio explicitado no remetente do e-mail com o IP registrado do servidor de correio eletrnico registrado no DNS realizada para combater o famoso spam, uma vez que estas mensagens so enviadas atravs de servidores de email com falhas de segurana e utilizando como remetentes fora do domnio destes. Tambm, existem servidores FTP que fazem a verificao de reverso antes de permitir acesso a seus arquivos.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

73

CACHE DNS Para diminuir o tempo de resoluo dos nomes e o trfego DNS, pode ser utilizado um cache DNS. O funcionamento do servio continua da mesma forma, porm a resposta do registro pode ser dada por um servidor que no tenha a zona de autoridade. Seguindo o mesmo exemplo da consulta pelo nome www.esab.edu.br, vamos partir do princpio que os servidores agora armazenam cache. A consulta quem www.esab.edu.br? ser feita primeiramente num servidor raiz O raiz examinaria os registros armazenados em cache e somente no caso em que no localize o IP ele indica as referncias dos servidores br. Em seguida, a consulta passa para o servidor br quem www.esab.edu.br?. Caso este nome tenha sido acessado recentemente, ele estar no cache do servidor e este retornar www.esab.edu.br o IP 201.76.48.129 sem dar as informaes do prximo servidor da hierarquia. Este processo agiliza a consulta do ponto de vista que menos servidores sero consultados, mas faz com que haja um tempo entre a alterao de um registro e a visibilidade desta alterao em toda a Internet. Isto ocorre visto que um servidor hierarquicamente superior ao que sofreu alterao de um registro responder as consultas de acordo com os registros de seu cache at que estes registros expirem e sejam atualizados. Para evitar problemas com as alteraes, o registro no cache expira em um curto perodo (normalmente dois dias). DNSSEC Como vimos o DNS tem com funcionalidade de realizar tradues nomes IPs e IP nomes, tornando mais amigvel aos humanos a localizao de endereos na rede. Utiliza uma estrutura hierrquica de rvore para realizar consultas. Na criao do DNS, no foram analisados diversos aspectos de segurana que o protocolo poderia trazer, e por isso foi criado uma extenso, denominada DNSSEC. O DNSSEC (Domain Name System Security Extensions), definido na RFC 2065 (http://tools.ietf.org/html/rfc2065), adiciona um sistema de resoluo de nomes mais seguro, solucionando problemas encontrados na atual tecnologia DNS. A segurana em servidores DNS de alta importncia, pois sem ela falsas informaes de traduo de nomes podem criar oportunidades para roubo de informaes de terceiros ou alterao de
Copyright 2011, ESAB Escola Superior Aberta do Brasil 74

dados em diversos tipos de transaes, como compras eletrnicas. Um atacante poderia, por exemplo, responder com uma informao de redirecionamento para uma falsa pgina de cadastro de carto de crdito em uma loja virtual a uma pessoa que acessa o site atravs de consulta recursiva. O cadastro de todos os dados de seu carto estaria sob a posse de uma pessoa no confivel, que poderia fazer o uso indevido dele. Na tecnologia DNS, um ataque deste tipo extremamente difcil de ser detectado, e na prtica, de preveno impossvel. O objetivo da extenso assegurar o contedo do DNS, por meio de criptografia, e impedir estes ataques, garantindo assim a origem das informaes. Como em outros servios com exigncias de privacidade que utilizam criptografia, a extenso garante: autenticidade, integridade, e a no existncia de um nome. Porm, no garante confidencialidade ou proteo contra ataques de negao de servio (DoS). A confidencialidade no garantida, pois o mecanismo utilizado pelo DNSSEC baseado na tecnologia de criptografia com chaves assimtricas apenas para assegurar a autenticidade do servidor. Isso significa que o servidor DNS com suporte a DNSSEC possui um par de chaves eletrnicas, uma chave privada para encriptar suas respostas a consultas e uma chave pblica divulgada na Internet para que os servidores que realizem consultas possam decriptar as respostas e garantir que elas so do servidor correto. O administrador da zona usa a chave privada para assinar digitalmente sua prpria zona no DNS, e todos com acesso a chave pblica desta zona podem verificar que os dados transferidos desta zona esto intactos e so autnticos. Porm as chaves nunca expiram, e por isto deve haver polticas locais (em cada zona) para a troca e atualizao de chaves com frequncia determinada, como por exemplo, de trs em trs meses. Assim todos os servidores que assinam determinada zona devem obter a nova chave de perodo em perodo. A partir do dia 16/07/2010, a zona root (primeiros servidores a serem consultados em uma resoluo de nome) passou a fornecer suporte a DNSSEC, disponibilizando uma chave pblica para que os servidores recursivos possam se autenticar. Dessa forma, a autenticao pode ser feita desde o incio da consulta. Porm, altamente recomendado que os servidores locais estejam sempre atualizados de forma a conter todos os mdulos da extenso.
Copyright 2011, ESAB Escola Superior Aberta do Brasil 75

No DNSSEC foram adicionados novos RRs para descrever as zonas seguras.

Consulte: Falha de segurana em servidores de DNS preocupam disponvel neste blog http://www.ovelho.com/node/4801. Em seguida acesse: OpenDNS - Navegao melhor e mais segura disponvel em http://www.ovelho.com/node/4797.

O registro.br, Registro de Domnios para a Internet do Brasil, vem incentivando o uso de DNSSEC no Brasil. Acesse o tutorial desta extenso publicado por eles. ftp://ftp.registro.br/pub/doc/tutorial-dnssec.pdf

Copyright 2011, ESAB Escola Superior Aberta do Brasil

76

Tarefa Dissertativa Acesse a sua sala de aula para realizar a seguinte tarefa dissertativa: Pesquise em livros e sites e faa uma sntese com suas prprias palavras sobre ataques DoS (Denial of Service).

Copyright 2011, ESAB Escola Superior Aberta do Brasil

77

NIDADE

14

Objetivo: Apresentar, utilizando o Wireshark, as mensagens trocadas entre cliente e servidor DNS. Analisador de Pacotes de Rede Consulta DNS Introduo Nesta unidade apresentaremos os pacotes capturados durante uma consulta de DNS. Utilizaremos como exemplo o nome: www.esab.edu.br. Verificaremos que a consulta do Resolver feita atravs do protocolo de transporte UDP, utilizando a porta 53 no servidor. Nossa abordagem prtica consiste em acessar os nomes atravs do comando de terminal linux dig +trace <nome consultado>, utilizando o Wireshark para capturar pacotes na mquina cliente e no no servidor DNS. Como resposta ele nos dar toda a sequncia de servidores consultadas durante a resoluo de nomes. Note que com o comando dig +trace a mquina usuria far a consulta iterativamente em todos os servidores DNS da hierarquia a fim de saber todos os RRs destes servidores. Numa consulta padro, como a utilizada por um navegador de Internet, a mquina cliente s troca pacotes com servidor recursivo, configurado como DNS Primrio. S conseguiramos capturar os pacotes de uma consulta padro instalando o Wireshark em um servidor DNS. A descrio da rede: Rede Local: 10.255.255.0/24 Servidor DNS primrio: 8.8.8.8 Mquina cliente, Resolver: 10.255.255.100 Para resoluo do primeiro nome, mostrado na Figura 33, o Resolver pergunta ao servidor primrio, 8.8.8.8, quem www.esab.edu.br? O servidor primrio consulta os RRs do servidor raiz que faz referncia a todos os nomes dos servidores raiz. Estes nomes so do tipo a.root-servers.net.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

78

Escolhendo um destes servidores, no caso o b.root-server.net. de IP 192.228.79.201, o servidor primrio repete a pergunta. Quem www.esab.edu.br? Este servidor aponta os RRs dos servidores .br, que so do tipo a.dns.br.

Figura 33 - Servidores DNS consultados durante a resoluo do nome www.esab.edu.br

A sequncia do processo dada quando o servidor primrio pergunta ao servidor f.dns.br, IP 200.219.159.10, quem www.esab.edu.br? Agora este servidor responde que os servidores autoritativos do domnio esab.edu.br so os nsx.locaweb.com.br, informando
Copyright 2011, ESAB Escola Superior Aberta do Brasil 79

os RRs deles. Por ltimo, o servidor primrio pergunta ao servidor ns2.locaweb.com.br, IP 201.76.40.2, quem www.esab.edu.br? Este, por sua vez, responde que

www.esab.edu.br um CNAME para esab.edu.br que tem IP 201.76.48.129. Vale perceber que existe mais de um servidor por nvel, aumentando a disponibilidade do servio de DNS. De posse desta informao as aplicaes podem chegar at a mquina web que responde pelo site da ESAB naquele IP. Os pacotes capturados na mquina que originou a consulta so apresentados na Figura 34. Nela pode-se perceber claramente no quadro inferior em destaque, o uso do protocolo UDP com porta de destino, apontando para servidor 8.8.8.8, nmero 53. Tambm possvel ver toda a sequncia de perguntas (queries) realizadas aos servidores autoritativos, pacotes azuis. evidenciado o pacote nmero 1, cinza, que a primeira query realizada para resoluo do nome, que tem IP de destino no servidor primrio, 8.8.8.8.

Figura 34 Pacotes capturados durante a consulta do nome www.esab.edu.br

Copyright 2011, ESAB Escola Superior Aberta do Brasil

80

Em seguida so apresentados na Figura 35 os RRs dos servidores raiz. E na Figura 36 o padro da query (requisio) enviada ao servidor b.root-server.net. Nela, o quadro em destaque mostra o objetivo conseguir o RR A (IP) do nome www.esab.edu.br.

Figura 35 RRs dos servidores raiz

Por fim, na Figura 37, mostrada a resposta dada pelo servidor 201.76.40.2, ns2.locaweb.com.br, para o nome www.esab.edu.br, apontando que este nome um CNAME para o nome esab.edu.br, e tem IP 201.76.48.129. Nesta unidade acompanhamos todas as queries e suas respostas realizadas para obteno do IP responsvel pelo nome www.esab.edu.br pelo comando Linux dig +trace, mostrando os pacotes e formato das mensagens envolvidos capturados no Wireshark. Estes passos so a descrio de um procedimento para verificar se a resoluo de nomes de um domnio particular est correta, e caso falhe, em qual servidor DNS ela parou, Com esta informao, o administrador pode reportar ao registro do servidor correto para resoluo do problema.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

81

Figura 36 - Query realizada ao servidor raiz b.root-server.net.

Figura 37 - Resposta dada ao Resolver apontando o IP do nome www.esab.edu.br

Copyright 2011, ESAB Escola Superior Aberta do Brasil

82

NIDADE

15

Objetivo: Apresentar a arquitetura do servio de correio eletrnico descrevendo os principais protocolos envolvidos.

Correio Eletrnico Introduo O correio eletrnico, popularizado com o nome e-mail, um dos servios mais usados na Internet. Permite os diversos usurios conectados atravs da Internet troquem mensagens e arquivos de diversos tipos, tais como documentos, fotos, msicas, etc. Porm, se engana quem pensa que este um servio novo. Mesmo antes da popularizao da Internet, o correio eletrnico j era utilizado. Surgiu em meados dos anos 60, e originalmente foi criado para troca de mensagens entre usurios de computadores de grande porte e logo foi adaptado para troca de mensagens entre terminais remotos. Em 1969, com o incio da ARPANet (Advanced Research and Projects Agency Network Rede da Agncia de Pesquisas em Projetos Avanados), surgiu a utilizao do smbolo @ como separador entre nome de usurio e domnio. A partir de sua implantao pelo governo dos Estados Unidos, pesquisadores em universidades e outros locais passaram a trocar dados eletronicamente uns com os outros. A popularizao do servio foi ocorrendo de acordo com que ocorria a popularizao dos computadores e da Internet. Em 1982, as propostas relativas a correio eletrnico da ARPANet foram publicadas como a RFC 821 (http://tools.ietf.org/html/rfc821, define o protocolo de transmisso SMTP) e a RFC 822 (http://tools.ietf.org/html/rfc822, define o formato de mensagens). Revises menores, publicadas nas RFCs 2821 e 2822, se tornaram padres da Internet, mas todas ainda se referem ao correio eletrnico da Internet como a RFC 822.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

83

Arquitetura A arquitetura dos correios eletrnicos dividida em dois tipos de programas: o de transporte e o de usurio. O primeiro cuida do transporte das mensagens j escritas entre origem e destino. A aplicao que cuida do transporte destas mensagens chamada de Agente de Transferncia de Mensagens (MTA, do ingls Mail Transfer Agent). Esta aplicao (daemon) executa numa mquina que ser o servidor de correio eletrnico e deve possuir alta disponibilidade, uma vez que tem que estar apta a receber mensagens de outros servidores o tempo todo. Como exemplo deste tipo de aplicaes podemos citar o Sendmail, Postfix, Qmail e o MSExchange. O segundo responsvel por prover ao usurio os meios de ler e escrever suas mensagens, so os Agentes de Mensagem de Usurio, (MUA, Mail User Agent). Podem tanto ser programas executados no computador do usurio, como o Eudora, Evolution e o Outlook, ou programas disponveis atravs de interfaces web, os webmails , como os utilizados pelo Gmail, Hotmail que possuem desenvolvimento proprietrio e no disponvel. H programas que possibilitam uma empresa possuir um webmail prprio como o SquirrelMail, NeoMail e o Webmiau.

Figura 38 Arquitetura de conexo dos agentes SMTP e possveis protocolos envolvidos

Estes dois tipos de agente utilizam diferentes protocolos para envio e recebimento de mensagens. Os MTAs utilizam o protocolo SMTP definido pelas RFCs 821 e 822 para a troca de mensagens entre os servidores de e-mail, e os MUAs podem utilizar os protocolos IMAP (Internet Message Access Protocol) e POP (Post Office Protocol), definidos nas RFCs 1064 (http://tools.ietf.org/html/rfc1064) e 1081
84

Copyright 2011, ESAB Escola Superior Aberta do Brasil

(http://tools.ietf.org/html/rfc1081) respectivamente, mas h revises para cada verso destes protocolos. H outros tipos de protocolos proprietrios para MUAs como o Microsoft Exchange e Lotus Notes/Domino. SMTP O SMTP (Simple Mail Transfer Protocol) um protocolo padro Internet para envio de emails entre redes. Foi inicialmente definido pela RFC 821 e sua ltima reviso foi publicada em 2008 na RCP 5321 (http://tools.ietf.org/html/rfc5321). Este protocolo atua puramente na camada de aplicao e independente do subsistema de transmisso. Foi projetado para transferir mensagens de maneira confivel e eficiente. Note que as mensagens trocadas no so confidenciais uma vez que no so criptografadas, isto se d apenas com a insero de uma camada SSL/TLS que pode ser configurada pelo administrador. Em sua especificao original, o SMTP utiliza a porta 25 do protocolo de transporte TCP quando a comunicao entre dois servidores (MTAs) baseada em redes de longo alcance. Em novas submisses tem sido utilizada a porta TCP 587. Apesar de no usual, existe a possibilidade de se utilizar um canal com um mecanismo qualquer para a comunicao entre processos. Seu funcionamento orientado conexo. O resultado de uma requisio de um cliente (MUA) o estabelecimento de uma conexo entre o servidor SMTP de origem e um servidor SMTP de destino, que pode ser tanto o de destino final, quanto um servidor intermedirio. Cada parte da mensagem eletrnica s enviada aps uma negociao inicial a respeito de quem o emissor original, e de quem receber a mensagem em questo. Quando um servidor SMTP aceita uma correspondncia eletrnica, assume a responsabilidade de entregar a mensagem ao usurio final, caso ele seja local, ou repass-la caso o destinatrio seja um usurio remoto. Caso ocorra falha na entrega, este servidor deve notificar o emissor da mensagem. H vrias mensagens de controle dentro do protocolo SMTP. Para envio de uma mensagem, aps uma conexo ser estabelecida, o servidor SMTP de origem envia um comando MAIL indicando a origem da mensagem e caso a mensagem seja aceita, o servidor de destino envia uma mensagem OK (cdigo 250). O prximo passo o envio do
Copyright 2011, ESAB Escola Superior Aberta do Brasil 85

nome do destinatrio da mensagem ao servidor de destino. Caso o usurio exista, novamente a mensagem OK enviada. Porm, se o usurio no existir uma mensagem de ERRO (Cdigo 550) enviada ao servidor de origem. Para uma nica mensagem, mltiplos usurios podem ser aceitos. Para incio da transmisso da correspondncia eletrnica o servidor de origem envia o comando DATA. E em seguida, informa a mensagem SMTP de cdigo 354, que indica o incio da transferncia da correspondncia e que no fim desta ser indicado com uma linha constando somente um ponto, <CR><LF>.<CR><LF>. Aps o recebimento dos dados, o servidor de destino confirma com uma mensagem OK (Cdigo 250). O formato padro das correspondncias eletrnicas, e-mails , definido na RFC822. Em qualquer sistema, estas mensagens so divididas em duas partes: cabealho e corpo. As duas partes so separadas por uma nica linha em branco. Dentro da especificao, h o formato para a composio do cabealho de e-mails, assim como a semntica para cada um de seus campos. Algumas palavras-chaves so obrigatrias, outras no. Uma palavra-chave deve ser seguida de dois-pontos, :, e de um valor para este campo do cabealho. Um exemplo de mensagem apresentado abaixo:

From: secretario@esab.edu.br To: aluno@<domnio> Cc: supervisor@esab.edu.br professor@esab.edu.br Subject: Atualizao de dados cadastrais Date: Mon, 14 December 2010 14:12:00 Prezado aluno, Foram encontradas inconsistncias no seu cadastro. Por favor, atualize seu cadastro no site da ESAB (www.esab.edu.br) Atenciosamente, Secretario
Figura 39 - Formato padro de correspondncia eletrnica, RFC822

Copyright 2011, ESAB Escola Superior Aberta do Brasil

86

SMTP/MIME Na primeira verso do protocolo SMTP eram suportados apenas 7-bit de caracteres ASCII, limitando-se, assim, ao uso de apenas caracteres de lngua inglesa para composio das mensagens de e-mails. Extenses foram criadas a fim de resolver esta limitao. Estas extenses do protocolo recebem o nome de MIME (Multipurpose Internet Mail Extensions , ou em portugus, Extenses Multifuno para Mensagens de Internet). As MIME so uma norma da Internet para o formato das mensagens de correio eletrnico e, atualmente, grande parte das mensagens de correio eletrnico utilizam o protocolo SMTP e o formato de mensagens MIME. Estas extenses tambm permitem transferir dados em codificao diferentes do ASCII. a partir delas que surge a possibilidade de envio de arquivos binrios contendo imagens, sons, filmes e programas de computador. Outra grande importncia do formato das mensagens SMTP/MIME que este foi fundamental para o desenvolvimento dos webmails to populares hoje em dia. So as extenses MIME que possibilitam que aplicaes HTTP possam trocar trfego com servidores de e-mail.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

87

NIDADE

16

Objetivo: Apresentar a arquitetura do servio de correio eletrnico descrevendo os principais protocolos envolvidos.

Correio Eletrnico (Continuao) At agora vimos a arquitetura do correio eletrnico e os conceitos das trocas de mensagem SMTP. Porm, para que as mensagens pudessem ser escritas e lidas pelos usurios necessria a existncia de uma aplicao conectada ao servidor. Denominamos estas aplicaes de MUA. Hoje, comumente acessamos nossas contas de e-mail via webmails, que utilizam as extenses do protocolo SMTP, MIME, para que as aplicaes HTTP possam se comunicar com os servidores de e-mail aos quais chamamos de MTA. No entanto, tambm podemos acessar nossas mensagens atravs de outras aplicaes

gerenciadoras de e-mail como, por exemplo, o Microsoft Outlook e o Thunderbird. A partir destas aplicaes possvel baixar as mensagens para uma estao de trabalho. Aps o download das mensagens possvel trabalhar escrevendo suas respostas mesmo sem estar conectado na Internet e s depois transmiti-las pela Internet. Para que os gerenciadores de e-mail possam acessar e enviar mensagens aos servidores SMTP foram desenvolvidos dois protocolos aos quais trataremos nesta Unidade: o POP e o IMAP. POP3 O principal motivador do surgimento do protocolo POP (Post Office Protocol) foi prover um mecanismo para que estaes que no estavam conectadas permanentemente a uma rede IP pudessem receber e tratar suas mensagens. Com este protocolo, as estaes podem buscar suas mensagens armazenadas temporariamente em servidores de correio eletrnico.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

88

A primeira verso do protocolo POP foi publicada na RFC 918. A verso atual, POP3, foi publicada na RFC1081 que j sofreu algumas revises e atualizaes para atualizao do mecanismo de autenticao. O servio POP funciona sob o modelo cliente/servidor. O cliente a entidade que faz uso deste servio, e o servidor o disponibiliza para uso. Seu funcionamento se d da seguinte maneira: o servidor POP em execuo escuta a porta TCP 110 e quando um cliente deseja utilizar o servio, este inicia uma conexo com o servidor que envia uma saudao. Em seguida as requisies (comandos) so trocadas e respondidas at que se encerre esta conexo. As requisies so realizadas atravs de palavras-chaves seguidos de um ou mais argumentos. J as respostas so compostas de um indicador de status que podem ser +OK quando positivas e -ERR quando negativas, uma palavra-chave e de informaes adicionais. As respostas podem conter mais de uma linha que so terminadas com a sequncia <CR><LF> e o fim de uma resposta indicado com o cdigo do caractere . seguido de um par de <CR><LF>. Os principais comandos POP3 utilizados so: USER name identifica o usurio PASS string senha do usurio QUIT finaliza a sesso POP APOP identifica a caixa de correio e a string MD5 de autorizao STAT lista o tamanho das mensagens RETR msg solicita o envio da mensagem nmero msg RSET desmarca a mensagem DELE msg marca uma mensagem para remoo LIST Lista as mensagem disponveis numa caixa de correio +OK reposta positiva a comandos -ERR resposta negativa a comandos IMAPv4 O protocolo IMAP, assim como o POP, tem o objetivo de manipular mensagens entre o servidor de correio eletrnico (e-mail) e o cliente. O IMAP mais recente que o POP e
Copyright 2011, ESAB Escola Superior Aberta do Brasil 89

possui mais funes que este protocolo. A ltima verso do protocolo IMAP, verso 4, foi publicada na RFC1730, e revisada pela RFC2060. O POP3 foi projetado para manipular as mensagens de forma off-line a partir de um nico cliente. Deste modo, aps efetuar o download da mensagem esta removida do servidor. J o IMAP, possui a opo de leitura das mensagens sem que estas sejam necessariamente removidas. Isto traz a possibilidade de leitura de mensagens a partir de mltiplos MUAs instalados. Por exemplo, um usurio pode configurar um agente em um computador em seu trabalho e outro em sua residncia. Uma das principais vantagens do uso do protocolo IMAP ao invs do POP3 o modo de operao conectado ou desconectado. Os clientes que utilizam POP se conectam ao servidor para fazer download das mensagens e logo aps esta conexo fechada. Isto deve ser feito de tempos em tempos a fim de que se verifique a existncia de novas mensagens. No IMAP o cliente fica conectado ao servidor constantemente e baixa novas mensagens sob demanda. Isto proporciona um tempo de resposta mais rpido, principalmente para clientes que recebem muitas mensagens. Outras vantagens so os recursos para manipulao de mensagens no servidor, tais como: possibilidade de criar, remover e renomear pastas, ativar ou remover marcadores (flags) e o acesso MIME parsing, que permite a busca e a seleo de mensagens por dados do cabealho, corpo ou anexos. O protocolo IMAPv4, denominado assim em sua ltima verso, orientado a conexo e utiliza a porta 143 do protocolo de transporte TCP para isto. Para qualquer possvel operao, como recuperar uma mensagem, inicialmente uma conexo TCP estabelecida. Logo aps ocorre uma operao de saudao inicial (server greeting) entre os agentes, e em seguida a conexo muda de estado, podendo estar no autenticada (not authenticated), ou autenticada (authenticated). Se a conexo for no autenticada o cliente deve fornecer as credenciais (login e senha) antes do envio de qualquer comando. J se o estado de autenticado, basta o cliente selecionar uma caixa de mensagem antes de emitir comandos relacionados a mensagens. Aps selecionar uma caixa de mensagens, o cliente muda para o estado para selecionado (selected). O estado logout alcanado aps uma operao de LOGOUT do cliente, ou por aes unilaterais do cliente ou servidor.
Copyright 2011, ESAB Escola Superior Aberta do Brasil 90

A fim de exemplificao, devido aos inmeros comandos existentes dentro deste protocolo, alguns comandos IMAP so: CAPABILITY solicita lista de recursos suportados pelo servidor. AUTHENTICATE comando para iniciar autenticao (SASL) no servidor. LOGIN utilizado para identificar o cliente, sendo informados usurio e senha em texto plano. STARTTLS utilizado para iniciar autenticao em TLS. SELECT seleciona uma caixa de mensagem. EXAMINE similar ao SELECT, porm acessa a caixa de mensagens em modo de somente leitura. SEARCH busca por mensagens de acordo com um critrio especificado. CHECK solicita a atualizao da caixa de mensagens atual. CLOSE Remove as mensagens marcadas para excluso. Configuraes do Servidor Para funcionamento adequado de um servidor de e-mail alguns itens devem ser configurados adequadamente, tais como o hostname, a data do sistema (system time) e as entradas no servidor de DNS que o identifica. Um servidor de correio eletrnico deve possuir um nome de domnio completamente qualificado (do ingls, Fully Qualified Domain Name FQDN), como por exemplo, mail.esab.edu.br. Este hostname utilizado para saudao a outros servidores de e-mail que o verificam utilizando uma consulta de DNS reverso, descartando a mensagem caso a origem no seja adequadamente confirmada. O relgio dos servidores deve ser sincronizado, pois mensagens entre servidores com diferenas muito grandes de data e hora podem ser descartadas. recomendado o uso de servidores NTP (Network Time Protocol) para sincronizao dos relgios

automaticamente. Outras recomendaes so a configurao adequada do sistema de logs a fim de depurao de erros, liberao das portas de entrada e sada utilizadas pelo servidor de correio eletrnico no firewall. As portas a serem liberadas dependem dos recursos disponibilizados pelo servidor.
Copyright 2011, ESAB Escola Superior Aberta do Brasil 91

NIDADE

17

Objetivo: Entender o funcionamento do protocolo de endereamento dinmico e sua importncia.

DHCP (Dynamic Host Configuration Protocol) Introduo Antes de discutir o funcionamento do protocolo DHCP em si, vamos relembrar alguns pontos sobre o funcionamento das redes e estudar qual a motivao para se criar este protocolo. Como vimos anteriormente, por se tratar de uma rede global, na Internet necessrio que alguns recursos sejam controlados de forma centralizada, como o caso dos endereos IP, para que no haja possibilidade de duplicao. A entidade que controla os nmeros IP o IANA (Internet Assigned Numbers Authority), que hoje parte da ICANN (Internet Corporation for Assigned Names and Numbers). A autoridade sobre os nmeros IP delegada regionalmente para outras entidades. Na Amrica Latina e Caribe a entidade responsvel o LACNIC, e, no Brasil, o NIC.br. Conforme vimos tambm, a partir da dcada de 90 a Internet comeou a se popularizar. Empresas de todo mundo investem cada vez mais em equipamentos de rede capazes de se comunicar via IP. Isso torna a administrao das redes cada vez mais complicada, motivando o desenvolvimento de novos protocolos e servios capazes de utilizar os endereos IP de forma mais eficiente. Dentre eles est o DHCP, publicado na RFC 2131 (http://tools.ietf.org/html/rfc2131) em 1997. O DHCP permite a alocao dinmica de endereos IP, implicando na possibilidade de reutilizao dos endereos da Internet fornecidos pelas operadoras aos clientes em conexes no permanentes, como as realizadas atravs de linhas discadas ou ADSL. Junto a um estudo estatstico do nmero de endereos IPs usados simultaneamente em uma operadora, este protocolo viabiliza o atendimento de um maior nmero de clientes com um mesmo bloco. Suponha que uma empresa utilize o bloco privado classe B em
Copyright 2011, ESAB Escola Superior Aberta do Brasil 92

sua rede interna, por exemplo, o 172.20.0.0/16. Isto equivale a 65025 endereos que poderiam atender a mais de 65025 usurios, dado que nem todas as mquinas de uma empresa ficam ligadas ao mesmo tempo. O protocolo tambm traz vantagem para os administradores de redes privadas. difcil e oneroso manter as configuraes de endereamento manualmente, quando temos um grande nmero de estaes de trabalho em rede. Redes com o nmero de estaes de trabalho acima de 30 j exigem um controle mais rigoroso dos endereos utilizados, para evitar problema de duplicao de endereo de destino. Imagine que determinada mquina no consiga utilizar a rede por conta de um endereo duplicado e um tcnico tivesse que visitar mquina por mquina para conferir todas as configuraes. Alm disto, se tornaria necessria uma poltica de verificao de endereos, onde o tcnico faria essas visitas frequentemente, a fim de minimizar problemas. Qual seria o custo disto medida que a rede cresce? Sem dvida seria alto. importante dizer que existiram outros protocolos para configurao dinmica de endereos IP, como o RARP e o BOOTP, porm com o aumento do nmero de mquinas, necessidade de mais parmetros de configurao, e com o advento da computao mvel esses protocolos se tornaram ineficientes e isto tambm foi um grande motivador da criao do DHCP. O Protocolo O protocolo DHCP utiliza o modelo cliente - servidor, onde o servidor responde s requisies das estaes clientes com endereos de rede disponveis e mscara de rede. Opcionalmente, o servidor DHCP pode incluir nesta resposta o endereo do roteador padro (default gateway), e de servidores de nomes WINS e DNS, definidos nas RFCs 1001 (http://tools.ietf.org/html/rfc1001), 1002 (http://tools.ietf.org/html/rfc1002), 2929

(http://tools.ietf.org/html/rfc2929) e 5395 (http://tools.ietf.org/html/rfc5395). Existem trs mtodos para alocao de endereos via DHCP: Alocao dinmica: atribuio temporria de um endereo a um cliente. Este o mtodo mais utilizado e motivador do desenvolvimento desta tecnologia;

Copyright 2011, ESAB Escola Superior Aberta do Brasil

93

Alocao automtica: atribuio preferencial de um endereo a um cliente. semelhante alocao dinmica, porm o servidor mantm um histrico dos IPs alocados anteriormente e preferencialmente aloca o mesmo endereo a um cliente;

Alocao esttica ou manual: feita pelo administrador, sendo o servidor DHCP apenas usado para transporte do endereo ao cliente. Neste caso, apenas a estao cliente com MAC (Media Access Control) cadastrado pelo administrador na tabela do servidor pode receber um determinado endereo.

Estes mtodos de alocao podem ser usados de forma combinada ou individualmente em uma determinada rede, sendo o mtodo de alocao dinmica o mais empregado. Uma estao cliente deve ser capaz de descobrir os parmetros necessrios ao seu funcionamento, inserindo-os automaticamente em seu sistema sem a interveno manual. Do mesmo modo, o servidor deve ser capaz de funcionar de maneira automtica sem a necessidade de interveno manual de um administrador para o funcionamento de cada estao cliente, exceto nos casos em que o administrador tem que intervir no funcionamento do servidor para fixar determinado endereo a um cliente (Alocao Esttica ou Manual) . Para isto o protocolo DHCP funciona em quatro fases: Descoberta de IP (IP discovery), Oferta de IP (IP lease offer) , Requisio de IP (IP request), e Reconhecimento de

Locao (IP lease acknowledgement). Todas essas fases utilizam de mensagens que seguem o formato a seguir. O formato da mensagem ser importante para o estudo da Unidade 19, onde apresentaremos como se d o processo de troca de mensagens para alocao dinmica de IP utilizando o WireShark, software analisador de pacotes de rede.

OP(1byte)

HTYPE(1byte)

HLEN(1byte)

HOPS(1byte)

ID DE TRANSAES (4bytes) SEGUNDOS (2bytes) FLAGS (2bytes)

ENDEREO IP DO CLIENTE (4bytes) SEU ENDEREO IP (4bytes)

Copyright 2011, ESAB Escola Superior Aberta do Brasil

94

ENDEREO IP DO SERVIDOR (4bytes) ENDEREO IP DO ROTEADOR (4bytes) ENDEREO DE HARDWARE (MAC) DO CLIENTE (16bytes) NOME DO HOST DO SERVIDOR (64bytes) NOME DO ARQUIVO DE PARTIDA (128bytes) OPES (varivel)

Figura 40 - Formato de uma mensagem DHCP

OP - Numa mensagem DHCP, uma solicitao e uma resposta possuem os mesmos campos. O que as diferenciam o contedo deste campo. A informao um indica uma solicitao, a informao dois indica uma resposta HTYPE - Informa o padro de rede utilizado pelo adaptador de rede HLEN - Informa o tamanho do endereo MAC do adaptador de rede HOPS - Quantidade de roteadores pelos quais a mensagem dever passar. Parmetro configurado no servidor para limitar o alcance das mensagens. ID DE TRANSAES - Nmero de identificao da mensagem SEGUNDOS - Quantidade de tempo em segundos desde que o cliente fez a inicializao do processo para conseguir a alocao de um endereo IP. Utilizado para limitar a espera de uma requisio. FLAGS - Utilizado para "setar" opes especiais de resposta s solicitaes. Este campo no utilizado atualmente, mas ficou reservado na criao do protocolo. ENDEREO IP DO CLIENTE - Em uma solicitao o cliente informa o seu endereo IP (possvel quando o cliente conhece o seu endereo) SEU ENDEREO IP - Utilizado pelo servidor para enviar informao de um endereo IP disponvel ao cliente que solicitou. ENDEREO IP DO SERVIDOR - Preenchido pelo cliente quando ele quer obter uma informao de um servidor especfico.
Copyright 2011, ESAB Escola Superior Aberta do Brasil 95

ENDEREO IP DO ROTEADOR - Preenchido pelo servidor para informar ao cliente o endereo IP do roteador da rede local END. DE HARDWARE DO CLIENTE - Informao do endereo MAC do cliente NOME DO HOST DO SERVIDOR - Quando esses campos no so utilizados para enviar as informaes pertinentes a cada um (nome do servidor e informao do sistema operacional que ser inicializado no cliente) o DHCP utiliza-o remetendo informaes adicionais transformando-os em campo de OPES, otimizando assim a utilizao da mensagem. NOME DO ARQUIVO DE PARTIDA - Nome do arquivo que contm a imagem de memria da(s) estao (es) correspondente(s). A estao tem a memria de quais IPs j lhe foram atribudos e guarda isso em arquivo. Este campo nulo quando no h memria, ou caso contrrio, contm o caminho indicando o diretrio deste arquivo. OPES - Esse campo utilizado para informar que tipo de resposta ou solicitao DHCP (DHCPDISCOVER, DHCPOFFER etc.) est sendo enviada para o cliente ou para o servidor.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

96

NIDADE

18

Objetivo: Entender o funcionamento do protocolo de endereamento dinmico e sua importncia. DHCP (Continuao) Funcionamento O DHCP utiliza um modelo de funcionamento cliente/servidor. Suas mensagens utilizam o protocolo de transporte UDP. As mensagens do cliente para o servidor so enviadas para a porta 67 do servidor DHCP. J as que so originadas no servidor so enviadas para a porta 68 do cliente DHCP. O administrador da rede pode instalar e configurar um ou mais servidores DHCP, de acordo com a necessidade. Cada servidor pode responder a requisies de uma ou mais redes. Cada rede deve ser configurada em um escopo. As informaes de configurao, tais como, escopos de endereos IP a serem ofertados, reservados e outras configuraes, so armazenadas no banco de dados dos servidores DHCP. O banco de dados do servidor inclui os seguintes itens: Parmetros de configurao vlidos para todos os clientes na rede: IP do Default Gateway, IP de um ou mais servidores DNS e assim por diante. Estas configuraes podem ser diferentes para cada escopo. Endereos a serem atribudos: Faixa de IPs disponveis para configurao automtica, ou reservados para estaes especficas previamente cadastradas. Durao das concesses oferecidas pelo servidor. Este tempo define o

perodo durante o qual o endereo IP atribudo pode ser utilizado pelo cliente. Antes que este tempo expire o cliente deve renovar no servidor a concesso de seu IP. Com o servidor em operao na rede, as mquinas da rede com um cliente DHCP podem configurar todas as informaes necessrias ao funcionamento dos protocolos TCP/IP
Copyright 2011, ESAB Escola Superior Aberta do Brasil 97

dinamicamente sempre que forem inicializadas. Esse procedimento realizado toda vez que a mquina inicializada como critrio de confirmao, para no haver duplicao na rede. Os servidores DHCP fornecem essa configurao na forma de uma oferta de concesso de endereo para clientes solicitantes. Durante a obteno dos parmetros de configurao necessrios, algumas mensagens so trocadas entre o servidor e o cliente DHCP. A seguir descrita a sequncia destas mensagens com seus respectivos significados.

Figura 41 - Mensagens DHCP para configurao automtica de endereos IP

A sequncia de mensagens para inicializao da configurao dos parmetros de rede so: 1. O cliente envia mensagem broadcast DHCPDISCOVERY. Uma mensagem broadcast em camada 2 significa que o cliente inclui seu endereo de hardware (MAC) como endereo de origem e o endereo ff:ff:ff:ff:ff:ff como MAC de destino. Esta mensagem ser recebida por todos os computadores de uma mesma LAN. No DHCPDISCOVERY o cliente pode incluir uma sugesto de endereo IP, no campo NOME DO ARQUIVO DE PARTIDA, alm da durao mxima da requisio em segundos. Aps este tempo, considera-se a requisio perdida.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

98

2. O servidor pode responder com uma mensagem DHCPOFFER, que inclui um endereo IP disponvel no campo SEU ENDEREO IP alm de outros parmetros nas OPES. O servidor verifica a disponibilidade do endereo IP antes de disponibiliz-lo. 3. O cliente envia uma mensagem DHCPREQUEST que inclui o identificador do servidor DHCP que lhe enviou a primeira mensagem. Isto necessrio para o caso de o cliente receber respostas de mais de um servidor DHCP. 4. O servidor, aps receber a mensagem de REQUEST, salva as configuraes e responde com uma mensagem DHCPACK confirmando as configuraes ofertadas anteriormente. 5. O cliente efetua uma verificao se o endereo recebido est em uso na rede atravs do protocolo ARP. O protocolo ARP envia uma mensagem broadcast, que propagada para toda a rede interna (LAN) perguntando qual o endereo de hardware do IP em questo. Caso receba uma resposta de alguma estao dentro do tempo determinado de durao da requisio ARP (tempo de timeout) constatado que o endereo est em uso e ento o cliente DHCP envia uma mensagem DHCPDECLINE ao servidor. Assim, caso o cliente receba uma mensagem DHCPNACK o processo reiniciado. No caso de o cliente j ter um endereo IP alocado, desejando apenas renov-lo (Renewing), enviar diretamente um DHCPREQUEST. Caso o cliente no receba resposta do servidor DHCP ele entrar em estado de Rebinding enviando novamente a mensagem de DHCPDISCOVERY, mas agora preenchendo os campos da mensagem padro com as configuraes desejadas. Um servidor pode ou no aceitar, sendo que no ltimo caso, enviar uma mensagem de DHCPOFFER para o cliente. Concluso Nesta unidade aprendemos a importncia de um servidor DHCP quando as redes crescem, j que fica invivel administrativamente manter a configurao de rede, para todas as mquinas do parque de uma empresa. Conhecemos tambm, detalhes do

funcionamento do protocolo e suas mensagens padres.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

99

NIDADE

19

Objetivo: Utilizando o analisador de pacotes Wireshark, mostrar a troca de mensagens para alocao dinmica de endereos utilizando DHCP.

Analisador de Pacotes de Rede DHCP Introduo Como estudado, o DHCP utiliza um modelo de funcionamento cliente/servidor. Suas mensagens utilizam o protocolo de transporte UDP. As mensagens do cliente para o servidor so enviadas para a porta 67. J as que so originadas no servidor so enviadas para a porta 68 do cliente DHCP. Nossa abordagem prtica mostrar as mensagens de inicializao de um cliente: DHCPDISCOVER, DHCPOFFER, DHCPREQUEST, DHCPACK. Neste teste o Wireshark foi instalado na mquina cliente, sem que houvesse necessidade do uso de qualquer outro dispositivo para que pudssemos interceptar pacotes de outras mquinas. A mquina cliente, neste caso, tem sistema operacional Linux, Ubuntu 10.04. A descrio da rede: Rede Local: 10.255.255.0/24 Router: 10.255.255.1 Servidor DHCP: 10.255.255.1 IP da mquina cliente armazenado de conexes anteriores: 192.168.2.135 Descrio do experimento: iniciou-se a captura de pacotes no Wireshark na interface de rede da mquina cliente, executando-se em seguida o software cliente DCHP (dhclient) em terminal. Assim que os pacotes foram capturados, a coleta de pacotes foi parada. Na Figura 42 apresentada a tela de captura de pacotes do Wireshark. Podemos ver marcado em cinza o pacote 10, pacote inicial enviado pelo cliente DHCP, e em azul a sequncia de pacotes 12, 13 e 14, que do prosseguimento configurao da rede da

Copyright 2011, ESAB Escola Superior Aberta do Brasil

100

mquina cliente. Nesta figura, no quadro em evidncia mostrado o detalhamento do pacote 10, na rea inferior da janela do Wireshark. Nela podemos ver claramente que para a transmisso da mensagem DHCPDISCOVER utilizou-se o protocolo UDP (User Datagram Protocol) com porta de origem UDP 68 (mquina cliente) e com porta de destino 67 (servidor DHCP)

Figura 42 - Mensagens DHCP capturadas

O detalhamento da mensagem DHCPDISCOVER mostrado na Figura 43, em caso de dvida no formato da mensagem e qual a funo dos campos desta revise a unidade de DHCP. Note que os campos da mensagem Client IP Address (ENDEREO IP DO CLIENTE) e Your IP Address (SEU ENDEREO IP) so preenchidos com 0.0.0.0, j que a mquina cliente est requisitando um IP da rede em questo. Porm no quadro inferior o campo Requested IP Address (campo de opes (Options) que em portugus significa Endereo IP requisitado) tem valor 192.168.2.135, IP utilizado e armazenado na ltima rede acessada pela mquina cliente. O cliente DHCP tenta conseguir o mesmo endereo da ltima configurao vlida. Tambm possvel ver nesta figura, na linha do pacote 10, destacado em cinza, que esta mensagem de broadcast, enviada para o endereo 255.255.255.255. Note que o endereo MAC do cliente explicitado nesta mensagem e a partir dele que a mensagem DHCPOFFER chega at a mquina cliente atravs da

Copyright 2011, ESAB Escola Superior Aberta do Brasil

101

camada de enlace, camada 2 do modelo OSI, uma vez que esta mquina ainda no tem endereo IP, camada 3, configurado.

Figura 43 - Detalhamento da mensagem DHCPDISCOVER

A prxima mensagem a ser detalhada a DHCPOFFER. As informaes enviadas comeam pelo campo Your IP Address, onde preenchido o IP que foi ofertado para a mquina cliente. Tambm comunicado ao cliente, no campo de Opes, o IP do servidor DHCP no campo de Opes (Options) a mscara de rede 255.255.255.0, o IP do roteador gateway 10.255.255.1 e o endereo de broadcast da rede 10.255.255.255.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

102

Figura 44 Detalhamento da Mensagem DHCPOFFER

O cliente procede com o processo enviando a mensagem DHCPREQUEST, apresentada na Figura 45, em broadcast ainda utilizando o IP de origem 0.0.0.0. Nela identificado nas opes o IP do servidor DHCP que o cliente utilizar, pois ele poderia ter recebido mais de uma resposta quando enviou a primeira mensagem do processo. Neste ponto o cliente j tem as informaes necessrias para a configurao da rede IP e aguardar a mensagem de confirmao DHCPACK, mostrada na Figura 46.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

103

Figura 45 - Detalhamento da mensagem DHCPREQUEST

A mensagem DHCPACK j recebida pelo cliente com o IP de destino correto, apesar de o pacote ter sido encaminhado novamente em camada 2. A partir desta tem sua configurao de rede confirmada. Assim nossa experincia termina. Para Renewing e Rebinding as mensagens mostradas aqui so semelhantes e por isso estes dois tipos no so tratados nesta unidade.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

104

Figura 46 - Detalhamento da Mensagem DHCPACK

Copyright 2011, ESAB Escola Superior Aberta do Brasil

105

U
VPN

NIDADE

20

Objetivo: Entender a motivao, o funcionamento e os conceitos de uma VPN (Virtual Private Network, ou em portugus: Rede Virtual Privada)

Introduo Com a globalizao do mundo dos negcios, um ambiente de trabalho mais dinmico exigido. Ao invs de lidar s com assuntos locais e regionais, muitos negcios tm de levar em conta o mercado e a logstica globais. Muitas empresas tm instalaes espalhadas por todo o pas ou mesmo pelo mundo, e at mesmo escritrios dentro da casa de seus funcionrios, conhecidos como home office. Alm disto, executivos, funcionrios ou vendedores de uma empresa, durante uma viagem de negcios, podem precisar de acesso a arquivos e documentos s disponveis dentro da rede privada de uma empresa. Em suma, o que todos precisam de uma maneira de manter uma comunicao rpida, segura e confivel onde quer que seus escritrios estejam. At recentemente, isso significou o uso de linhas dedicadas para manter uma rede de longa distncia (WAN, Wide Area Network). Canais de dados dedicados, variando desde ISDN (Integrated Services Digital Network, ou em portugus servios de rede digital com integrao) com conexo de 128 Kbps, at enlaces contratados com fibras ticas com banda variando de 34Mbps at 10Gbps, utilizando servios como o Frame Relay, ATM, SDH e WDM das operadoras, proveem a empresa com um meio de expandir suas redes privadas alm de suas reas vizinhas. A grande vantagem de uma rede WAN sobre redes pblicas quando se trata de confiabilidade, desempenho e segurana. Porm, manter uma rede WAN, especialmente quando usamos linhas dedicadas, pode se tornar um tanto quanto custoso, com o aumento da capilaridade e das distncias entre os escritrios. As VPNs comearam a serem desenvolvidas em meados dos anos 90, por duas das maiores empresas de tecnologia, a Microsoft e a Cisco. Estas empresas tentaram

Copyright 2011, ESAB Escola Superior Aberta do Brasil

106

funcionar com suas respectivas implementaes de VPNs na esperana de que essas se tornariam um padro industrial. A Microsoft, devido prpria natureza da empresa, chegou ao mercado VPN por meio do ponto de vista dos sistemas operacionais, possibilitando o uso atravs de computadores comuns. Desenvolveu o Point-to-Point Tunnelings Protocol (PPTP, ou em portugus: Protocolo de Tunelamento Ponto a Ponto). Ao mesmo tempo a Cisco tinha a viso estritamente do ponto de vista de equipamentos de rede com um protocolo chamado L2F ( Layer 2 Forwarding, Encaminhamento Camada 2). As duas implementaes tinham suas vantagens e desvantagens. A partir de um acordo de cooperao entre as duas empresas foi desenvolvido um novo protocolo o L2TP (Layer 2 Tunneling Protocol, Protocolo de Tunelamento Camada 2). As primeiras VPNs necessitavam de mo-de-obra especializada para sua implantao e manuteno. Hoje, a tecnologia se desenvolveu e tornou-se mais simples e adequada ao uso em negcios de quaisquer tamanhos, possibilitando assim seu uso em pequenas empresas, antes afastadas deste tipo de soluo.

Figura 47 - Exemplo de uma VPN interligando diferentes tipos de usurio

Como em outros casos, o crescimento da popularidade da Internet fez com que os escritrios se voltassem para as VPNs como forma de ampliar suas prprias redes. Porm redes pblicas so consideradas no confiveis, pois os dados que nelas trafegam esto sujeitos interceptao e captura. Para contornar esse problema, primeiro
Copyright 2011, ESAB Escola Superior Aberta do Brasil 107

chegaram as intranets, que tinham acesso controlado por senhas com uso especfico, somente liberado para funcionrios das empresas. Isto limitava o acesso, porm no garantia que os pacotes no pudessem ser interceptados. Atualmente, as tcnicas de VPN possibilitam a criao de grandes e capilarizadas redes. Utilizando a Internet, as VPNs possibilitam as empresas reduzirem de forma imediata o custo com as conexes de longa distncia (principalmente as companhias com atuao internacional), aluguel de linhas privadas e equipamentos de conexo, como banco de modems e servidores de autenticao. H vrias formas de se implementar uma VPN utilizando diferentes mecanismos de transporte de rede. Cada forma ser mais adequada a um caso de uso. Utilizando como base o modelo OSI, quanto mais baixa a camada mais prxima de ser a escolha mais adequada a unidades de grandes empresas, pois estas possuem gigantesco volume de dados trafegando e dispes de recursos suficientes para a implantao de enlaces dedicados para interconexo de suas unidades. medida que nos voltamos para camadas superiores, a soluo se torna mais vivel a pequenas empresas e usurios remotos. Exemplos de tcnicas utilizadas de acordo com as camadas OSI so: VPNs camada 2 (camada de enlace), utilizando protocolos como PPTP e L2TP; camada 3 (camada de rede) utilizando IPSec (IP Security Tunnel Mode); e at camada 7 (camada de aplicao), usando o protocolos SSL (Security Sockets Layer) ou TLS (Transporte Layer Security) para encriptao e segurana dos dados. Alguns tipos de VPN e outros conceitos de utilizao sero abordados nesta Unidade. Requisitos Bsicos A utilizao de redes pblicas, como a Internet, tende a reduzir drasticamente os custos com a implantao de redes privadas, sendo este o grande motivador para o uso de VPNs. No entanto, para que esta abordagem se torne efetiva, a VPN deve prover um conjunto de funes que garantam: Confidencialidade, Integridade, Autenticidade. O requisito de confidencialidade requer que todo o trfego circulado em uma VPN seja privado, permitindo que apenas usurios autorizados entendam as informaes circuladas. Do ponto de vista da utilizao de uma rede pblica, como a Internet, uma tarefa relativamente simples a de interceptar uma sequncia de dados. Assim, as VPNs
108

Copyright 2011, ESAB Escola Superior Aberta do Brasil

tero que utilizar de mecanismos de criptografia, tais como o SSL e TLS, visando que mesmos que estes dados sejam capturados, no possam ser entendidos. As chaves de criptografia utilizadas por estes mecanismos devem ser gerenciadas de forma a garantir sua alterao de forma peridica, visando sempre manuteno de uma comunicao segura. Tambm preciso que as informaes transmitidas entre dois pontos sejam ntegras. Atacantes como os crackers no devem obter sucesso em tentativas de captura e adulterao de dados. Algoritmos como o SHA-1 (Secure Hash Algorithm 1) e o MD5 (Message Digest Algorithm 5) so utilizados para garantir a integridade dos dados. Para evitar estes tipos de ataque, tambm necessrio que os endereos atribudos aos clientes em uma rede privada no sejam divulgados. Neste sentido, devem ser adotados endereos diferentes para trfego externo. Por fim, necessrio que apenas usurios e equipamentos autorizados possam trocar dados entre si. A autenticidade no garante a propriedade de confidencialidade, porm suficiente para alguns tipos de usurios. Servios como o Radius, Active Directory,

LDAP, podem ser utilizados para autenticar usurios. Outros requisitos so desejveis em uma rede VPN. Atualmente nas empresas, existem inmeras aplicaes que utilizam de diferentes tipos protocolos para executar suas finalidades, como acesso a um sistema de estoque, vendas, etc. Desta forma, tecnologias VPNs com suporte a multi protocolos so bastante interessantes. Muitas vezes este suporte chega a ser necessrio, uma vez que uma empresa normalmente no deseja realizar investimentos j efetuados para o desenvolvimento de novas aplicaes com a mesma utilidade das que j possuem para que alcancem os objetivos de acesso confidencial, integro e seguro.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

109

NIDADE

21

Objetivo: Entender a motivao, o funcionamento e os conceitos de uma VPN (Virtual Private Network, ou em portugus: Rede Virtual Privada). VPN (Continuao) Solues com Tunelamento A tecnologia de tunelamento anterior ao desenvolvimento das redes virtuais privadas. O processo para a realizao de tneis consiste no encapsulamento de um protocolo em outro. O uso desta tcnica nas VPNs permite que no s os dados de um pacote que circula em redes pblicas sejam criptografados, mas tambm todo o contedo dos cabealhos dos protocolos utilizados pelas aplicaes destas redes. Isto traz uma segurana ainda maior para os usurios interessados em utilizar uma rede privada. Ao entrar no tnel um pacote criptografado e adicionado como dados em outro pacote com informaes suficientes para que este seja encaminhado por toda a rede, ou Internet, at a outra extremidade do tnel. L este descriptografado e retorna ao formato original. isto que permite o encapsulamento de datagramas de um protocolo em outro. Por exemplo, pacotes de protocolo IPX podem ser encapsulados e transportados dentro de pacotes TCP/IP.

Figura 48 - Encaminhamento de um pacote em um tnel


Copyright 2011, ESAB Escola Superior Aberta do Brasil 110

Os tneis podem ser criados de duas diferentes formas: voluntrias e compulsrias. Em um Tnel Voluntrio o usurio emite uma solicitao VPN atravs de um software para configurar e criar um tnel voluntrio. Neste caso, o computador do usurio funciona como uma das extremidades do tnel e, tambm, como cliente do tnel. J em um Tnel Compulsrio, um servidor de acesso VPN, que pode estar associado a um proxy por exemplo, configura e cria o tnel de forma compulsria, isto , o tnel para acesso a VPN criado independentemente da vontade do usurio. Neste caso, este servidor funcionar como gateway para acesso s estaes dentro da VPN e nele que estar a extremidade do tnel do ponto de vista do usurio que solicitou o acesso a uma estao dentro da VPN. Desta forma, quando se utiliza um servidor VPN, o computador cliente trafega seus dados com destino a outra estao do outro lado do tnel primeiramente por uma rede local sem criptografia e a partir da passagem dos dados pelo servidor VPN os dados passam a ser criptografados por ele. Vimos duas formas de criao de uma das extremidades de um tnel VPN atravs de servidor VPN ou atravs da solicitao de um usurio remoto. Desta forma, dependendo de como se d a criao dos tneis VPN, as topologias de acesso so nomeadas como: Topologia gateway-gateway: dois servidores de acesso estabelecem um tnel entre duas redes locais Topologia gateway-usurio: o tnel se inicia em um servidor de acesso e tem fim em uma mquina cliente remota; Topologia usurio-usurio: um tnel configurado entre duas mquinas clientes atravs de solicitao dos usurios. Protocolos Utilizados em Diferentes Camadas OSI Para se estabelecer um tnel necessrio que as suas extremidades utilizem o mesmo protocolo de tunelamento.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

111

O tunelamento pode ocorrer na camada 2 ou 3 (respectivamente enlace e rede) do modelo de referncia OSI (Open Systems Interconnection). Tunelamento em Camada 2 Protocolos de camada 2 tm por objetivo controlar o acesso ao meio, e encaminhar pacotes das camadas superiores de uma mquina a outros dispositivos de rede conectados. Podemos citar o IP e IPX como exemplo de protocolos camada 3 transportados pelo protocolo ARP que funciona na camada 2. Resumidamente, um tnel camada 2 deve transportar os pacotes de protocolos de nveis superiores no nvel de rede local, LAN, criptografando e encapsulando-os em quadros de camada 2. Neste caso, o acesso se d de forma compulsria e transparente ao usurio. Como exemplos, podemos citar os seguintes protocolos:

PPTP: Considerado uma extenso do protocolo PPP uma vez que faz uso dos mecanismos de conexo, autenticao e compactao deste protocolo. Foi desenvolvido pelo Frum PPTP, um consrcio que inclui US Robotics, Microsoft, 3Com, Ascend e ECI Telematics, e entregue 2 anos antes dos protocolos L2TP. Sua implementao mais conhecida a da Microsoft, que amplamente utilizada em sistemas Windows. As premissas deste protocolo era ser simples, possuir suporte a mltiplos protocolos e ser verstil, podendo ser utilizado para percorrer caminhos entre diversas redes IP.

L2TP: Projetado pela Cisco Systems e Microsoft, foi homologado pela Internet Engineering Task Force (IETF) como protocolo padro, combina caractersticas dos protocolos L2F e PPTP. Conforme definido na RFC2661

(http://tools.ietf.org/html/rfc2661) o L2TP estende as funcionalidades do PPP permitindo que L2TP e PPP estejam em equipamentos diferentes e mesmo assim interligados pela rede. As conexes feitas pelos clientes remotos chegam at um Concentrado de Acesso (LAC, L2TP Access Concentrator), mas as conexes PPP se concluem em um Servidor de Rede L2TP (LNS, L2TP Network Server). O L2TP trabalha com os dois modos de tunelamento, voluntrio e compulsrio e permite a autenticao de tneis utilizando os mesmos protocolos inclusos no PPP que o PPTP faz uso. Porm servidores Radius e Tacacs so tambm suportados. A
Copyright 2011, ESAB Escola Superior Aberta do Brasil 112

verso

do

protocolo

que

definida

em

2005

na

RFC3031 de

(http://tools.ietf.org/html/rfc3931)

acrescenta

funcionalidades

adicionais

segurana, melhora da habilidade de encapsulamento, e a habilidade de ser utilizado sobre outros tipos de enlace que no o PPP, como por exemplo, Frame Relay, Ethernet, ATM, etc. Apesar de ser atual, o L2TP tem a desvantagem de possuir falhas de confidencialidade. Para suprir esta deficincia ele normalmente associado ao protocolo IPSec.

Tunelamento em Camada 3 O tunelamento em camada 3 encapsula e criptografa os pacotes IP que trafegam entre diferentes redes atravs de um cabealho adicional utilizando o IPSec (Internet Protocol Security Tunnel Mode, ou em portugus, Modo de Tnel Seguro do Protocolo de Internet). O IPSec um conjunto de protocolos com estrutura desenvolvida em padres abertos para proteger o trfego dos pacotes IP garantindo confidencialidade, integridade e autenticidade atravs da criao de tneis, tornando possvel seu uso para assegurar dados em uma rede pblica. Implementa a criptografia e autenticao na camada de rede, permitindo aos aplicativos finais se aproveitarem desta vantagem de forte segurana sem alteraes ou configuraes adicionais. Os algoritmos de criptografia utilizados so HMAC-SHA1, para proteo de integridade e autenticao, o TripleDES-CBC e o AESCBC para confidencialidade, para detalhes consulte a RFC4835

(http://tools.ietf.org/html/rfc4835) . O IPSec foi desenvolvido pelo Grupo de Trabalho de Segurana do IP da IETF com o intuito de ser o protocolo padro de endereamento para a prxima verso do IP, chamado IPv6. Por enquanto, o IPSec apenas opcional para o IPv4. Por ser um protocolo padro, existem muitas implementaes disponveis. Devido a isto, a segurana provida pelo IPSec depende muito dos recursos utilizados em cada implementao. Vale lembrar que manter os sistemas operacionais de todos os equipamentos de rede atualizados previnem as redes de serem vtimas de

vulnerabilidades divulgadas e j resolvidas.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

113

Toda

lista

de

RFCs

utilizadas

em

VPNs

apresentada

neste

site:

http://www.vpnc.org/vpn-standards.html. O site est em ingls, porm isso no dificulta a visualizao dos RFCs.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

114

NIDADE

22

Objetivo: Entender a motivao, o funcionamento e os conceitos de uma VPN (Virtual Private Network, ou em portugus: Rede Virtual Privada). VPN (Continuao) VPNs em Camada 7 As VPNs que vimos at agora usam algum mecanismo de transporte de rede. Para um usurio remoto ou para pequenas empresas a soluo pode ser utilizar uma VPN com base em uma aplicao (camada 7 do modelo OSI), possibilitando assim o uso da Internet disponvel em qualquer lugar, em um computador ou smartphone qualquer. Para isso as aplicaes utilizam da tcnica de SSL/TLS, apresentada na Unidade 4. As VPNs SSL atuam basicamente como um proxy reverso que funciona sobre HTTPS e consequentemente utiliza a camada SSL/TLS para prover segurana. A maior parte delas pode tunelar qualquer tipo de trfego. Mas fique atento, uma VPN SSL diferente de acessar uma pgina em HTTPS. A diferena bsica que uma VPN SSL depende de um servidor similar a um proxy reverso e permite acesso a basicamente qualquer tipo de aplicao e no s a aplicao HTTP. Um proxy reverso funciona como um gateway para servidores. muito utilizado para balanceamento de trfego. Ele habilita um servidor web para prover contedo de forma transparente e atua de forma a fornecer controle de acesso ao contedo destes servidores. Mquinas externas a rede local acessaro o proxy reverso como se ele fosse o provedor de servios e contedo. Assim que uma requisio feita ao proxy reverso, este se encarrega de buscar as informaes necessrias para a resposta desta requisio em um dos servidores internos e as retorna mquina que fez a requisio. O uso deste tipo de especial de proxy fortalece a segurana, pois as conexes no so realizadas diretamente aos servidores, e possibilitam o registro de logs permitindo a anlise de trfego para mitigar o problema de ataques a rede abaixo do proxy.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

115

Figura 49 - Exemplo de proxy reverso

Numa VPN SSL, um servidor similar a um proxy reverso deve criar os tneis SSL at os clientes que se autenticarem nele. Tambm h a possibilidade de no ser obrigatria esta autenticao. Assim, o controle de acesso de responsabilidade deste servidor. O servidor de uma VPN SSL pode suportar quaisquer tipos de aplicaes e no s aplicaes web, como, por exemplo, um servio de impresso, de acesso a arquivos e outros recursos de rede. Numa VPN SSL, aplicaes como HTTP e FTP, disponveis na maior parte dos navegadores de Internet, podem ento solicitar uma conexo segura imediatamente, no havendo a necessidade de um software de cliente adicional ao que j est no sistema operacional do usurio remoto. Quando usar uma VPN SSL? A escolha de um ou outro tipo de VPN no deve ser baseada unicamente nas caractersticas tcnicas. A melhor opo ser aquela que melhor atender aos requisitos que voc tem, s funcionalidades de que o negcio de seu cliente precisa. As duas solues tm o mesmo nvel de segurana. VPNs SSL permitem um controle bem mais especfico sobre os tipos de recursos, aplicaes e servios a que
116

Copyright 2011, ESAB Escola Superior Aberta do Brasil

o usurio remoto tem acesso, pois o suporte a essas aplicaes deve ser liberado no servidor e o acesso a este pode gerar logs que trazem a possibilidade da anlise do trfego solicitado. J o usurio de uma VPN IPSec tem, por exemplo, aps conectado, ampla visibilidade e acesso aos recursos da rede, como se estivesse num ponto fsico da rede local. Concluso As VPNs so uma alternativa vivel para a transmisso segura de informaes atravs de redes pblicas ou privadas. Fornecem mecanismos de autenticao, integridade e criptografia com variados nveis de segurana em diferentes camadas do modelo OSI de comunicao de dados. Permite que de unidades pequenas e distantes de empresas sejam conectadas de forma segura sem a contratao de enlaces dedicados, muitas vezes onerosos demais para serem viveis. Entretanto, sua aplicao em ambientes onde as aplicaes tm elevados requisitos de tempo de transmisso o seu uso deve ser analisado com cuidado. Pois a sequncia de algoritmos utilizados para prover segurana demanda tempo de processamento dos dados, podendo ocorrer problemas de desempenho e atrasos na transmisso sobre os quais a organizao no tem nenhum tipo de gerncia ou controle, comprometendo a qualidade desejada nos servios corporativos. A deciso de utilizao de uma VPN deve levar em considerao aspectos relacionados segurana, custos, qualidade de servio e facilidade de uso que variam de acordo com o negcio de cada organizao.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

117

NIDADE

23

Objetivo: Conhecer os Protocolos e Respectivos Servios da Camada de Aplicao Responsveis pelo Acesso Remoto.

Servios e Protocolos de Acesso Remoto - Telnet Imagine que voc responsvel por administrar um servidor que est dentro de uma salacofre (ambiente estanque que protege os equipamentos contidos em seu interior contra diversas ameaas fsicas como incndio, roubo, dentre outros) onde o acesso bem restrito. Ou ento, responsvel por administrar vrios roteadores e servidores localizados em diversos prdios, destinados a distribuir Internet em cada um dos prdios. Como voc faria para acessar todos esses equipamentos? Esta unidade apresenta os protocolos da camada de aplicao e respectivos servios responsveis por fornecer o acesso remoto a equipamentos ligados em rede, estejam eles fisicamente pertos de voc, distantes, em ambientes restritos, dentre outras localidades. Vale ressaltar que apenas os servios provindos de protocolos aprovados em RFCs so apresentados. Telnet O Telnet um protocolo cliente-servidor cujo objetivo principal a conexo e acesso s mquinas remotas, de forma a permitir a comunicao entre computadores que fazem parte de uma rede, seja ela uma rede local ou a Internet. Foi desenvolvido em 1969 comeando com o RFC 15 (http://tools.ietf.org/html/rfc15) e posteriormente estendido no RFC 854 (http://tools.ietf.org/html/rfc854) e 855 (http://tools.ietf.org/html/rfc855), tornandose um padro IETF (Internet Engineering Task Force) em 1983, sendo um dos primeiros padres da Internet. O termo Telnet tambm se refere ao software que implementa a parte cliente do protocolo. O Telnet tipicamente estabelece uma conexo pela porta 23 do protocolo de transporte TCP, sendo, portanto, orientado conexo. A aplicao servidora do servio

Copyright 2011, ESAB Escola Superior Aberta do Brasil

118

Telnet escuta essa porta e recebe as teclas acionadas no terminal remoto localizado no cliente. Dessa forma, atravs de uma sesso de terminal, o Telnet permite o acesso e execuo de aplicaes e comandos em uma mquina remota. O servidor a mquina que fornece algum servio, sendo o cliente o lado que utiliza esse servio. Uma sesso Telnet permite acessar computadores, servidores, roteadores, switches, dentre outros. A sesso pode ser estabelecida independente dos sistemas operacionais utilizados pelas mquinas que hospedam as aplicaes Telnet.

Figura 50 Acesso Remoto via Telnet

Para acessar remotamente um equipamento, normalmente um login e senha so necessrios. No Telnet, todo o trfego na rede realizado em texto plano (ASCII), ou seja, os dados transmitidos podem ser interceptados (caso haja escuta na rede) e visualizados normalmente (incluindo o login e a senha). Portanto, um usurio avanado com acesso ao roteador, switch, hub ou gateway localizados na rede entre os dois equipamentos utilizando Telnet pode interceptar os pacotes transmitidos (atravs de aplicativos comuns, como o Wireshark apresentado neste Mdulo) e ter acesso ao login, senha ou qualquer outro caracter digitado. Devido a essa grande desvantagem o uso do Telnet tem sido desaconselhado, recomendando-se a utilizao do SSH. Assim como em outros protocolos mais antigos da Internet, extenses do protocolo Telnet fornecem segurana atravs do TLS e autenticao atravs do SASL (Simple Authentication and Security Layer, em portugus, Autenticao Simples e Camada de Segurana). Entretanto, poucas implementaes do
Copyright 2011, ESAB Escola Superior Aberta do Brasil 119

Telnet suportam essas extenses at mesmo porque como o SSH adequado para a maioria das necessidades pouco interesse foi demonstrado em realizar as adequaes citadas. Uma das poucas possibilidades de utilizao do Telnet (sem a extenso citada) de forma segura em redes internas seguras sem acesso de pessoas no confiveis, ou atravs de VPN (Virtual Private Network).

Copyright 2011, ESAB Escola Superior Aberta do Brasil

120

NIDADE

24

Objetivo: Conhecer o SSH, um Protocolo e Servio para Acesso Remoto.

Servios e Protocolos de Acesso Remoto - SSH (Secure Shell) O SSH (Secure Shell), assim como Telnet, um protocolo no modelo cliente-servidor que permite estabelecer conexo remota entre mquinas de forma transparente dando a impresso ao usurio que ele est operando diretamente o terminal de comandos da mquina servidora. Tambm utiliza como protocolo de transporte o TCP, sendo a sua porta padro a 22.

Figura 51 Acesso Remoto via SSH

O protocolo SSH foi criado devido s vulnerabilidades encontradas no Telnet. Dessa forma, sua principal diferena a encriptao dos dados trafegados entre as mquinas conectadas, dificultando a descoberta dos contedos dos pacotes caso a transmisso seja interceptada. Portanto, de forma resumida, o SSH um protocolo que permite estabelecer conexo remota entre mquinas fornecendo o intercmbio de dados encriptados entre dois dispositivos em rede. A encriptao utilizada pelo SSH tem como objetivo fornecer integridade e confidencialidade aos dados transmitidos em uma rede insegura, como por exemplo, a Internet.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

121

O SSH utiliza a criptografia de chave pblica para autenticar o computador remoto e permitir que o computador remoto autentique o cliente. A criptografia de chave pblica utiliza o algoritmo de chaves assimtricas para gerar duas chaves: a chave privada secreta e a chave pblica, conforme vimos na Unidade 4. Em uma conexo SSH, o cliente e servidor trocam suas respectivas chaves pblicas para realizar a autenticao de forma que possam se comunicar de forma segura. Uma vez realizada a autenticao, as mensagens so criptografadas com algoritmo de chaves simtricas. Apesar de ser uma ferramenta nativa do Unix, existem clientes SSH para Windows e outras plataformas. O SSH permite gerenciar mquinas remotas atravs de aplicaes em modo texto, via terminal, ou aplicaes grficas. O SSH enfatiza a segurana, permitindo detectar quando a mquina remota no a desejada, ou seja, uma mquina impostora que foi substituda para tentar tirar proveito de uma conexo aberta para injetar dados na conexo. Outro ponto de segurana provido pelo SSH a tcnica de despiste que consiste em complicar a descoberta do pacote criptografado que possui a senha de acesso, dificultando a ao de quem pretende obter a senha para tentar descriptograf-la utilizando tcnicas de fora bruta. A utilizao tpica do SSH para efetuar login em uma mquina remota para executar comandos, mas tambm pode ser utilizado para: tunelamento, redirecionamento de portas TCP (port fowarding), X11 (protocolo e respectivo software associado que possibilita o emprego de uma interface grfica) e para a transferncia de arquivos utilizando os protocolos SFTP e SCP. A primeira verso do protocolo (atualmente chamada de SSH-1) foi projetada em 1995 na Universidade Tecnolgica de Helsinki aps um ataque utilizando sniffer na rede da instituio. Em julho de 1995 sua implementao foi liberada como freeware e em pouco menos de seis meses a ferramenta rapidamente ganhou popularidade, atingindo a marca de 20.000 usurios em 50 pases. Uma estimativa indica que no ano 2000 o SSH possua 2 milhes de usurios. Entre 1998 e 2001, algumas vulnerabilidades foram encontradas na verso 1 do SSH (a primeira foi identificada na verso 1.5), como por exemplo: insero de contedo no autorizado no fluxo de dados, execuo de cdigo arbitrrio com privilgios
122

Copyright 2011, ESAB Escola Superior Aberta do Brasil

administrativos no SSH, alterao do ltimo bloco de uma sesso IDEA encriptada e permisso para um servidor malicioso redirecionar a autenticao de um cliente para outro servidor. A segunda verso do protocolo, atualmente chamada de SSH-2, foi adotada como padro em 2006 sendo que o seu ncleo foi publicado nos RFC de 4250 at 4254 (http://tools.ietf.org/html/rfc4250) para fornecer melhorias de segurana e funcionalidades em relao ao SSH-1. Essa verso do protocolo incompatvel com a SSH-1, porm as aplicaes SSH podem fornecer suporte s duas verses. A verso SSH-2 mesmo sendo mais robusta do que a verso 1, teve uma vulnerabilidade descoberta em novembro de 2008 para o caso de uma configurao especfica de uso da aplicao. Devido ao fato do SSH-1 apresentar falhas de projeto que a tornam vulnerveis, geralmente considerada obsoleta e deve ser evitada desabilitando explicitamente a compatibilidade na aplicao (quando o software suporta o SSH-2). O OpenSSH (http://www.openssh.com) uma ferramenta gratuita que suporta as verses 1.x e 2.x, sendo uma das implementaes mais populares do SSH .

Existem aplicaes proprietrias com verses gratuitas que permitem acessar remotamente uma mquina atravs do modo grfico. Dentre elas, podemos destacar o LogMeIn (https://secure.logmein.com/BR/) e o TeamViewer

(http://www.teamviewer.com/pt/index.aspx).

Copyright 2011, ESAB Escola Superior Aberta do Brasil

123

NIDADE

25

Objetivo: Apresentar as diferenas de confidencialidade entre os protocolos SSH e Telnet utilizando o analisador de pacotes de rede Wireshark.

Analisador de Pacotes de Rede Telnet x SSH Introduo Como estudado, o Telnet e o SSH utiliza o modelo de funcionamento cliente/servidor. Suas mensagens so transmitidas via protocolo de transporte TCP. O servidor destes protocolos envia e recebe mensagem nas portas 23 e 22 respectivamente Nossa abordagem prtica mostrar como se pode capturar o usurio e senha em uma conexo Telnet. Apresentar em seguida os pacotes com dados confidenciais numa conexo SSH. Neste teste o Wireshark foi instalado na mquina cliente, sem que houvesse necessidade do uso de qualquer outro dispositivo para que pudssemos interceptar pacotes de outras mquinas. A mquina cliente, neste caso, tem sistema operacional Linux, Ubuntu 10.04. A descrio da rede: Rede Local: 10.255.255.0/24 Servidor Telnet e SSH: 10.255.255.101 Usurio para acesso ao servidor: usuario Senha do usurio para autenticao: esab123 Mquina cliente das conexes remotas: 10.255.255.100 Descrio do experimento: iniciou-se a captura de pacotes no Wireshark na interface de rede da mquina cliente, executando em uma conexo telnet com o usurio usuario com o comando telnet l usuario 10.255.255.101 em terminal. Em seguida iniciamos uma conexo ssh com o mesmo usurio

Copyright 2011, ESAB Escola Superior Aberta do Brasil

124

Telnet A Figura 52 mostra o terminal de onde foi executada a conexo remota ficando explcito o xito na conexo.

Figura 52 - Terminal onde foi estabelecida uma conexo Telnet com xito

A Figura 53 mostra os pacotes trocados numa conexo Telnet desde a iniciao desta no three-way handshake do TCP. O nmero 39180 nos pacotes do TCP indica a porta do cliente. Como o usurio j foi inserido no comando utilizado para incio da conexo este aparece no pacote capturado nmero 12, Telnet Data... (dados telnet), em destaque. Podemos ver o usurio utilizado no quadro em destaque, na expresso do campo de opes (Option data) USER.usuario. Supondo que uma pessoa m intencionada tenha capturado estes pacotes. Com esta informao, basta que se descubra a senha para que ela inicie uma conexo remota com o servidor em questo e aja no que ela deseje fazer, como, por exemplo, conseguir informaes do sistema ou tentar ganhar um terminal root explorando outras vulnerabilidades locais.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

125

Figura 53 - Pacotes de uma conexo Telnet, usurio capturado

Note que utilizamos um filtro de exibio na Figura 53: not dns and not udp. Isto foi realizado para retirar pacotes destes dois protocolos da tela, facilitando assim a anlise dos pacotes de interesse. O prximo pacote a ser analisado o de nmero 17, enviado do servidor Telnet para o cliente. Na Figura 54 apresentada a decodificao do campo de dados telnet. neste pacote que o servidor envia a string password: ao cliente, indicando que o servidor ficar esperando o envio de dados referente senha do usurio. Nesta figura tambm est em destaque a camada de transporte TCP (Transmission Control Protocol) indicando a porta padro nmero 23 para o servidor e a porta 39180 para o cliente. O pacote 18 a confirmao (ACK) de recebimento de dados TCP realizada pelo cliente.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

126

Figura 54 - Solicitao de senha pelo servidor Telnet

O pacote 19 o primeiro pacote de dados enviado pelo cliente aps a solicitao de senha realizada pelo servidor. Vemos claramente na Figura 55 que nele enviado o primeiro caractere da senha, a letra e. Na Figura 56 mostrada a sequncia de pacotes e dados Telnet seguintes. Juntando todos os pacotes vemos que fica evidente a senha do usurio em questo, destacada no quadro marcado.

Figura 55 Primeiro pacote da senha do usurio Telnet

Desta forma conclumos a parte de conexo Telnet, ficando evidente sua fragilidade no quesito segurana e confidencialidade de informaes. Partiremos a seguir para uma conexo SSH com o mesmo usurio e senha a fim de mostrar sua maior robustez nestes mesmos quesitos.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

127

Figura 56 Em destaque a senha do usurio usuario" para conexo Telnet

SSH Como realizado anteriormente, iniciaremos apresentando, na Figura 57, uma imagem do terminal onde a conexo SSH foi realizada com sucesso.

Figura 57 - Terminal onde foi estabelecida uma conexo SSH com xito

Copyright 2011, ESAB Escola Superior Aberta do Brasil

128

Apresentamos em seguida, na Figura 58 a sequncia de pacotes capturada durante esta conexo ssh. Seguindo esta sequncia vemos o estabelecimento da conexo tcp do cliente para o servidor SSH, pacotes 1, 2 e 3, da porta 45632 para a porta ssh, 22. Prosseguido conseguimos ver a troca de chaves (Key Exchange), nos pacotes 9 a 14. Em destaque vemos o pacote 18, sendo este um pacote SSH verso 2 de resposta encriptada (Encrypted response). No primeiro quadro em destaque, confirmamos o uso do TCP na porta 22 pelo servidor. Em seguida, no prximo quadro, mostrado o pacote encriptado. Percebe-se que no conseguiremos visualizar os dados transmitidos como no Telnet, no se fazendo necessria a anlise de mais pacotes aqui, pois todos tero o mesmo formato. A pessoa mal intencionada de posse destes pacotes no conseguir descobrir a senha nem o usurio para acessar o servidor, concluindo assim nossa experincia.

Figura 58 Pacotes SSHv2 com dados criptografados capturados

Copyright 2011, ESAB Escola Superior Aberta do Brasil

129

NIDADE

26

Objetivo: Entender a importncia do protocolo para transferncia de arquivos FTP e suas principais caractersticas.

Servios e Protocolos de Transferncia de Arquivos - FTP (File Transfer Protocol) O FTP um protocolo cliente-servidor utilizado para transferir arquivos entre computadores em uma rede baseada em TCP/IP, como a Internet. Esse protocolo foi publicado em 1971 na RFC 114 (http://tools.ietf.org/html/rfc114) e aps substituies, est descrito no RFC 959 (http://tools.ietf.org/html/rfc959) de 1985. Mesmo sendo antigo est entre os meios mais populares para transferncia de arquivos. Diversos servidores utilizam o FTP para disponibilizar arquivos (contedo, documentos, programas, etc) tanto na Internet quanto em redes locais. O protocolo FTP independente de hardware e de sistema operacional. Os aplicativos FTP permitem que o usurio navegue pela estrutura de diretrio remoto como se estivesse acessando o sistema de arquivos de sua mquina, podendo realizar aes como criao, alterao e remoo de arquivos e pastas (de acordo com as permisses concedidas pelo administrador). A facilidade de acesso aos dados e s pastas, a possibilidade de transferncia de arquivos grandes e a confiabilidade fornecida pelo TCP contribuem fortemente para a alta popularidade dos aplicativos FTP.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

130

Figura 59 Transferncia de Arquivos com o FTP

A Figura 59 acima representa uma tpica sesso FTP em que um usurio sentado em sua mquina, pretende transferir arquivos de ou para o servidor remoto, ou seja, realizar um upload (transferncia de arquivo para um servidor) ou download (transferncia de arquivo de um servidor para mquina local). Para acessar o servidor, o usurio primeiramente informa o endereo do mesmo (ex: ftp.empresa.com.br) e a aplicao cliente FTP presente em seu computador estabelece uma conexo TCP com o processo servidor FTP que est no computador remoto. Em seguida, caso no seja um usurio annimo, ele informar o login e senha (enviados pela conexo TCP como parte dos comandos FTP) para acessar a conta remota. Aps autenticao do login e senha, o usurio poder realizar a transferncia de arquivos armazenados no sistema de arquivos local para o sistema de arquivos remoto (ou vice-versa), de acordo com as permisses de acesso que possuir. O FTP pode ser configurado para restringir os privilgios de acesso (leitura, escrita, criao ou remoo de arquivos) de determinados usurios em determinadas pastas do servidor. Dessa forma, o administrador de um servidor FTP tem pleno controle sobre as aes e pastas que cada usurio pode acessar. Por exemplo, em uma instituio de ensino o administrador poderia criar uma pasta destinada aos materiais do professor de forma que ele pudesse criar e remover arquivos enquanto os alunos s poderiam ler os arquivos disponibilizados pelo tutor, evitando que os contedos dos mesmos fossem alterados pelos alunos. O administrador pode inclusive liberar ou negar acesso de
Copyright 2011, ESAB Escola Superior Aberta do Brasil 131

usurios annimos, que no precisam de login e senha para se conectar e transferir arquivos. De um modo geral os administradores costumam conceder aos usurios annimos somente permisso de leitura em pastas pblicas. Entretanto, recomenda-se bloquear os usurios annimos caso sua participao no seja necessria. Conexes FTP Uma caracterstica do protocolo FTP o estabelecimento de dois tipos de conexes TCP paralelas entre o cliente e servidor, uma para controle e outra para transferncia de dados. A conexo de controle: utilizada para enviar informaes e comandos. Nenhum arquivo transferido por essa conexo. As informaes como login e senha, e os comandos para baixar arquivos, inserir arquivos, listar diretrios, dentre outros, so passados por essa conexo que tem caractersticas administrativas, e por isso recebe o nome de controle. A conexo de controle estabelecida quando o cliente solicita o incio da sesso FTP, e mantida durante todo o tempo da sesso A conexo de dados: utilizada para transferncia do arquivo, sendo estabelecida a cada solicitao de transferncia. O FTP envia exatamente um arquivo pela conexo de dados e em seguida fecha essa conexo, ou seja, as conexes de dados no so persistentes. Se durante a mesma sesso outros arquivos forem transferidos pelo usurio, uma nova conexo de dados para cada arquivo ser aberta. Uma caracterstica adicional da conexo de controle que ela utiliza ou se baseia no protocolo Telnet de acordo com as duas formas especificadas na RFC 959 (enquanto a conexo de dados uma conexo TCP que no se baseia em nenhum protocolo adicional). Segundo essa RFC, a aplicao que implementa o protocolo FTP pode implementar diretamente em seus procedimentos as regras do protocolo Telnet ou ento pode utilizar-se do mdulo Telnet existente no sistema. A segunda opo apresenta as vantagens de facilidade de implementao, compartilhamento de cdigo e programao modular, enquanto a primeira apresenta as vantagens de independncia e eficincia. Na prtica, a primeira opo no necessita de muito cdigo visto que o FTP baseia-se em poucas definies do protocolo Telnet.
Copyright 2011, ESAB Escola Superior Aberta do Brasil 132

Figura 60 Conexo de Controle e Conexo de Dados do FTP entre Cliente e Servidor

Como o FTP utiliza uma conexo exclusiva para troca de informaes (a conexo de controle), dizemos que suas informaes de controle so enviadas fora da banda. Essa denominao diferente da do protocolo HTTP que transfere o cabealho, requisio e resposta pela mesma conexo TCP utilizada para o arquivo transferido, ou seja, envia suas informaes de controle dentro da banda. Uma transferncia de arquivo sendo realizada pela conexo de dados pode ser abortada atravs do envio de um comando de interrupo enviado pela conexo de controle. Modos Ativo e Passivo Um servidor FTP pode funcionar no modo ativo ou passivo, sendo a diferena entre eles a parte que origina a conexo de dados. Independentemente, em ambos os casos existem as conexes de controle e as conexes de dados. Primeiramente, vamos entender como funciona a conexo de controle, para ento diferenciar a conexo de dados do servidor no modo ativo e passivo. Quando o cliente inicia uma sesso FTP com o servidor, uma conexo TCP de controle estabelecida com a porta 21 do servidor. Esse procedimento feito tanto no servidor modo ativo como passivo. Em relao conexo de dados: No modo ativo quando solicitado o envio de um arquivo, o cliente envia ao servidor seu endereo IP e porta de escuta, e o servidor inicia uma conexo de

Copyright 2011, ESAB Escola Superior Aberta do Brasil

133

dados TCP que se origina na porta 20 (do servidor). Ou seja, no modo ativo o servidor que inicia a conexo de dados. Esse modo pode causar bloqueio pelo firewall da rede porque uma conexo iniciada por uma mquina fora da rede destinada a uma mquina na rede interna. Para vencer essa restrio, no modo passivo a conexo iniciada pelo cliente e o servidor nunca inicia uma conexo TCP. Nesse modo, o cliente envia um comando ao servidor e recebe como resposta o endereo IP e porta de escuta, para ento iniciar a conexo para o servidor.

Figura 61 Diferenas entre modo Ativo e modo Passivo no FTP

Copyright 2011, ESAB Escola Superior Aberta do Brasil

134

Acesse atravs do programa explorador de pastas do seu sistema operacional (ex: Windows Explorer) ou ento de um navegador web (Firefox, Internet Explorer, etc) o FTP pblico da IETF disponvel em ftp://ftp.ietf.org/. Se voc utilizar atravs do explorador de pastas, poder reparar que a visualizao das pastas e arquivos d impresso que os mesmos esto no seu computador (exceto pela velocidade de consulta e transferncia). Como era de se esperar, voc pode consultar e baixar arquivos, porm no pode excluir e nem inserir arquivos. Dentre outras pastas disponibilizadas nesse FTP, existem os drafts (rascunhos) e os RFCs citados neste Mdulo. (rascunhos) e os RFCs citados neste Mdulo.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

135

NIDADE

27

Objetivo: Entender a importncia do protocolo para transferncia de arquivos FTP e suas principais caractersticas

FTP (Continuao) Tipos de Dados Transferidos e Modos de Transferncia Na transferncia realizada pelo FTP, quatro tipos de dados podem ser utilizados: ASCII: tipo default. Deve ser aceito por todas as implementaes que se baseiam no protocolo FTP. utilizado para a transferncia de texto, sendo inapropriado para arquivos que contenham dados que no sejam desse tipo. EBCDIC: destinado para transferncia eficiente de texto entre hosts utilizando o conjunto de caracteres EBCIDIC. Esse tipo semelhante ao tipo ASCII. Binrio (ou tipo Imagem): destinado transferncia de dados binrios sem nenhuma converso. Os arquivos so enviados byte por byte e a mquina destinatria armazena esse fluxo na medida em que os recebe. A RFC 959 recomenda que todas as implementaes FTP aceitem esse tipo. Local: destinado para transferncia de dados em um modo proprietrio entre computadores com configuraes idnticas. Como pode ser observado, o FTP fornece poucas opes de representaes de dados. Transformaes desejadas diferentes das oferecidas devem ser realizadas diretamente pelo cliente. Em relao ao modo de transferncia, existem trs possibilidades:

Copyright 2011, ESAB Escola Superior Aberta do Brasil

136

Fluxo: neste modo os dados so enviados em um fluxo contnuo de forma que o FTP no realiza nenhum tipo de processamento, que completamente realizado pelo TCP.

Blocos: Antes de passar os dados para o TCP, o FTP os divide em vrios blocos: bloco cabealho, contagem de bytes e campo de dados.

Compresso: os dados so comprimidos pela utilizao de algoritmos simples.

Comandos e Respostas FTP Os comandos do cliente para o servidor, e as respectivas respostas enviadas pelo servidor so enviados atravs da conexo de controle em modo texto (ASCII). Os comandos so compostos por caracteres ASCII sendo que alguns possuem argumentos opcionais. Os comandos mais comuns so descritos a seguir (para uma lista completa consulte a RFC 959): USER username: envia a identificao do usurio (parmetro username) ao servidor. PASS password: envia a senha do usurio para o servidor. RETR filename: obtm um arquivo do diretrio atual do servidor. STOR filename: insere um arquivo no diretrio atual do hospedeiro remoto. LIST: solicita ao servidor a lista com todos os arquivos existentes no atual diretrio remoto. A lista dos arquivos enviada atravs de uma nova conexo de dados (e no pela conexo de controle). A comunicao entre o cliente e servidor semelhante a um dilogo. Cada comando enviado seguido de uma resposta enviada pelo servidor. As respostas so nmeros de trs dgitos que podem possuir uma mensagem opcional aps o nmero. Os trs dgitos so utilizados para interpretao das aplicaes, enquanto o texto para compreenso do usurio. O texto da mensagem opcional pode variar de acordo com a aplicao servidora, mas independentemente, o significado dos 3 dgitos so padronizados. Se voc reparar, a estrutura das respostas se assemelha mensagem de resposta HTTP

Copyright 2011, ESAB Escola Superior Aberta do Brasil

137

(apresentado na Unidade 6). Esse fato no uma coincidncia, os criadores do HTTP incluram intencionalmente essa similaridade. A seguir, algumas respostas tpicas so apresentadas como critrio de exemplificao (lista completa disponvel na RFC 959): 200 (ou 200 ok): indica que o ltimo comando foi executado com sucesso. 220 Service ready for new user (Servio pronto para novo usurio) 331 Username Ok, password required (Nome do usurio ok, senha requisitada). 425 Cant open data connection (No possvel abrir a conexo de dados). 452 Insufficient storage space in system (Espao de armazenamento insuficiente no sistema). Segurana Assim como ocorre com o Telnet, no FTP o trfego na rede no encriptado, permitindo que as informaes transmitidas (login, senha e dados) possam ser facilmente visualizadas em caso de captura de pacotes (sniffing) na rede. Na verdade, essa fraqueza de segurana comum em vrios protocolos da internet, como por exemplo, SMTP, POP e IMAP, que foram especificados antes da criao de mecanismos de encriptao como o TLS ou SSL. Uma alternativa mais segura a utilizao de protocolos como FTPS e SFTP, apresentados na Unidade 30. Algumas falhas de segurana do FTP e solues para minimizar os riscos so apresentadas no RFC 2577

(http://tools.ietf.org/html/rfc2577), a saber: ataques de fora bruta, captura de pacotes (sniffing), roubo de portas, ataques bounce, descoberta de logins e senhas, roubo de porta e ataques spoof.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

138

Caso voc precise compartilhar um arquivo grande que no possa ser enviado por e-mail e no possua acesso ou possibilidade de montar um servidor FTP, voc pode utilizar alguns servios proprietrios com verses gratuitas na Internet. Dentre eles, citaremos o DropBox (www.dropbox.com/) e o MegaUpload (www.megaupload.com/). A verso gratuita do DropBox oferece 2GB de armazenamento online, permitindo compartilhar arquivos entre computadores com Linux, Mac e Windows. Voc pode utilizar a ferramenta online ou baixar um programa para o seu computador, que compartilhar uma pasta criada e permitir que voc arraste/crie diretrios e arquivos. Caso esses arquivos sejam alterados, eles so atualizados no DropBox automaticamente. J a associao grtis do MegaUpload permite armazenamento online de 200 GB.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

139

NIDADE

28

Objetivo: Apresentar, utilizando o Wireshark, as mensagens trocadas entre cliente e servidor FTP, mostrando a falta de confidencialidade quando no se utiliza a camada SSL/TLS (FTPS). Analisador de Pacotes de Rede FTP Introduo O protocolo FTP estabelece dois tipos de conexo: Conexo de Controle e Conexo de Dados. Para estas conexes o servidor FTP utiliza a porta padro TCP 21 para conexo de controle, trocando com o cliente as informaes de autenticao, usurio e senha, de requisio de transferncia de arquivos, entre outras. E a porta TCP 20 destinada as conexes de dados (no modo ativo), para recebimento e envio de arquivos. Porm no FTP no h nenhum mecanismo de encriptao, tornando a autenticao no servidor vulnervel a um programa de captura de trfego na rede, como demonstraremos aqui utilizando o Wireshark. A demonstrao consistir em conectar-se a um servidor ftp e transferir um arquivo texto para ser armazenado por este servidor. A descrio dos parmetros do servio: Rede Local: 10.255.255.0/24 Servidor FTP: 10.255.255.101 Mquina cliente: 10.255.255.100 Usurio FTP: usuario Senha: esab123 Nome do arquivo transferido: esab.txt Contedo do arquivo: esab O Wireshark ser utilizado na mquina cliente FTP por quesitos de praticidade.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

140

Na Figura 62 mostrado um terminal cliente FTP apresentando todas as informaes e comandos utilizados para transferncia do arquivo esab.txt, desde a autenticao. Nele podemos ver a solicitao do cliente para a conexo com o servidor, open 10.255.255.101, e a de requisio de upload de arquivo, put esab.txt ( o comando put foi criado por muitos aplicativos de linha de comando FTP para implementar o comando STOR especificado no RFC 959 do FTP) . Tambm podemos ver a confirmao de concluso de transferncia, mensagem 226 Transfer complete e de requisio de termino de conexo, exit. Utilizamos um terminal cliente ao invs de uma interface grfica para demonstrar alguns comandos e mensagens de resposta FTP.

Figura 62 - Terminal cliente FTP

Agora verificaremos como so os pacotes trocados entre o servidor e cliente FTP para a execuo dos comandos mostrados na Figura 62. Os primeiros pacotes capturados pelo Wireshark referem-se abertura da conexo (three-way handshake do TCP) com o servidor FTP e a autenticao neste. Eles so apresentados na Figura 63Erro! Fonte de referncia no encontrada.. No pacote de nmero 4 podemos ver a mensagem de cdigo 220, que confirma a conexo com o servidor. Repare que o texto mostrado no terminal cliente transferido neste pacote. Outra informao importante mostrada na parte de decodificao de
141

Copyright 2011, ESAB Escola Superior Aberta do Brasil

pacotes do Wireshark o uso do protocolo TCP, com porta de origem (Src Port), 21. O cliente utiliza uma porta aleatria.

Figura 63 - Pacotes de conexo e autenticao no servidor FTP

As informaes enviadas pelo cliente para autenticao no servidor so apresentadas nos pacotes 6 e 10, na Figura 63. Note que os dados ficam totalmente aparentes e fceis de serem visualizados. No pacote 6 o cliente envia a informao Request: USER usuario e no 10 fica clara a senha utilizada para este usurio, Request: PASS esab123. De posse destas informaes capturadas na rede possvel baixar e enviar arquivos para o servidor. Agora apresentaremos os pacotes da conexo de dados FTP na Figura 64. Note que no pacote nmero 21 o cliente, IP 10.255.255.100, solicita o envio do arquivo esab.txt com a mensagem Request: STOR esab.txt. Conforme vimos na Unidade do FTP, esse comando passado atravs da conexo de controle. Em seguida, nos pacotes 22, 23 e 24, mostrado o estabelecimento de uma nova conexo de dados pelo servidor FTP. Conforme estudamos, podemos perceber que o modo ativo est sendo utilizado neste exemplo, visto que o servidor inicia a conexo para o cliente aps a solicitao de transferncia do arquivo. A string ftp-data > 52068 [SYN] indica que o pacote 22 o
Copyright 2011, ESAB Escola Superior Aberta do Brasil 142

primeiro do three-way handshake do TCP, e que a conexo ser feita atravs da porta ftpdata (20) no servidor para a porta 52068 no cliente. O pacote 25 apresenta a utilizao do modo de transferncia binria.

Figura 64 - Pacotes referentes transferncia do arquivo esab.txt

Outro pacote que demonstra a exposio de dados do protocolo FTP o de nmero 26, apresentado na Figura 64. possvel reparar que os dados transferidos somam 5 bytes, e no campo de decodificao deste pacote no Wireshark vemos que o contedo do arquivo esab.txt, mostrado: FTP Data: esab\n. Desta forma, fica clara a no confidencialidade do protocolo FTP podendo acarretar vulnerabilidade de acesso e privacidade no servio. Isto pode ser corrigido utilizando a camada SSL/TLS acima do protocolo de transporte TCP, caracterizando um novo servio, o FTPS. Nele os pacotes sero encriptados da mesma forma que no protocolo HTTPS, apresentado na Unidade 8.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

143

NIDADE

29

Objetivo: Conhecer o Protocolo TFTP em conjunto com suas vantagens e desvantagens

TFTP (Trivial File Transfer Protocol) O TFTP um protocolo de transferncia de arquivos simples, por isso no seu nome possui a letra T de Trivial. Sua primeira definio foi apresentada em 1980, 9 anos aps a apresentao da primeira definio do FTP. A reviso 2 est especificada no RFC 1350 (http://tools.ietf.org/html/rfc1350). O TFTP foi projetado para ser pequeno e fcil de implementar e por isso no possui a maioria das funcionalidades do FTP. O TFTP apenas l e escreve arquivos (ou mensagens) de/para servidores remotos. No permite listar diretrios e no fornece suporte para autenticao de usurio (at o presente momento). Alm de no ter autenticao via login e senha, tambm no fornece suporte encriptao das mensagens (assim como o FTP). Portanto, devido sua falta de segurana perigoso utiliz-lo em redes abertas (como a Internet), e esse protocolo geralmente utilizado apenas em redes locais privadas. Mas se o TFTP possui menos funcionalidades do que o FTP, no recomendado que seja usado em redes abertas, no tem autenticao de usurio e no possui mecanismos de segurana, para que seria utilizado? Bem, devido a sua simplicidade, o TFTP pode ser implementado utilizando uma quantidade pequena de memria, sendo til para dar boot em equipamentos que no possuem dispositivos de armazenamento, como por exemplo, roteadores. Tambm utilizado em alguns estgios iniciais de instalao de sistemas via rede (como por exemplo, Red Hat Kickstart e Servio de Instalao Remota do Windows NT). O TFTP tipicamente utiliza o UDP (porta 69), mas pode ser implementado para utilizar outros protocolos de transporte.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

144

Funcionamento da Transferncia de Arquivo A transferncia TFTP comea com uma solicitao para ler ou escrever um arquivo em outro equipamento. Nessa mesma solicitao realizada uma requisio para conexo, que caso aprovada pelo servidor, aberta para a transferncia. A solicitao para transferncia de dados iniciada na porta 69, mas as portas para transferncia dos dados em si, so definidas pelo remetente e destinatrio durante a inicializao da conexo. Os arquivos so enviados em blocos fixos de 512 bytes, sendo que, apenas o pacote que indica o trmino da transmisso menor do que 512. Cada pacote de dados deve ter o recebimento confirmado por um pacote de confirmao (pacote de acknowledgment ACK) antes do envio do prximo pacote. Cada pacote de dados possui um nmero do bloco para identificao, que comea do nmero 1 e incrementado consecutivamente. Em geral, o pacote de confirmao contm o nmero do bloco do pacote de dados cujo recebimento est sendo confirmado. Em relao primeira solicitao, caso ela seja para escrita e o servidor aceite, a resposta ser um pacote de confirmao. Caso seja para leitura, a resposta ser o primeiro pacote de dados. Se um pacote se perder na rede, aps o tempo de espera necessrio, o destinatrio desse pacote vai retransmitir o seu ltimo pacote (seja ele um pacote de dados ou de confirmao), indicando ao remetente que ele deve retransmitir o seu ltimo pacote. Com esse mecanismo, o remetente precisa manter apenas o seu ltimo pacote para caso seja necessria uma retransmisso, visto que o pacote de confirmao garante que os pacotes anteriores foram recebidos. Note que as duas mquinas que participam da transferncia podem ser consideradas destinatrias e remetentes, visto que uma envia os dados e recebe confirmao, e a outra envia confirmao e recebe os dados. A forma de transferncia de enviar-esperar confirmao faz com que apenas um pacote novo (seja ele de dados ou confirmao) esteja em trnsito por vez, ocasionando uma baixa vazo e alta latncia. Algumas tcnicas podem ser adicionadas para melhorar consideravelmente esses pontos, como por exemplo, a janela de 8 pacotes introduzida no Windows 2008. A Figura 65 apresenta um exemplo de transferncia de arquivos com TFTP.
Copyright 2011, ESAB Escola Superior Aberta do Brasil 145

Figura 65 Exemplo de Troca de Pacotes TFTP

A ocorrncia de um erro sinalizada por um pacote de erro, que no seguido por um pacote de confirmao e nem gera uma retransmisso. Os erros so causados por trs tipos de eventos: Impossibilidade de satisfazer a requisio (ex: arquivo no encontrado). Recebimento de um arquivo que no pode ser entendido (ex: pacote incorretamente formado). Perda de acesso ao recurso necessrio (ex: disco cheio).

Copyright 2011, ESAB Escola Superior Aberta do Brasil

146

A maioria dos erros ocasiona a finalizao da conexo. Apenas quando a porta de origem de um pacote recebido est incorreta, um pacote de erro enviado ao remetente, e a conexo no finalizada. Conforme citado anteriormente, o TFTP oferece cinco tipos de pacotes: 1. Read request (RRQ) Requisio de Leitura 2. Write request (WRQ) Requisio de Escrita 3. Acknowledgment (ACK) Confirmao 4. Data (DATA) Dados 5. Error (ERROR) - Erro O TFTP pode transferir os dados em trs formatos: NetASCII Correspondente ao tipo ASCII do FTP Octeto Correspondente ao tipo Binrio do FTP Mail Envio de caracteres NetASCCI ao invs de enviar o arquivo. Esse modo se tornou obsoleto na RFC 1350. Modos adicionais podem ser definidos entre as duas mquinas conectadas para a transferncia.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

147

NIDADE

30

Objetivo: Conhecer alternativas para transferir arquivos de forma segura.

Alternativas Seguras para realizar a Transferncia de Arquivos Nesta unidade, conheceremos formas para prover segurana na transferncia de arquivos, visualizando as limitaes de cada alternativa. Sero apresentados: SCP SFTP FTPS FTP sobre SSH

Perceberemos que o FTPS e FTP so formas de uso do protocolo FTP. J o SCP e SFTP utilizam servios SSH e no possuem relao com o FTP. SCP (Secure Copy) O SCP (Secure Copy) um meio para transferncia de arquivos de forma segura entre dois computadores. O SCP baseado no RCP, um comando Unix para realizar cpia remota. O RCP inseguro para rodar em uma rede visto que as informaes enviadas no so encriptadas, e por esse motivo tem sido amplamente substitudo pelo SCP. O SCP cria um tnel (Tunnelling) atravs do protocolo SSH para dar suporte encriptao e autenticao. Algumas vezes encontramos na literatura e pginas da internet o SCP sendo tratado como protocolo, porm ele pode no ser considerado um protocolo visto que apenas uma combinao do comando RCP com o protocolo SSH, ou seja, enquanto o RCP transfere o arquivo o SSH realiza a autenticao e encriptao. Dessa forma, o SCP protege a autenticidade e confidencialidade dos dados em trnsito, dificultando a extrao de informaes dos pacotes de dados em caso de captura atravs de sniffers .

Copyright 2011, ESAB Escola Superior Aberta do Brasil

148

No SCP, para realizar um upload a aplicao cliente informa ao servidor os arquivos e opcionalmente atributos bsicos como permisses e timestamps (data do arquivo no servidor). Para realizar o download de um diretrio, o servidor passa pra o cliente seus subdiretrios e arquivos. Vale ressaltar que mesmo a conexo sendo segura, sempre vai existir risco de segurana caso voc se conecte a um servidor malicioso. O programa SCP mais utilizado a linha de comando scp que acompanha a maioria das implementaes SSH. Sua linha de comando como a linha de comando rcp, porm de forma segura. Algumas implementaes do SSH oferecem o programa scp2, que utiliza o SFTP (apresentado a seguir) ao invs do SCP, mas mantm a mesma linha de comando. Como o protocolo SCP implementa apenas transferncia de arquivos e nenhum outro comando, raro encontrar Interfaces Grficas (GUI Graphical User Interface) visto que a implementao requer funcionalidades adicionais, como no mnimo a listagem de diretrios. Alguns programas, como o WinSCP, acabam utilizando o protocolo SFTP para fornecer suporte interfaces grficas. Mesmo quando rodam no modo SCP tipicamente no so clientes SCP puros uma vez que precisam utilizar outros meios para implementar funcionalidades adicionais. Essa questo traz a tona problemas de dependncia de plataforma. O SCP tem sido substitudo pelo SFTP cujo protocolo e respectivo aplicativo oferecem ferramentas mais abrangentes para gerenciar transferncia de arquivos. SFTP (SSH File Transfer Protocol) O SFTP (SSH File Transfer Protocol) uma alternativa segura ao FTP. O SFTP Foi projetado pela IETF (Internet Engineering Task Force) como uma extenso do protocolo SSH-2 para fornecer transferncia segura de arquivos. Entretanto, pode ser utilizado com outros protocolos que disponibilizam um canal seguro. importante no confundir SFTP com FTP sobre SSH (apresentado mais adiante nesta unidade), que so mecanismos distintos. O Internet Draft (rascunho) do IETF declara que mesmo sendo descrito no contexto do SSH-2, esse protocolo geral e independente do restante das funcionalidades do protocolo SSH-2, de forma que possa ser utilizado em diferentes aplicaes, como por exemplo, transferncia de informaes de gerenciamento em aplicaes VPN.
149

Copyright 2011, ESAB Escola Superior Aberta do Brasil

Comparado ao SCP que apenas permite a transferncia de arquivos, o protocolo SFTP disponibiliza uma quantidade de operaes em arquivos remotos A aplicao SFTP fornece a mais do que o SCP: continuao de uma transferncia interrompida, listagem de diretrios e remoo remota de arquivos. Essas caractersticas tornam a implementao de uma interface grfica do SFTP relativamente simples se comparada ao SCP. Enquanto o SCP mais implementado para plataformas Unix, os servidores SFTP so comumente disponibilizados na maioria das plataformas. O protocolo SFTP, por si s, no fornece autenticao e segurana, e conta com o protocolo subjacente para se encarregar dessas questes. Assim como o SCP, tambm transfere os atributos bsicos do arquivo, como data/timestamp. Diferentemente do SCP, uma transferncia no SFTP pode ser cancelada sem terminar a sesso. O aplicativo cliente SFTP pode ser um programa de linha de comando ou interface grfica interativa semelhante aos clientes tradicionais FTP. A utilizao de um cliente SFTP com interface grfica simplifica a transferncia de arquivos visto que permite realiz-la apenas arrastando e soltando os arquivos entre as janelas. O SFTP possui um conjunto de comandos similar ao FTP. Podemos deduzir que essa foi uma estratgia boa e conveniente visto que muitos usurios j estavam familiarizados com FTP. Ao contrrio do FTP padro, SFTP encripta os comandos e dados fornecendo segurana para transferncia de senhas e informaes confidenciais. Mesmo possuindo as caractersticas de transferir arquivos e possuir um conjunto de comandos similares, os protocolos SFTP e FTP no se relacionam, ou seja, voc no consegue utilizar um cliente SFTP para se conectar a um servidor FTP e vice-versa. A ltima verso produzida pelo grupo do IETF responsvel pelo SFTP de 2006 (http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13). O SFTP no se tornou um padro IETF e seus drafts foram paralisados porque alguns membros do comit visualizaram o SFTP como um protocolo de sistema de arquivos e no um protocolo de transferncia de arquivos. Mesmo no sendo um padro IETF, o SFTP ainda amplamente utilizado. FTPS (FTP Seguro ou FTP-SSL) O FTPS (FTP Seguro ou FTP-SSL) uma extenso do FTP que fornece suporte aos protocolos TLS(Transport Layer Security) e SSL(Secure Sockets Layer).
Copyright 2011, ESAB Escola Superior Aberta do Brasil 150

Conforme explicado anteriormente, o FTP utiliza uma porta dinmica para cada conexo de dados, sendo que essa conexo criada para cada transferncia de arquivo. Por esse motivo, muitos firewalls foram projetados para bisbilhotar as mensagens de controle do FTP para identificar as conexes de dados que devem ser liberadas. Porm, se a conexo de controle for encriptada utilizando TLS/SSL, o firewall no poder definir e liberar a porta TCP da conexo de dados. Portanto, em muitas redes com a proteo de um firewall o servio FTP funcionar enquanto ao FTPS no. Uma forma de viabilizar a utilizao de um servio FTPS atravs de um firewall determinando um intervalo limitado de portas e configurando o firewall para abrir essas portas. FTP sobre SSH Utilizar FTP sobre SSH consiste em tunelar (tunneling) um FTP normal atravs de uma conexo SSH. A caracterstica especificada no protocolo FTP de criar mltiplas conexes TCP (as conexes de dados) dificulta tunelar o FTP atravs do SSH. Na maioria das aplicaes clientes SSH, o tnel ser criado apenas para a conexo de controle, j que a sua porta conhecida (porta 21). Na transferncia de arquivo, uma nova conexo de dados ser criada por fora do tnel e, portanto, no ser encriptada. Se o objetivo for apenas proteger o username e senha, essa abordagem funcionar visto que esses dados so passados atravs da conexo de controle que estar segura pelo SSH. Porm, se os arquivos tambm forem confidenciais, apenas algumas aplicaes clientes SSH implementadas com especificidades para o protocolo FTP, serviro para o propsito. Essas aplicaes devem monitorar e re-escrever o controle das conexes de dados de forma a cri-las dentro do tnel SSH.

Antes de iniciar sua Avaliao Online, fundamental que voc acesse sua SALA DE AULA e faa a Atividade 3 no link ATIVIDADES.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

151

Atividades dissertativas Acesse sua sala de aula, no link Atividade Dissertativa e faa o exerccio proposto. Bons Estudos!

Copyright 2011, ESAB Escola Superior Aberta do Brasil

152

LOSSRIO

Caso haja dvidas sobre algum termo ou sigla utilizada, consulte o link Glossrio em sua sala de aula, no site da ESAB.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

153

IBLIOGRAFIA

Caso haja dvidas sobre algum termo ou sigla utilizada, consulte o link Bibliografia em sua sala de aula, no site da ESAB.

Copyright 2011, ESAB Escola Superior Aberta do Brasil

154

You might also like