Base de Conhecimento

Como instalar uma VPN PPTP no Winconnection X - LINUX

Data de criação: 01/09/2017

Última alteração: 23/11/2018

PPTP é uma tecnologia de VPN padrão tanto nos computadores Windows como em celulares do tipo Android.

Como o LINUX tem suporte nativo a este tipo de VPN, este tutorial irá ensinar como instalar e configurar este tipo de VPN num servidor Winconnection X LINUX.

Instalando o software

O serviço PPTP depende do software PPP, que vem no repositório base do CentOS 7.

Contudo, o PPTP deve ser instalado a partir do repostório epel, que deve ser ativado antes (caso você nunca tenha feito isso no computador)

# yum install epel-release

Para instalar o PPTPD e o PPP, utilize o yum normalmente. Aceite a chave GPG do repositório caso o sistema pergunte.

# yum install pptp pptpd

Configurando o software PPTP

Antes de começar

Antes de inciar a configuração, tenha em mãos algumas informações sobre a sua rede, que serão colocadas nos arquivos.

Confira abaixo a lista do que deve ser providenciado antes do inicio da configuração:

  1. IP local do server:
    Este é o IP do servidor, pela rede interna, por exemplo 192.168.0.1. Neste documento vamos usar IPSERVIDOR para marcar o local esta informação
  2. Faixa de IPs a ser servida aos computadores remotos:
    Deve ser uma faixa da própria rede interna do cliente, por exemplo 192.168.0.2-100. Isso significa que os IPS de 2 a 100 estarão disponíveis para uso pela VPN. Iremos usar FAIXA_IPS no texto. Certifique-se que a faixa escolhida não é usada por nenhum computador na rede interna e que também não está disponível para alocação no DHCP do Winconnection.
  3. Arquivo com usuarios e senhas:
    Usando o protocolo PPTP desta forma, é necessário ter a dos usuários que vão conectar e suas senhas. Integrações com a base de dados do AD não serão tratadas aqui. No texto iremos marcar isso como USUARIO e SENHA.

Alterando os arquivos de configuração

Salve os arquivo /etc/pptpd.conf e /etc/ppp/options.pptpd para futura referência pois vamos criar arquivos novos com as configurações propostas aqui:

# cd /etc
# mv pptpd.conf pptpd.conf-dist
# cd ppp
# mv options.pptpd options.pptpd-dist

Segue a configuração recomendada para o arquivo /etc/pptpd.conf, que pode ser editado com vi ou qualquer editor de sua preferência

option /etc/ppp/options.pptpd
logwtmp
localip IPSERVIDOR
remoteip FAIXA_IPS

Agora as configurações recomendadas para o arquivo /etc/ppp/options.pptpd:

name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
proxyarp
lock
nobsdcomp
novj
novjccomp
nologfd

Por último, edite o arquivo /etc/ppp/chap-secrets, onde ficam guardadas as informações sobre os usuários e senhas. 

# Secrets for authentication using CHAP
# clientserversecretIP addresses
USUARIO pptpd SENHA *

Configurando o encaminhamento de pacotes em toda a rede

As vezes a VPN serve só para acessar o computador do firewall, mas normalmente o que se quer é acessar a rede interna toda (outros servidores, impressoras, etc)

Para acessar a rede, é necessário ativar o encaminhamento de pacotes no servidor LINUX. Se este passo não foi feito, apenas o próprio servidor estará acessível a quem se conectar na VPN.

Edite o arquivo /etc/systcl.conf e colque a segunte linha nele, e em seguida carregue as novas configurações.

# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
# sysctl --system

Iniciando o serviço PPTP no servidor LINUX

Iniciar o servidor pptpd e marcar para ser iniciado junto com o sistema

# systemctl start pptpd
# systemctl enable pptpd

Ajustando o Winconnection X para funcionar com o servidor PPTP

Para que o Winconnection não interfira no funcionamento do servidor PPTP, é necessário criar 3 regras de acesso no serviço de NAT Reverso(DMZ). Caso estas regras não sejam criadas, a VPN não irá funcionar quando o filtro de pacotes for ativado.

1. Conexão externa na porta TCP 1723:

    Permitir conexões de qualquer IP, Protocolo TCP, na porta 1723 a 1723 

pptp

pptp redir

2. Pacotes criptografados via protocolo GRE
    Permitir conexões de qualquer IP, protocolo PPTP (GRE), nas portas 0 a 0

pptp 2

3. Pacotes de acesso aos serviços da rede vindos dos hosts remotos.
    Permitir pacotes TCP, das portas 1 a 65535 dos IPs da rede remota (FAIXA_IPS) para qualquer lugar
    Permitir pacotes UDP, das portas 1 a 65535 dos IPs da rede remota (FAIXA_IPS) para qualquer lugar

pptp tcp

pptp udp

Top