Pesquisa de site

Como criar seu próprio servidor VPN IPsec no Linux


Há tantos benefícios em usar uma VPN (Rede Privada Virtual), alguns dos quais incluem mantê-lo seguro na Internet, criptografando seu tráfego e ajudando você a acessar conteúdo/sites/aplicativos da web bloqueados de qualquer lugar. Sem mencionar que a VPN também ajuda você a navegar anonimamente na Internet.

Neste artigo, você aprenderá como configurar de forma rápida e automática seu próprio servidor IPsec/L2TP VPN em CentOS/RHEL, Ubuntu e Distribuições Linux Debian.

Pré-requisitos:

  1. Um novo CentOS/RHEL ou Ubuntu/Debian VPS (servidor virtual privado) de qualquer provedor como Linode.

Configurando servidor VPN IPsec/L2TP no Linux

Para configurar o servidor VPN, usaremos uma maravilhosa coleção de scripts shell criados por Lin Song, que instala o Libreswan como servidor IPsec, e o xl2tpd como o provedor L2TP. A oferta também inclui scripts para adicionar ou excluir usuários VPN, atualizar a instalação VPN e muito mais.

Primeiro, faça login em seu VPS via SSH e, em seguida, execute os comandos apropriados para sua distribuição para configurar o servidor VPN. Por padrão, o script gerará credenciais VPN aleatórias (chave pré-compartilhada, nome de usuário da VPN e senha) para você e as exibirá no final da instalação.

No entanto, se quiser usar suas próprias credenciais, primeiro você precisa gerar uma senha e um PSK fortes, conforme mostrado.

openssl rand -base64 10
openssl rand -base64 16

Em seguida, defina esses valores gerados conforme descrito no comando a seguir, todos os valores DEVEM ser colocados entre ‘aspas simples’ conforme mostrado.

  • VPN_IPSEC_PSK – Sua chave IPsec pré-compartilhada.
  • VPN_USER – Seu nome de usuário VPN.
  • VPN_PASSWORD – Sua senha VPN.
---------------- On CentOS/RHEL ---------------- 
wget https://git.io/vpnsetup-centos -O vpnsetup.sh && VPN_IPSEC_PSK='KvLjedUkNzo5gBH72SqkOA==' VPN_USER='tecmint' VPN_PASSWORD='8DbDiPpGbcr4wQ==' sh vpnsetup.sh

---------------- On Debian and Ubuntu ----------------
wget https://git.io/vpnsetup -O vpnsetup.sh && VPN_IPSEC_PSK='KvLjedUkNzo5gBH72SqkOA==' VPN_USER='tecmint' VPN_PASSWORD='8DbDiPpGbcr4wQ==' sudo sh vpnsetup.sh

Os principais pacotes que serão instalados são bind-utils, net-tools, bison, flex, gcc, libcap-ng-devel, libcurl-devel, libselinux-devel, nspr-devel, nss-devel, pam-devel, xl2tpd, iptables-services, systemd-devel, fipscheck-devel, libevent-devel e fail2ban(para proteger SSH) e suas respectivas dependências. Em seguida, ele baixa, compila e instala o Libreswan a partir do código-fonte, ativa e inicia os serviços necessários.

Assim que a instalação for concluída, os detalhes da VPN serão exibidos conforme mostrado na imagem a seguir.

Em seguida, você precisa configurar um cliente VPN, para desktops ou laptops com interface gráfica de usuário, consulte este guia: Como configurar um cliente VPN L2TP/Ipsec no Linux.

Para adicionar a conexão VPN em um dispositivo móvel, como um telefone Android, vá para Configurações –> Rede e Internet (ou Redes sem fio e –> Mais) –> Avançado –> VPN. Selecione a opção para adicionar uma nova VPN. O tipo de VPN deve ser definido como IPSec Xauth PSK e, em seguida, use o gateway VPN e as credenciais acima.

Como adicionar ou remover um usuário VPN no Linux

Para criar um novo usuário VPN ou atualizar um usuário VPN existente com uma nova senha, baixe e use o script add_vpn_user.sh usando o seguinte comando wget.

wget -O add_vpn_user.sh https://raw.githubusercontent.com/hwdsl2/setup-ipsec-vpn/master/extras/add_vpn_user.sh
sudo sh add_vpn_user.sh 'username_to_add' 'user_password'

Para excluir um usuário VPN, baixe e use o script del_vpn_user.sh.

wget -O del_vpn_user.sh https://raw.githubusercontent.com/hwdsl2/setup-ipsec-vpn/master/extras/del_vpn_user.sh
sudo sh del_vpn_user.sh 'username_to_delete'

Como atualizar a instalação do Libreswan no Linux

Você pode atualizar a instalação do Libreswan usando o script vpnupgrade.sh ou vpnupgrade_centos.sh. Certifique-se de editar a variável SWAN_VER para a versão que deseja instalar, dentro do script.

---------------- On CentOS/RHEL ---------------- 
wget https://git.io/vpnupgrade-centos -O vpnupgrade.sh && sh vpnupgrade.sh

---------------- On Debian and Ubuntu ----------------
wget https://git.io/vpnupgrade -O vpnupgrade.sh && sudo sh  vpnupgrade.sh

Como desinstalar o servidor VPN no Linux

Para desinstalar a instalação do VPN, faça o seguinte.

No RHEL/CentOS

yum remove xl2tpd

Em seguida, abra o arquivo de configuração /etc/sysconfig/iptables e remova as regras desnecessárias e edite /etc/sysctl.conf e /etc/rc.local > arquivo e remova as linhas após o comentário # Adicionado pelo script VPN hwdsl2, em ambos os arquivos.

No Debian/Ubuntu

sudo apt-get purge xl2tpd

Em seguida, edite o arquivo de configuração /etc/iptables.rules e remova todas as regras desnecessárias. Além disso, edite /etc/iptables/rules.v4 se existir.

Em seguida, edite os arquivos /etc/sysctl.conf e /etc/rc.local, remova as linhas após o comentário # Adicionado pelo script VPN hwdsl2 , em ambos os arquivos. Não remova exit 0 se existir.

Opcionalmente, você pode remover determinados arquivos e diretórios que foram criados durante a configuração da VPN.

rm -f /etc/ipsec.conf* /etc/ipsec.secrets* /etc/ppp/chap-secrets* /etc/ppp/options.xl2tpd* /etc/pam.d/pluto /etc/sysconfig/pluto /etc/default/pluto 
rm -rf /etc/ipsec.d /etc/xl2tpd

Para configurar uma VPN baseada em IPSec site a site com o Strongswan, confira nossos guias:

  1. Como configurar VPN baseada em IPSec com Strongswan no Debian e Ubuntu
  2. Como configurar VPN baseada em IPSec com Strongswan no CentOS/RHEL 8

Neste ponto, seu próprio servidor VPN está instalado e funcionando. Você pode compartilhar qualquer dúvida ou nos dar feedback usando o formulário de comentários abaixo.