Este tópico demonstra como configurar uma VPN Point-to-Point Tunneling Protocol (PPTP) em uma instância do Elastic Compute Service (ECS) com o sistema operacional Ubuntu.
Pré-requisitos
As instruções deste tópico aplicam-se ao Ubuntu 18.04, Ubuntu 20.04 e Ubuntu 22.04.
Este guia utiliza uma instância ECS com Ubuntu 18.04 como exemplo. Para mais detalhes sobre a criação de instâncias ECS, consulte Criar uma instância usando o assistente.
O grupo de segurança da instância deve ter uma regra de entrada que permita tráfego na porta 1723 e no protocolo GRE a partir do endereço IP público do cliente VPN. Para mais informações, veja Gerenciar regras de grupo de segurança.
Configuração do servidor VPN
Faça login na instância ECS que servirá como servidor PPTP e siga as etapas abaixo para configurá-lo. Para saber como acessar uma instância ECS, consulte Conectar-se a uma instância Linux.
Configurar o serviço PPTP
-
Execute os comandos a seguir para instalar o pptpd.
sudo apt-get update sudo apt-get -y install pptpd -
Configure o arquivo pptpd. Esse arquivo define o intervalo de endereços IP para clientes PPTP, garantindo que cada dispositivo receba um endereço IP exclusivo.
-
Execute o comando
sudo vim /etc/pptpd.confe adicione a configuração abaixo:localip 192.168.0.1 remoteip 192.168.0.234-238NotaO parâmetro
localipdefine o endereço do servidor VPN. Recomendamos usar o endereço IP privado do servidor. Ajuste esse valor conforme necessário.O parâmetro
remoteipespecifica o intervalo de endereços IP para os clientes PPTP. Para evitar conflitos, certifique-se de que nenhum outro dispositivo utilize essa faixa de IP. Ajuste esse valor conforme sua necessidade.
-
Após adicionar a configuração, o conteúdo do arquivo ficará assim:
# (Recommended) #localip 192.168.0.1 #remoteip 192.168.0.234-238,192.168.0.245 localip 192.168.0.1 remoteip 192.168.0.234-238
-
-
Configure o DNS.
-
Execute o comando
sudo vim /etc/ppp/pptpd-optionse inclua as configurações seguintes:ms-dns 223.5.5.5 ms-dns 223.6.6.6NotaOs endereços IP 223.5.5.5 e 223.6.6.6 correspondem aos servidores DNS públicos da Alibaba Cloud. Se preferir, substitua-os por outros endereços de servidores DNS públicos.
-
Depois de incluir a configuração, o arquivo terá o seguinte conteúdo:
# specifies the secondary DNS address. #ms-dns 10.0.0.1 #ms-dns 10.0.0.2 ms-dns 223.5.5.5 ms-dns 223.6.6.6
-
-
Crie um usuário. Esse usuário autentica as conexões PPTP, permitindo que apenas clientes autorizados se conectem.
-
Execute o comando
sudo vim /etc/ppp/chap-secretspara adicionar nome de usuário e senha ao pptpd. Adicione contas conforme necessário no formatousername pptpd password IP address. Separe cada item por espaço e insira apenas uma conta de usuário por linha.NotaExemplo:
test pptpd 123456 *. O asterisco (*) representa todos os endereços IP.test pptpd 123456 *
-
Ativar o encaminhamento de IP
-
Execute o comando abaixo para ativar o encaminhamento de IP.
sudo echo "net.ipv4.ip_forward = 1" >>/etc/sysctl.conf -
Execute o seguinte comando para carregar os parâmetros do sistema.
sudo sysctl -p "/etc/sysctl.conf"Se o comando for executado com sucesso, a presença de
net.ipv4.ip_forward = 1na saída indica que o encaminhamento de IP está ativo.root@iZZ:~# sudo sysctl -p vm.swappiness = 0 kernel.sysrq = 1 net.ipv4.neigh.default.gc_stale_time = 120 net.ipv4.conf.all.rp_filter = 0 net.ipv4.conf.default.rp_filter = 0 net.ipv4.conf.default.arp_announce = 2 net.ipv4.conf.lo.arp_announce = 2 net.ipv4.conf.all.arp_announce = 2 net.ipv4.tcp_max_tw_buckets = 5000 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_max_syn_backlog = 1024 net.ipv4.tcp_synack_retries = 2 net.ipv4.tcp_slow_start_after_idle = 0 net.ipv4.ip_forward = 1
Configurar regras de encaminhamento do firewall iptables
No Ubuntu, as regras do iptables são perdidas após reiniciar a instância ECS, pois são temporárias por padrão. Utilize o pacote iptables-persistent para salvar as regras do iptables e carregá-las automaticamente na inicialização do sistema.
-
Execute o comando a seguir para instalar o
iptables-persistent.sudo apt-get install iptables-persistent -yDurante a instalação, quando solicitado a salvar as regras atuais, selecione
yes. -
Adicione as regras do iptables.
sudo iptables -A INPUT -p gre -j ACCEPT sudo iptables -A INPUT -p tcp --dport 1723 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 47 -j ACCEPT sudo iptables -t nat -A POSTROUTING -s 192.168.0.234/29 -o eth0 -j SNAT --to-source XXX.XXX.XXX.XXXNotaNeste exemplo,
192.168.0.234/29define o intervalo de endereços IP privados para o cliente VPN. Modifique esse valor de acordo com seus requisitos reais. XXX.XXX.XXX.XXX corresponde ao endereço IP público da sua instância ECS. -
Salve as regras do iptables para torná-las persistentes.
sudo netfilter-persistent save -
(Opcional) Visualize as regras do iptables.
# View detailed rules sudo iptables -L -v # View rules in the nat table sudo iptables -t nat -L -v
Reiniciar o serviço PPTP
sudo /etc/init.d/pptpd restart
sudo systemctl enable pptpd.service
Configuração do cliente VPN
-
Execute os comandos abaixo para instalar o software cliente PPTP.
sudo apt-get update sudo apt-get -y install pptp-linux -
Execute o seguinte comando para inicializar um túnel de conexão VPN chamado test.
sudo pptpsetup --create test --server [$IP] --username [$User] --password [$Password] --encrypt --startNota[$IP]é o endereço IP público da instância ECS que hospeda o servidor PPTP.[$User]é o nome do usuário criado no servidor PPTP. Para obter o nome de usuário, consulte Criar um usuário.[$Password]é a senha do usuário criado no servidor PPTP. Para obter a senha, consulte Criar um usuário.
Se a conexão for bem-sucedida, a seguinte saída será exibida:
Using interface ppp0 Connect: ppp0 <--> /dev/pts/1 CHAP authentication succeeded MPPE 128-bit stateless compression enabled local IP address 192.168.0.234 remote IP address 192.168.0.1