:. Manual de uma VPN com o protocolo PPTP em Linux

 Por Eduardo Assis /(Tucs)/ Americana São Paulo
 Antônio Ricardo Leocadio Gomes /(Leocadio)/ Belo Horizonte

 28/01/2004


Neste artigo explicaremos como montar uma VPN baseado no Conectiva Linux sobre o protocolo PPTP, possibilitando aos usuários de Linux adquirirem conceitos para que consigam montar a VPN com o protocolo PPTP de forma rápido e fácil.

A grande vantagem desse tutorial e que ambos os serviços, ou seja, servidor e client pptp, rodam sob Linux. Geralmente os artigos sobre o assunto abordam servidor Linux e cliente Windows, no qual também daremos uma canja.

Configurando o Servidor

Primeiramente vamos baixar e instalar o pacote PPTPD que será o nosso servidor VPN. Faça o download do seguinte endereço:

ftp://ftp.rpmfind.net/linux/PLD/current/dists/ra/PLD/i386/PLD/RPMS/pptpd-1.1.3-1.i386.rpm

Se preferir faça o download da página do autor: http://www.poptop.org.br

Depois de baixar o pacote PPTPD devemos instalar com o comando: (utilize o usuário root)
# rpm -Uvh pptpd-1.1.3-1.i386.rpm

Após a instalação do pacote PPTPD devemos editar o arquivo pptpd.conf que esta dentro do /etc.
# mcedit /etc/pptpd.conf

Não alteraremos nada neste arquivo, simplesmente descomente as seguintes linhas (retire o # do inicio de cada linha):

speed 115200

debug
option /etc/ppp/options.pptp
localip 10.0.0.1-200
remoteip 10.0.0.210-230

Neste arquivo a opção “speed” indica a velocidade da conexão. A opção “debug” server para que as ações sejam debugadas e enviadas para o arquivo de log (/var/log/messages). A opção “option” é onde estará a configuração das ações do pptp. A opção “localip” será o ip que será atribuído ao seu servidor. Se o ip for atribuído como na opção acima na primeira conexão o ip do servidor será 10.0.0.1 na segunda conexão será atribuído o ip 10.0.0.2. Uma forma mais prática e deixar o servidor com um único ip, para isso basta deixar a opção localip com o ip 10.0.0.1 somente. A opção “remoteip” será o ip que será atribuído a conexão. A primeira conexão irá receber o ip 10.0.0.210, a segunda conexão 10.0.0.211 e assim por diante. A opção "remoteip“ não será necessária se você atribuir um ip para cada usuário dentro do arquivo /etc/ppp/pap-secrets e /etc/ppp/chap-secrets.

Pronto, vamos ao próximo arquivo:
# mcedit /etc/ppp/options.pptp

Apague tudo o que estiver neste arquivo e adicione as seguintes linhas:

debug
auth
proxyarp

A opção “debug” server para que as ações sejam debugadas e enviadas para o arquivo de log (/var/log/messages). A opção “auth” server para que o force o login do usuário, caso a opção seja colocada como “noauth” não será necessário um usuário para login. Ainda é possível acrescentar as opções defaultroute e persist, com isso o default gateway da sua rede para a ser o servidor VPN.

Cadastramento de usuários:
(utilize o usuário root)

# mcedit /etc/ppp/chap-secrets

o arquivo ficará da seguinte maneira: # Secrets for authentication using PAP

# client        server  secret                  IP addresses

usuario1         *       senha                  10.0.0.220

usuario2         *       senha                  10.0.0.221


Repita o mesmo conteúdo do arquivo chap-secrets no arquivo pap-secrets:
# mcedit /etc/ppp/pap-secrets

# Secrets for authentication using CHAP

# client        server          secret                  IP addresses

usuario1        *               senha                  10.0.0.220

usuario2        *               senha                  10.0.0.221


A configuração do nosso servidor de VPN esta pronta. Teremos agora que carregar o módulo da VPN no Linux.

Em algumas distribuições não é preciso compilar o kernel, pois o mesmo já vem com suporte nativo tanto para PPTPD quanto para IPSEC.

Carregando o modulo do kernel
# modprobe ppp

Para consulta se o módulo foi carregado:
# lsmod

Iniciando o servidor VPN (PPTPD)

No Shell, simplesmente digite:
# pptpd

Nossa máquina estará pronta para uma conexão VPN. Não importando seu tipo de conexão banda larga ou acesso discado.

Encerando o servidor VPN (PPTPD)

No Shell, simplesmente digite:
# killall –HUP pptpd

Configurando um cliente VPN no Linux

Primeiramente baixe o pacote pptpclient (pptp-linux-1.4.0-1.i386.rpm).

Faça o download do seguinte endereço:

http://prdownloads.sourceforge.net/pptpclient/pptp-linux-1.4.0-1.i386.rpm

Não é necessário, mas ajudaria muito se você também desse uma atualizada no seu PPP. O pacote pptp-php-gtk é um cliente gráfico para a configuração do pptp e não iremos abordá-lo nesse artigo. Caso deseje ver a configuração gráfica, visite o endereço:

http://pptpclient.sourceforge.net/howto-redhat-80.phtml

Feito o download do pacote pptp-linux, instale-o em seu sistema com o seguinte comando: (utilize o usuário root)
# rpm -ivh pptp-linux-1.4.0-1.i386.rpm

Iremos editar o arquivo /etc/ppp/options:
# mcedit /etc/ppp/options

Não alteraremos nada, simplesmente adicione essas linhas no final do arquivo, caso já esteja com algumas das opções habilitadas, não é necessário repetir.

noauth
noipdefault
debug
name "login do usuário VPN que irá fazer a conexão"

Iremos editar o arquivo pap-secrets, onde são guardados os usuários e senhas usadas nas conexões ppp:

# mcedit /etc/ppp/pap-secrets

Não alteraremos nada, simplesmente adicione essas linhas no final de seu arquivo para o usuário VPN que irá conectar:

<login do usuário VPN >  *  <a senha do usuário VPN >  *


Exemplo:
leocadio            *             minhasenha           *

OBS: Não utilize a tecla de espaço e sim a tecla TAB como separador de campos.

As colunas “client” e “secret” (usuário e senha) são as únicas que realmente são usadas nesse arquivo, as demais devem apenas conter o símbolo *.

Habilitando o módulo GRE

O PPTPd é um projeto de VPNs baseado no protocolo GRE e na tecnologia PPTP. Seu funcionamento é semelhante ao de uma conexão dial-up, ou seja, ele "disca" para um host conhecido, troca chaves através do protocolo GRE e conecta uma interface virtual (ppp) por onde a comunicação dentro do túnel ocorre. Para estabelecer a conexão é necessária a autenticação de um usuário.

Você precisa habilitar o módulo do protocolo GRE utilizado no PPTP. Para isso, digite o seguinte comando:

# modprobe ip_gre

Esse módulo é necessário, caso contrario o seu computador irá abortar a conexão. Para que você não precise habilitar o módulo todas as vezes que for utilizar o pptp, acrescente esse comando na última linha do arquivo /etc/rc.local.

Conectando

Uma vez configurado o pptp, basta digitar:
# pptp

Todas as mensagens vão para o arquivo /var/log/messages.

Se as conexões derem erradas, verifique se o seu firewall está barrando a porta 1723. Nos meus testes desabilitei o firewall. Também verifique se o modulo ip_gre está habilitado com o comando:
# lsmod

Se aparecer outras mensagens, verifique no site do pptp:
http://pptpclient.sourceforge.net/howto-diagnosis.phtml

Pingando em qualquer máquina na rede remota

Para pingar em qualquer máquina dentro da rede remota, primeiramente habilite o forward no servidor de pptp com o seguinte comando:
# echo 1 > /proc/sys/net/ipv4/ip_forward

Agora na máquina cliente, acrescente a rota para a outra rede da seguinte forma:
# route add -net netmask < ppp da conexão>

Para descobrir qual é o PPP da conexão basta digitar o comando:
# ifconfig

Procure por ppp0 ou ppp1, veja qual deles é o ip dado pelo seu VPN server.

Exemplo do comando:
# route add -net 192.168.1.0 netmask 255.255.255.0 ppp1

Desconectando

Para acabar com a conexão, digite o seguinte comando:
# killall -HUP pptp

Configurando um cliente VPN no Windows

Windows XP e 2000

Criando uma conexão VPN

  1. Para abrir a pasta Conexões de rede, clique em Iniciar, em Painel de controle, em Conexões de rede e de Internet e, em seguida, clique duas vezes em Conexões de rede.

  2. Clique em Criar uma nova conexão e em Avançar. Clique em Conectar-me a uma rede em meu local de trabalho e em Avançar.

  3. Clique em Conexão VPN (rede virtual privada) e em Avançar. Digite um nome descritivo para a empresa e clique em Avançar.

  4. Como você já está conectado à Internet, clique em Não discar a conexão inicial.

  5. Digite o nome do host ou o endereço IP do computador ao qual você está se conectando e clique em Avançar.

  6. Clique em Avançar até aparecer o botão Concluir, para encerrar o processo de instalação.



Modificando a conexão

É necessário modificar a conexão VPN para que a mesma conecte em nosso Server VPN que esta em Linux. Essa modificação é necessária porque o método de autenticação do nosso servidor VPN é baseado em CHAP. Abra a conexão VPN criada.

  1. Clique com o botão direito sobre essa conexão e escolha Propriedades.

  2. Na guia Geral verifique se o ip ou host do servidor VPN esta correto.

  3. Na guia Segurança marque a opção Avançadas e clique no botão configurações. No campo Criptografia de dados, deixe com a seguinte opção:
Criptografia Opcional (conecte mesmo sem criptografia)
Marque Permitir esses protocolos e também deixe marcada as seguintes caixas:
    • Senha não criptografada (PAP)
    • Protocolo CHAP
    • Microsoft CHAP (MS-CHAP)

    • Permitir versões do MS-CHAP mais antigas para servidores com windows 95
    • Microsoft CHAP versão 2
Clique no botão OK

Windows 98

No painel de controle, vá a Adicionar / Remover Programas. Acesse a aba Instalação do Windows e entre em Comunicações:


Marque a opção “Rede particular virtual” e clique no botão OK.
O Windows carregará os arquivos necessários para a conexão (será necessário disco de instalação do Windows 98).
Após o computador ter reiniciado, iremos fazer a conexão com o servidor.

Entre em “Acesso à rede dial-up” e clique em “Fazer nova conexão”. Como foi instalado um novo tipo de conexão (Microsoft VPN Adapter), essa opção aparecerá agora na lista de dispositivos. Digite um nome para sua conexão de VPN (chamei de Conexão VPN) e clique no novo dispositivo. Clique em Avançar




Na tela seguinte, informe o numero de IP de seu Servidor de VPN que deve estar conectado na Internet.Clique em Avançar e Concluir.

Será criado a conexão “Conexão VPN”.

Para conectar ao Servidor, entre na “Conexão VPN” e surgira a tela:


Digite sua senha de administrador e clique em conectar. Está feito.


Para o windows 98 não é necessário fazer nenhuma modificação na conexão.




Copyright 2003 Carlos E. Morimoto, http://www.guiadohardware.net - Todos os direitos reservados