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:
- 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:
- Como configurar VPN baseada em IPSec com Strongswan no Debian e Ubuntu
- 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.