Este tópico descreve como configurar um servidor de Rede Privada Virtual (VPN) com o Protocolo de Tunelamento Ponto a Ponto (PPTP) e conectar clientes VPN a ele em uma instância do Elastic Compute Service (ECS) com CentOS 7.
Informações básicas
O PPTP é um protocolo de tunelamento de rede desenvolvido com base no Protocolo Ponto a Ponto (PPP), projetado para uso em VPNs. A conexão a uma VPN via PPTP envolve as seguintes etapas:
Discar para o servidor PPTP para estabelecer uma conexão PPP.
Negociar o PPTP para criar um túnel entre o cliente e o servidor.
Negociar o Protocolo de Controle de Rede (NCP) PPP para atribuir ao cliente um endereço IP do intervalo de endereços da VPN.
Após receber um endereço IP, o cliente pode se comunicar com outros dispositivos dentro da VPN. Esse processo estabelece um túnel seguro pela Internet.
O PPTP possui vulnerabilidades de segurança conhecidas. Os mecanismos de criptografia e autenticação do PPTP são considerados fracos pelos padrões modernos. Antes de usar o PPTP, avalie cuidadosamente o impacto na segurança do seu negócio. Para mais informações, consulte PPTP Client - Protocol Security. Este tópico fornece exemplos e diretrizes para o procedimento de configuração. As operações reais podem variar dependendo do seu ambiente.
Configurar um servidor VPN PPTP
Conecte-se à instância ECS CentOS que servirá como servidor VPN PPTP e execute as etapas a seguir. Para obter informações sobre como se conectar a uma instância ECS, consulte Conectar-se a uma instância.
Pré-requisitos
Uma instância ECS criada. Para obter informações sobre como criar uma instância ECS, consulte Criar uma instância na aba Custom Launch.
As seções a seguir utilizam uma instância ECS com as especificações abaixo. Para evitar erros de comando causados por diferenças na versão do sistema operacional, recomenda-se usar a mesma versão.
|
Parâmetro |
Valor |
|
Tipo de instância |
ecs.c6.large |
|
Sistema operacional |
Imagem pública CentOS 7.2 |
|
Tipo de rede |
Virtual Private Cloud (VPC) |
|
Endereço IP |
Endereço IP público |
Uma regra de entrada adicionada a um grupo de segurança da instância ECS para permitir tráfego na porta 1723 e na porta do protocolo Generic Routing Encapsulation (GRE). Para mais informações, consulte Gerenciar regras de grupo de segurança.
Etapa 1: Configure o PPTP
A tabela a seguir lista os arquivos de configuração modificados nesta etapa.
|
Arquivo |
Finalidade |
|
|
Configuração do daemon PPTP (intervalos de endereços IP) |
|
|
Opções PPP, incluindo configurações de DNS |
|
|
Credenciais de usuário para autenticação do cliente |
|
|
Script executado quando uma conexão PPP é estabelecida |
-
Instale o servidor VPN PPTP. Execute o seguinte comando para instalar os pacotes necessários:
yum install -y ppp pptpd -
Modifique o arquivo de configuração do daemon PPTP (pptpd). Especifique o intervalo de endereços IP para atribuição aos clientes. Isso garante que cada dispositivo conectado obtenha um endereço IP exclusivo. Execute o comando
vim /etc/pptpd.confpara abrir o arquivo de configuração e adicione as seguintes linhas: Verificação: Após salvar o arquivo, confirme que as entradaslocaliperemoteipaparecem no final do arquivo.NotaO parâmetro
localipespecifica o endereço do servidor VPN PPTP. Na maioria dos casos, recomenda-se usar o endereço IP privado do servidor. Defina esse valor conforme o seu cenário real.O parâmetro
remoteipespecifica o intervalo de endereços IP atribuídos aos clientes VPN PPTP. Para evitar conflitos, certifique-se de que os endereços neste intervalo não estejam em uso por outros dispositivos. Defina esse valor conforme o seu cenário real.
localip 192.168.0.1 remoteip 192.168.0.230-238 -
Configure o Domain Name System (DNS). Adicione servidores DNS para que os clientes conectados à VPN PPTP possam resolver nomes de domínio. Execute o comando
vim /etc/ppp/options.pptpdpara abrir o arquivo e adicione as seguintes linhas: Verificação: Após salvar o arquivo, confirme que as entradasms-dnsaparecem no arquivo.Nota223.5.5.5 e 223.6.6.6 são servidores DNS públicos da Alibaba Cloud. Você pode substituí-los por outros endereços de servidor DNS conforme as necessidades do seu negócio.
ms-dns 223.5.5.5 ms-dns 223.6.6.6 -
Crie um usuário. Crie credenciais para autenticação do cliente. O servidor VPN PPTP autentica cada cliente para garantir que apenas usuários autorizados acessem a VPN. Execute o comando
vim /etc/ppp/chap-secretspara abrir o arquivo. Adicione contas no seguinte formato, uma conta por linha, com itens separados por espaços: Verificação: Após salvar o arquivo, confirme que a entrada do usuário aparece no arquivo.NotaExemplo:
test pptpd 123456 *. O caractere curinga asterisco (*) indica que o usuário pode se conectar a partir de qualquer endereço IP.<Username> pptpd <Password> <IP address>test pptpd 123456 * -
Defina a Unidade Máxima de Transmissão (MTU). Ajustar a MTU otimiza o desempenho da rede ao reduzir a fragmentação de pacotes e melhorar a eficiência da transmissão de dados. Execute o comando
vim /etc/ppp/ip-uppara abrir o arquivo e adicione a seguinte linha: Verificação: Após salvar o arquivo, confirme que a entradaifconfig ppp0 mtu 1472aparece no arquivo.ifconfig ppp0 mtu 1472 -
Inicie o PPTP. Execute os seguintes comandos para iniciar o serviço PPTP e habilitar sua inicialização automática na inicialização do sistema:
systemctl start pptpd systemctl enable pptpd.service
Etapa 2: Habilitar o encaminhamento de IP
Para permitir que o sistema encaminhe pacotes IP entre interfaces de rede, execute as etapas a seguir:
-
Execute o seguinte comando para habilitar o encaminhamento de IP:
echo "net.ipv4.ip_forward = 1" >>/etc/sysctl.conf Verificação: Após executar o comando, confirme que o arquivo
/etc/sysctl.confcontém a linhanet.ipv4.ip_forward = 1.-
Execute o seguinte comando para aplicar a configuração:
sysctl -p
Etapa 3: Configure o firewall iptables
Use o firewall iptables para controlar o tráfego de rede de entrada e saída. Por exemplo, configure vários computadores para compartilhar um único endereço IP de acesso à Internet.
-
Desative o serviço firewalld padrão.
systemctl stop firewalld systemctl mask firewalld -
Instale o serviço iptables.
yum install -y iptables-services -
Inicie o serviço iptables e habilite sua inicialização automática na inicialização do sistema.
systemctl start iptables systemctl enable iptables -
Adicione regras para permitir conexões PPTP.
# Accept incoming TCP connections on port 1723 (PPTP control channel). iptables -I INPUT -p tcp --dport 1723 -m state --state NEW -j ACCEPT # Allow the GRE protocol (IP protocol 47), which PPTP uses for data tunneling. iptables -I INPUT -p gre -j ACCEPT -
Adicione uma regra de encaminhamento iptables para mascaramento de endereço de origem. Essa regra usa mascaramento para traduzir dinamicamente o endereço de origem dos pacotes de saída do bloco Classless Inter-Domain Routing (CIDR) do cliente VPN. Substitua
192.168.0.0/24pelo bloco CIDR usado para atribuir endereços IP aos seus clientes VPN PPTP.iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE -
Adicione uma regra de encaminhamento de Network Address Translation (NAT) para traduzir o endereço IP de origem. Esta regra Source NAT (SNAT) traduz o endereço de origem dos pacotes do bloco CIDR do cliente VPN para um endereço IP público específico. Substitua
192.168.0.0/24pelo bloco CIDR do seu cliente. SubstituaXXX.XXX.XXX.XXXpelo endereço IP público da instância ECS onde o servidor VPN PPTP está em execução.iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source XXX.XXX.XXX.XXX -
Salve a configuração do iptables.
service iptables save -
Reinicie o serviço iptables.
systemctl restart iptables
Configure um cliente VPN PPTP
Esta seção descreve como configurar um cliente VPN PPTP no CentOS e no Windows. Antes de começar, certifique-se de atender aos seguintes pré-requisitos:
Uma instância ECS criada para uso como cliente. Para obter informações sobre como criar uma instância ECS, consulte Criar uma instância na aba Custom Launch.
A instância possui um endereço IP público e está em uma Virtual Private Cloud (VPC).
Você consegue se conectar à instância. Para mais informações, consulte Conectar-se a uma instância.
Para evitar erros de comando causados por diferenças na versão do sistema operacional, recomenda-se usar as mesmas versões de sistema operacional mostradas na tabela a seguir.
|
SO do Cliente |
Tipo de instância |
Sistema operacional |
|
CentOS |
ecs.c6.large |
Imagem pública CentOS 7.2 |
|
Windows |
ecs.c6.large |
Imagem pública Windows Server 2022 |
Cliente CentOS
-
Execute o seguinte comando para instalar os pacotes do cliente PPTP:
yum install -y ppp pptp pptp-setup -
Execute o seguinte comando para se conectar ao servidor VPN PPTP: Quando a conexão for estabelecida, a saída confirmará que o cliente VPN PPTP está conectado ao servidor.
NotaSubstitua
[$IP]pelo endereço IP público da instância ECS onde o servidor VPN PPTP está em execução.Substitua
[$User]pelo nome de usuário criado ao configurar o servidor VPN PPTP. Para detalhes, consulte a etapa "Criar um usuário" na seção "Configurar um servidor VPN PPTP".Substitua
[$Password]pela senha desse usuário. Para detalhes, consulte a etapa "Criar um usuário" na seção "Configurar um servidor VPN PPTP".
pptpsetup --create test --server [$IP] --username [$User] --password [$Password] --encrypt --start -
Quando receber a notificação de que
192.168.0.234foi atribuído ao seu cliente, execute o seguinte comando para verificar a conexão. A interface de rede (NIC)ppp0deve aparecer na saída. Se a saída mostrar a interfaceppp0com um endereço IP atribuído, a conexão VPN estará funcionando corretamente.ifconfig | grep -A 10 ppp
Cliente Windows
Clique em Start no canto inferior esquerdo da área de trabalho e selecione Settings. Na janela Windows Settings, clique em Network & Internet. No painel de navegação à esquerda, clique em VPN. Na página VPN, clique em Add a VPN connection.
-
Na caixa de diálogo Add a VPN connection, configure os seguintes parâmetros e salve as configurações:
Parâmetro
Valor
VPN provider
Selecione Windows (built-in).
Connection name
Insira um nome para a conexão VPN. Exemplo: pptp.
Server name or address
Insira o endereço IP público ou nome de domínio do servidor VPN PPTP.
VPN type
Selecione Point to Point Tunneling Protocol (PPTP).
Type of sign-in info
Selecione User name and password.
User name (optional)
Insira o nome de usuário criado no servidor VPN PPTP.
Password
Insira a senha do usuário criado no servidor VPN PPTP.
Abra o Painel de Controle e acesse Network and Internet > Network and Sharing Center > Change adapter settings. Na janela exibida, localize a conexão VPN criada.
Clique com o botão direito na conexão VPN e selecione Properties. Na aba Networking, selecione Internet Protocol Version 4 (TCP/IPv4) e clique em Properties.
-
Na caixa de diálogo exibida, clique em Advanced. Na aba IP Settings, desmarque a caixa de seleção Use default gateway on remote network e clique em OK para salvar as configurações.
ImportanteSe você não desmarcar Use default gateway on remote network, as configurações do gateway padrão local serão substituídas após o estabelecimento da conexão discada. Isso impede o acesso à Internet através dessa conexão.
Clique em Start e selecione Settings. Na janela Windows Settings, clique em Network & Internet. No painel de navegação à esquerda, clique em VPN. Na página VPN, clique em Connect para estabelecer a conexão VPN. Se o status da conexão mudar para "Connected", a configuração está correta.
Perguntas frequentes
O que fazer se eu não conseguir abrir um site no navegador?
Se, após configurar a VPN PPTP e estabelecer uma conexão, você não conseguir abrir um site no navegador, mas conseguir executar ping com sucesso para o nome de domínio do site, o problema provavelmente decorre de configurações inválidas de MTU. Use um dos métodos a seguir para resolver o problema:
-
Método 1 (correção temporária)
Conecte-se ao servidor CentOS onde a VPN está configurada.
-
Execute o seguinte comando:
ifconfig ppp0 mtu 1472 -
Verifique se agora é possível abrir o site no navegador. Se o site abrir, o problema foi resolvido.
NotaO Método 1 é uma solução temporária. A configuração é perdida quando a conexão PPP é reiniciada. Para tornar a correção permanente, use o Método 2.
-
Método 2 (correção permanente)
Conecte-se ao servidor CentOS onde a VPN está configurada.
Execute o comando
vim /etc/ppp/ip-uppara abrir o arquivo/etc/ppp/ip-up.-
Adicione a seguinte linha ao arquivo:
ifconfig ppp0 mtu 1472Após salvar o arquivo, a MTU será definida automaticamente sempre que uma conexão PPP for estabelecida.
-
Verifique se agora é possível abrir o site no navegador. Se o site abrir, o problema foi resolvido.
O que fazer se eu obtiver um endereço IP incorreto?
Ao se conectar a uma VPN a partir de um cliente, você pode obter o endereço IP da NIC interna da sua instância em vez de um endereço IP atribuído pelo servidor VPN. Por exemplo, se o seu cliente VPN for chamado testvpn, execute as etapas a seguir para resolver o problema.
Conecte-se ao servidor CentOS onde a VPN está configurada.
Execute o comando
vim /etc/ppp/peers/testvpnpara abrir o arquivo de configuração/etc/ppp/peers/testvpndo cliente PPP. Adicione o parâmetronoipdefaultao arquivo.-
Execute os seguintes comandos para reiniciar o cliente. Após reconectar-se à VPN, você deverá obter o endereço IP correto.
NotaAo reiniciar o cliente, o parâmetro
noipdefaultpode ser sobrescrito por um parâmetro passado pelo servidor. Se o parâmetronoipdefaultfor sobrescrito, verifique a configuração do servidor.poff testvpn pon testvpn