Búsqueda de sitios web

Cómo crear su propio servidor VPN IPsec en Linux


Hay muchos beneficios al usar una VPN (red privada virtual), algunos de los cuales incluyen mantenerlo seguro en Internet al cifrar su tráfico y ayudarlo a acceder a contenido/sitios/aplicaciones web bloqueados desde cualquier lugar. Sin mencionar que VPN también te ayuda a navegar por Internet de forma anónima.

En este artículo, aprenderá cómo configurar rápida y automáticamente su propio servidor IPsec/L2TP VPN en CentOS/RHEL, Ubuntu y Distribuciones Debian Linux.

Requisitos previos:

  1. Un CentOS/RHEL o Ubuntu/Debian VPS (Servidor Privado Virtual) de cualquier proveedor como Linode.

Configuración del servidor VPN IPsec/L2TP en Linux

Para configurar el servidor VPN, usaremos una maravillosa colección de scripts de shell creados por Lin Song, que instala Libreswan como servidor IPsec y xl2tpd. como proveedor L2TP. La oferta también incluye scripts para agregar o eliminar usuarios de VPN, actualizar la instalación de VPN y mucho más.

Primero, inicie sesión en su VPS a través de SSH, luego ejecute los comandos apropiados para su distribución para configurar el servidor VPN. De forma predeterminada, la secuencia de comandos generará credenciales de VPN aleatorias (clave previamente compartida, nombre de usuario de VPN y contraseña) para usted y las mostrará en la final de la instalación.

Sin embargo, si desea utilizar sus propias credenciales, primero debe generar una contraseña segura y un PSK como se muestra.

openssl rand -base64 10
openssl rand -base64 16

A continuación, configure estos valores generados como se describe en el siguiente comando. Todos los valores DEBEN colocarse entre 'comillas simples' como se muestra.

  • VPN_IPSEC_PSK: su clave IPsec precompartida.
  • VPN_USER: su nombre de usuario de VPN.
  • VPN_PASSWORD: su contraseña de 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

Los principales paquetes que se instalarán son 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 y fail2ban (para proteger SSH) y sus respectivas dependencias. Luego descarga, compila e instala Libreswan desde la fuente, habilita e inicia los servicios necesarios.

Una vez que se complete la instalación, los detalles de la VPN se mostrarán como se muestra en la siguiente captura de pantalla.

A continuación, debe configurar un cliente VPN, para computadoras de escritorio o portátiles con una interfaz gráfica de usuario; consulte esta guía: Cómo configurar un cliente VPN L2TP/Ipsec en Linux.

Para agregar la conexión VPN en un dispositivo móvil como un teléfono Android, vaya a Configuración –> Red e Internet (o Conexiones inalámbricas y redes –> Más) –> Avanzado –> VPN. Seleccione la opción para agregar una nueva VPN. El tipo de VPN debe configurarse en IPSec Xauth PSK, luego use la puerta de enlace VPN y las credenciales anteriores.

Cómo agregar o eliminar un usuario de VPN en Linux

Para crear un nuevo usuario VPN o actualizar un usuario VPN existente con una nueva contraseña, descargue y use el script add_vpn_user.sh usando el siguiente 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 eliminar un usuario de VPN, descargue y utilice el 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'

Cómo actualizar la instalación de Libreswan en Linux

Puede actualizar la instalación de Libreswan utilizando el script vpnupgrade.sh o vpnupgrade_centos.sh. Asegúrese de editar la variable SWAN_VER a la versión que desea instalar, dentro del 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

Cómo desinstalar el servidor VPN en Linux

Para desinstalar la instalación VPN, haga lo siguiente.

En RHEL/CentOS

yum remove xl2tpd

Luego abra el archivo de configuración /etc/sysconfig/iptables, elimine las reglas innecesarias y edite /etc/sysctl.conf y /etc/rc.local . archivo y elimine las líneas después del comentario # Agregado por el script VPN hwdsl2, en ambos archivos.

En Debian/Ubuntu

sudo apt-get purge xl2tpd

A continuación, edite el archivo de configuración /etc/iptables.rules y elimine las reglas innecesarias. Además, edite /etc/iptables/rules.v4 si existe.

Luego edite los archivos /etc/sysctl.conf y /etc/rc.local, elimine las líneas después del comentario # Agregado por el script VPN hwdsl2 , en ambos archivos. No elimine la salida 0 si existe.

Opcionalmente, puede eliminar ciertos archivos y directorios que se crearon durante la configuración de la 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 una VPN basada en IPSec de sitio a sitio con Strongswan, consulte nuestras guías:

  1. Cómo configurar una VPN basada en IPSec con Strongswan en Debian y Ubuntu
  2. Cómo configurar una VPN basada en IPSec con Strongswan en CentOS/RHEL 8

En este punto, su propio servidor VPN está en funcionamiento. Puede compartir cualquier consulta o darnos su opinión utilizando el formulario de comentarios a continuación.