Você está na página 1de 6

The Cable Guy - janeiro de 2003 Página 1 de 6

The Cable Guy - janeiro de 2003


Análise de tráfego PPTP

Escrito por The Cable Guy

O protocolo PPTP é um protocolo de rede virtual privado amplamente usado, incluído no Windows 98, Windows
Millennium Edition, Windows 2000 e Windows XP. O PPTP é um mecanismo de encapsulamento para transferir
quadros de protocolo PPP em uma rede intermediária. Ao aproveitar os mecanismos de configuração de protocolo,
criptografia e autenticação do PPP, a conexão PPTP oferece uma maneira de criar conexões seguras em redes públicas,
como a Internet, para conexões de acesso remoto e VPN (Virtual Private Network) de roteador para roteador. O PPTP é
descrito no RFC 2637.

Visão geral do tráfego PPTP


O tráfego PPTP consiste no seguinte:

z Uma conexão de controle PPTP


Uma conexão lógica representando o encapsulamento PPTP que deve ser criado, mantido e encerrado através de
uma série de mensagens PPTP. O tráfego de conexão de controle PPTP usa uma porta TCP alocada
dinamicamente no cliente PPTP e a porta TCP 1723 reservada para IANA no servidor PPTP.

z Encapsulamento GRE para dados


Quando os dados são enviados através da conexão PPTP, os quadros PPP são encapsulados com um cabeçalho de
GRE (Generic Routing Encapsulation), que inclui informações que identificam o encapsulamento PPTP
específico para o pacote de dados.

Configuração de firewall para tráfego PPTP


Na configuração mais comum, um firewall é anexado à Internet e o servidor VPN (um servidor PPTP) é um recurso de
intranet anexado à rede perimetral. Isso é mostrado na figura a seguir.

O servidor VPN tem uma interface na rede perimetral e na intranet. Nessa configuração, o firewall deve ser configurado
com filtros de entrada e saída nas interfaces de rede perimetral e Internet, permitindo que o tráfego de manutenção de
encapsulamento PPTP e os dados encapsulados PPTP sejam transmitidos ao servidor VPN.

Filtros na interface da Internet

file://C:\Sndbox\batch07\cg0103_170684\CG0103.htm 28/05/03
The Cable Guy - janeiro de 2003 Página 2 de 6

Configure os seguintes filtros de pacote de entrada na interface da Internet do firewall para permitir os seguintes tipos de
tráfego:

z O endereço IP de destino da interface da rede perimetral do servidor VPN e a porta de destino TCP 1723
(0x6BB).
Esse filtro permite o tráfego de manutenção de encapsulamento PPTP ao servidor PPTP.

z O endereço IP de destino da interface da rede perimetral do servidor VPN e a identificação do protocolo IP 47


(0x2F).
Esse filtro permite dados encapsulados PPTP para o servidor PPTP.

z O endereço IP de destino da interface da rede perimetral do servidor VPN e a porta de origem TCP 1723
(0x6BB).
Esse filtro é necessário somente quando o servidor VPN está agindo como um roteador de chamada (um cliente
VPN) para conexões VPN de roteador a roteador. Esse filtro deve ser usado somente em conjunto com os filtros
de pacote IP recomendados na interface da rede perimetral do servidor VPN. Os filtros de pacote recomendados
na interface da rede perimetral do servidor VPN incluem os que permitem o tráfego TCP de entrada da porta
1723 e o tráfego de saída para a porta TCP 1723 para conexões TCP originadas pelo servidor VPN. Para obter
mais informações sobre os filtros recomendados na interface da rede perimetral, consulte VPNs and Firewalls
(site em inglês).

Configure os seguintes filtros de pacote de saída na interface da Internet do firewall para permitir os seguintes tipos de
tráfego:

z O endereço IP de origem da interface da rede perimetral do servidor VPN e a porta de origem TCP 1723
(0x6BB).
Esse filtro permite o tráfego de manutenção de encapsulamento PPTP do servidor VPN.

z O endereço IP de origem da interface da rede perimetral do servidor VPN e a identificação do protocolo IP 47


(0x2F).
Esse filtro permite os dados encapsulados PPTP do servidor VPN.

z O endereço IP de origem da interface da rede perimetral do servidor VPN e a porta de destino TCP de 1723
(0x6BB).
Esse filtro é necessário somente quando o servidor VPN está agindo como um roteador de chamada (um cliente
VPN) em uma conexão VPN de roteador a roteador. Esse filtro deve ser usado somente em conjunto com os
filtros de pacote IP recomendados na interface da rede perimetral do servidor VPN.

Filtros na interface da rede perimetral


Configure os seguintes filtros de entrada na interface da rede perimetral do firewall para permitir os seguintes tipos de
tráfego:

z O endereço IP de origem da interface da rede perimetral do servidor VPN e a porta de origem TCP 1723
(0x6BB).
Esse filtro permite o tráfego de manutenção de encapsulamento PPTP do servidor VPN.

z O endereço IP de origem da interface da rede perimetral do servidor VPN e a identificação do protocolo IP 47


(0x2F).
Esse filtro permite os dados encapsulados PPTP do servidor VPN.

z O endereço IP de origem da interface da rede perimetral do servidor VPN e a porta de destino TCP de 1723
(0x6BB).
Esse filtro é necessário somente quando o servidor VPN está agindo como um roteador de chamada (um cliente
VPN) em uma conexão VPN de roteador a roteador. Esse filtro deve ser usado somente em conjunto com os
filtros de pacote IP recomendados na interface da rede perimetral do servidor VPN.

Configure os seguintes filtros de pacote de saída na interface da rede perimetral do firewall para permitir os seguintes
tipos de tráfego:

z O endereço IP de destino da interface da rede perimetral do servidor VPN e a porta de destino TCP 1723

file://C:\Sndbox\batch07\cg0103_170684\CG0103.htm 28/05/03
The Cable Guy - janeiro de 2003 Página 3 de 6

(0x6BB).
Esse filtro permite o tráfego de manutenção de encapsulamento PPTP ao servidor PPTP.

z O endereço IP de destino da interface da rede perimetral do servidor VPN e a identificação do protocolo IP 47


(0x2F).
Esse filtro permite dados encapsulados PPTP para o servidor PPTP.

z O endereço IP de destino da interface da rede perimetral do servidor VPN e a porta de origem TCP 1723
(0x6BB).
Esse filtro é necessário somente quando o servidor VPN está agindo como um roteador de chamada (um cliente
VPN) em uma conexão VPN de roteador a roteador. Esse filtro deve ser usado somente em conjunto com os
filtros de pacote IP recomendados na interface da rede perimetral do servidor VPN.

Criação de conexão de controle PPTP


Uma conexão de controle PPTP é estabelecida com o seguinte processo:

1. Uma conexão TCP é estabelecida de uma porta TCP dinamicamente alocada no cliente PPTP para a porta TCP
1723 no servidor PPTP.
2. O cliente PPTP envia uma mensagem de solicitação de início de conexão e controle PPTP, usada para estabelecer
uma conexão de controle PPTP.
3. O servidor PPTP responde com uma mensagem de resposta de início de conexão e controle PPTP.
4. O cliente PPTP envia uma mensagem de solicitação de chamada de saída PPTP e seleciona uma identificação de
chamada para identificar o encapsulamento PPTP para dados enviados do cliente PPTP ao servidor PPTP. O
cliente PPTP usa a mensagem de solicitação de chamada de saída PPTP para solicitar um encapsulamento PPTP
(também conhecido como uma chamada) do servidor PPTP.
5. O servidor PPTP responde com uma mensagem de resposta de chamada de saída PPTP e seleciona sua própria
identificação de chamada para identificar o encapsulamento PPTP para dados enviados do servidor PPTP ao
cliente PPTP.
6. O cliente PPTP envia uma mensagem para configuração de informações de vínculo PPTP para indicar opções
negociadas por PPP.

O resultado final do processo de criação da conexão de controle PPTP é o seguinte:

z O servidor PPTP permitiu que um encapsulamento PPTP fosse criado.


z O cliente PPTP determinou a identificação de chamada a ser usada no cabeçalho GRE durante o envio de dados
encapsulados PPTP ao servidor PPTP.
z O servidor PPTP determinou a identificação de chamada a ser usada no cabeçalho GRE durante o envio de dados
encapsulados PPTP ao cliente PPTP.

Encapsulamento de dados PPTP


Após o estabelecimento da conexão de controle PPTP, os dados podem ser enviados entre o cliente PPTP e o servidor
PPTP. Os primeiros pacotes de dados enviados por uma conexão PPTP são usados para estabelecer uma conexão PPP.

Os pacotes de dados são primeiro criptografados e encapsulados com um cabeçalho PPP. O quadro PPP resultante é
então encapsulado com um cabeçalho GRE, que foi modificado para PPTP. O quadro PPP encapsulado por GRE é em
seguida encapsulado com um cabeçalho IP, que contém os endereços IP de origem e destino que correspondem às
extremidades do encapsulamento PPTP.

O cabeçalho GRE modificado usado para pacotes de dados PPTP tem a estrutura mostrada na figura a seguir. O
cabeçalho GRE original está definido em RFC 1701.

file://C:\Sndbox\batch07\cg0103_170684\CG0103.htm 28/05/03
The Cable Guy - janeiro de 2003 Página 4 de 6

Os campos no cabeçalho GRE modificado são os seguintes:

z Soma de verificação presente Um sinalizador de 1 bit que indica, quando definido como 1, que um campo Soma
de verificação está presente. Para PPTP, esse indicador está sempre configurado como 0.
z Roteamento presente Um sinalizador de 1 bit que indica, quando definido como 1, que um campo Roteamento
está presente. Para PPTP, esse indicador está sempre configurado como 0.
z Chave presente Um sinalizador de 1 bit que indica, quando definido como 1, que um campo Chave está
presente. Para PPTP, esse sinalizador está sempre configurado como 1. O campo Chave é a combinação dos
campos Tipo de Protocolo, Comprimento de Carga e ID da Chamada.
z Número de seqüência presente Um sinalizador de 1 bit que indica, quando definido como 1, que o campo
Número de Seqüência está presente.
z Roteamento de origem não flexível presente Um sinalizador de 1 bit que indica, quando configurado como 1,
que uma rota restrita de origens está presente. Para PPTP, esse indicador está sempre configurado como 0.
z Controle de recursividade Um campo de 3 bits usado para recursão. Para PPTP, esse campo está sempre
configurado como 0.
z Número de confirmação presente Um sinalizador de 1 bit que indica, quando definido como 1, que o campo
Número de Confirmação está presente.
z Sinalizadores Um campo de 4 bits usado para sinalizadores GRE. Para PPTP, esse campo está sempre
configurado como 0.
z Versão Um campo de 3 bits usado para indicar a versão do cabeçalho GRE. Para PPTP, esse campo está sempre
configurado como 1.
z Tipo de protocolo Um campo de 16 bits usado para armazenar o valor EtherType da carga GRE. Para PPTP,
esse campo está sempre configurado como 0x880B, o valor EtherType de um quadro PPP.
z Tamanho da carga Um campo de 16 bits usado para indicar o tamanho da carga GRE.
z Identificação de chamada Um campo de 16 bits usado para indicar o encapsulamento PPTP desse pacote. Para
uma conexão PPTP, há dois valores diferentes para o campo de identificação de chamada. Um valor é usado para
dados enviados pelo cliente PPTP e o outro é usado para dados enviados pelo servidor PPTP.
z Número de seqüência Um campo de 32 bits usado para indicar o número de seqüência desse pacote. Esse campo
está presente somente quando o sinalizador Número de Seqüência Presente está configurado como 1.
z Número de confirmação Um campo de 32 bits usado para indicar o número de seqüência mais alto para um
pacote encapsulado por GRE recebido para esse túnel. Esse campo está presente somente quando o sinalizador
Número de Confirmação está configurado como 1.

O PPTP usa os campos Número de Seqüência e Número de Confirmação para detectar pacotes de dados ignorados.

O uso de um mecanismo separado para encapsulamento de dados PPTP tem um efeito colateral interessante para
conversores de endereços de rede (NATs). Para obter mais informações sobre NATs, consulte o site em inglês Windows
2000 Network Address Translator (NAT) (artigo de março de 2001, Cable Guy). A maioria dos NATs pode converter
tráfego baseado em TCP para a manutenção de encapsulamento PPTP. Porém, pacotes de dados PPTP com o cabeçalho
GRE não são normalmente convertidos sem usar um mapeamento de endereço estático ou um editor PPTP NAT.

file://C:\Sndbox\batch07\cg0103_170684\CG0103.htm 28/05/03
The Cable Guy - janeiro de 2003 Página 5 de 6

Quando um servidor PPTP está atrás de um NAT, o NAT deve ser configurado manualmente com um mapeamento de
endereço estático que mapeia todo o tráfego para um endereço público específico para um endereço privado específico.
Neste caso, somente os endereços no cabeçalho IP são modificados.

Quando um cliente PPTP está atrás de um NAT, um editor PPTP NAT é normalmente usado. Um editor NAT é um
componente de software adicional no NAT que executa serviços de conversão além de endereços IP, portas TCP e portas
UDP. Embora seja uma tarefa simples para o editor PPTP NAT monitorar pacotes de entrada para cargas GRE e
converter os endereços IP no cabeçalho IP, podem existir vários clientes PPTP atrás do NAT. Nesse caso, o NAT não é
capaz de determinar para qual cliente privado o pacote de dados PPTP de entrada está destinado, pois o mesmo endereço
público está sendo usado para vários clientes privados. Para determinar o cliente privado ao qual o pacote de entrada está
destinado, o editor PPTP NAT usa o campo ID da Chamada no cabeçalho GRE. Porém, quando dois clientes PPTP
diferentes usam a mesma ID de Chamada, o NAT não é capaz de determinar para qual cliente privado o pacote está
destinado.

Para fornecer a multiplexação correta do tráfego encapsulado por GRE para clientes privados diferentes, o editor PTPP
NAT monitora a configuração de conexão de controle PPTP e converte o campo ID da Chamada do cliente PPTP nas
mensagens PPTP e os pacotes de dados encapsulados por GRE da mesma forma que converte portas de origem UDP ou
TCP. Ao converter o campo ID da Chamada do cliente PPTP, o NAT assegura que uma ID de chamada exclusiva seja
usada para cada encapsulamento PPTP e para cada cliente PPTP.

Manutenção de conexão de controle PPTP


Para manter a conexão de controle PPTP, o cliente PPTP envia uma mensagem de solicitação de eco PPTP a cada 60
segundos, independentemente de haver dados encapsulados por GRE sendo enviados entre o servidor e o cliente PPTP.
Após o recebimento da mensagem de solicitação de eco PPTP, o servidor PPTP envia uma mensagem de resposta de eco
PPTP. A mensagem de solicitação de eco PPTP contém um campo Identificador e seu valor é ecoado na mensagem de
resposta de eco PPTP para que o cliente PPTP possa fazer a correspondência entre uma solicitação de eco PPTP enviada
e sua resposta.

Encerramento de conexão de controle PPTP


Para encerrar a conexão PPTP, a conexão PPP, a conexão de controle PPTP e a conexão TCP devem ser encerradas.
Quando um cliente PPTP encerra uma conexão PPTP, os seguintes pacotes são trocados:

1. O cliente PPTP envia a mensagem para configurar informações de vínculo PPTP, que especifica os parâmetros
PPP do vínculo.
2. O cliente PPTP envia a mensagem de solicitação de encerramento do protocolo de controle do vínculo (LCP)
para encerrar a conexão PPP. O LCP é um protocolo no conjunto PPP que gerencia a manutenção e a
configuração da conexão PPP lógica.
3. O servidor PPTP envia a mensagem para configurar informações de vínculo PPTP, que especifica os parâmetros
PPP do vínculo.
4. O servidor PPTP envia a mensagem para confirmação do encerramento LCP em resposta à mensagem de
solicitação de encerramento LCP. A conexão PPP é então encerrada.
5. O cliente PPTP envia uma mensagem para limpar solicitação de chamada PPTP, que indica ao servidor PPTP que
a conexão de controle PPTP será encerrada.
6. O servidor PPTP responde com uma mensagem de notificação de chamada desconectada PPTP.
7. O cliente PPTP envia uma mensagem de solicitação de interrupção de conexão de controle PPTP para encerrar a
conexão de controle PPTP.
8. O servidor PPTP responde com uma mensagem de resposta de interrupção de conexão de controle PPTP.
9. A conexão TCP é então encerrada.

Se o servidor PPTP encerrar a conexão, o conjunto de mensagens trocadas será o mesmo, exceto que o cliente PPTP será
substituído pelo servidor PPTP (e vice-versa) no processo anterior.

Para obter mais informações


Para obter mais informações sobre PPTP no Windows, consulte o seguinte (alguns sites em inglês):

file://C:\Sndbox\batch07\cg0103_170684\CG0103.htm 28/05/03
The Cable Guy - janeiro de 2003 Página 6 de 6

z Site de Microsoft Virtual Private Networks


z Documentação do Windows 2000 Server (Networking/Virtual Private Networks)
z Windows 2000 Server Resource Kit
z Microsoft Product Support Services Knowledge Base

Para obter uma lista e informações adicionais sobre todas as colunas de The Cable Guy, clique aqui.

file://C:\Sndbox\batch07\cg0103_170684\CG0103.htm 28/05/03

Você também pode gostar