Instalando uma VPN PPTP no Debian

Instalando uma VPN PPTP no Debian - por Carlos Mello Jr

O que é PPTP?

PPTP é a sigla para Point to Point Tunneling Protocol. É um protocolo desenvolvido por um consórcio encabeçado pela Microsoft para a implementação de VPNs. O objetivo, como o próprio nome diz, é fazer um túnel criptografado em cima do protocolo PPP. Se você tem uma rede Windows e quer montar um servidor PPTP, o Linux oferece total suporte.

O Windows já oferece um cliente PPTP nativamente, sem precisar instalar outros softwares. No Linux há o PPTP-Client.

A vantagem da VPN PPTP, é a facilidade com que pode ser configurada.

Instalando

Para habilitar a criptografia, é necessário instalar um patch no Kernel. Algumas distribuições já vem com o Kernel preparado para criptografia MPPE, mas não é o caso do Debian. Isso não é obrigatório para rodar o PPTP, mas recomendado, em se tratando de uma VPN, onde a segurança é o objetivo.

    Para fazer o download do pacote:
    apt-get install kernel-patch-mppe
    Para instalar, entre no diretório do fonte do kernel e rode o patch, que está em:
    /usr/src/kernel-patches/all/apply/mppe

Se tudo ocorreu bem, o fonte do Kernel já está com suporte a MPPE.
Será necessário agora recompilar o kernel.

Para entrar na tela de configuração do kernel, vá até o diretório usr/src/kernel-source / e digite:

    make menuconfig
    ative a opção:
    PPP MPPE compression (encryption) (PPP_MPPE).

Lembre-se de deixar o suporte a PPP como módulo.

    Para compilar o Kernel, rode o seguinte comando:
    make-kpkg --append-to-version "-mppe" --initrd --us --uc kernel_image

Você deverá prestar a atenção na seguinte pergunta sobre o initrd:

Warning: You are using the initrd option, that may not
work unless you have applied the initrd cramfs patch to
the kernel, or modified mkinitrd not to use cramfs by
default. The cramfs initrd patch, is included in the
Debian supplied kernel sources, but is not present in
pristine kernel sources.
By default, I assume you know what you are doing, and I
apologize for being so annoying. Should I abort[Ny]?

Muita atenção aqui, pois se cometer um erro, seu Linux poderá não reiniciar.
Aqui o suporte a initrd é ativado. Você deverá incluir no seu lilo o item:

    initrd=/initrd.img

Após fazer isso, rode o lilo, digitando:

    lilo
    Instale o novo kernel:
    dpkg -i kernel-image-2.6.8-mppe_10.00.Custom_i386.deb

Pronto. Suporte a MPPE compilado junto ao Kernel. Agora chega a hora de configurar o próprio PPTP.

Para instalar, digite:

    apt-get install pptpd

O arquivo /etc/pptpd.conf, deverá conter essas opções:

    option /etc/ppp/pptpd-options
    debug
    noipparam
    logwtmp

E o /etc/pptpd-options fica desse jeito....

    name pptpd
    nodefaultroute
    debug
    dump
    lock
    nobsdcomp
    auth
    require-mppe-128
    ms-dns endereço ip do servidor de DNS
    ms-wins endereço ip do servidor Wins
    noipx
    proxyarp

A linha require-mppe-128 é para exigir que a conexão seja criptografada. Isso quer dizer que o cliente deverá ter suporte a MPPE, caso contrário a conexão não será estabelecida.

No arquivo /etc/ppp/chap-secrets conterá os usuários e as senhas. Tudo é escrito como texto, então tenha cuidado com esse arquivo. Ele deve ter permissão 600 e ter como proprietário o usuário root.

    O formato do arquivo segue o seguinte modelo:
    usuário pptpd senha "*"

Feito tudo isso, basta executar o daemon do pptpd.

Alguns detalhes:

  • Lembre-se de liberar o tráfego entre as placas de rede (regra FORWARD) na porta 1723, senão não haverá comunicação.
  • O modulo ip_gre deve ser carregado. Para isso utilize o comando modconf.
  • Como dito anteriormente, o Windows tem suporte nativo ao PPTP. Basta somente criar uma conexão cliente de VPN e indicar o servidor Linux com o PPTPD.

vpn pptp

Boa tarde!!
Tentei seguir este tutorial da vpn com pptp, mas quando vou executar o comando /usr/src/kernel-patches/all/aplly/mppe ele me da o seguinte erro
Not in kernel top level directory. Exiting

O que pode ser?
Abraços