Configura Tu VPN Con OpenVPN: Guía Paso A Paso

by Alex Braham 47 views

Hey, ¿alguna vez te has preguntado cómo puedes proteger tu navegación en internet y acceder a contenido restringido geográficamente? Una VPN, o Red Privada Virtual, es la respuesta. Y si hablamos de VPNs robustas y personalizables, OpenVPN es una de las mejores opciones. En esta guía, te llevaré de la mano para que configures tu propia VPN con OpenVPN. ¡Vamos a ello!

¿Por qué OpenVPN?

Antes de sumergirnos en la configuración, hablemos un poco sobre por qué OpenVPN es tan popular. OpenVPN es un protocolo de código abierto que utiliza técnicas de encriptación avanzadas para crear conexiones seguras. Esto significa que tus datos estarán protegidos de miradas indiscretas, ya sean hackers en redes Wi-Fi públicas o tu propio proveedor de servicios de internet (ISP). Además, OpenVPN es altamente configurable, lo que te permite adaptarlo a tus necesidades específicas.

Ventajas Clave de OpenVPN

  • Seguridad Robusta: Utiliza protocolos de encriptación fuertes como AES y SSL/TLS.
  • Código Abierto: La comunidad puede auditar y mejorar constantemente el código, lo que reduce las vulnerabilidades.
  • Personalización: Ofrece una amplia gama de opciones de configuración para adaptarse a diferentes escenarios.
  • Compatibilidad: Funciona en una variedad de sistemas operativos, incluyendo Windows, macOS, Linux, Android e iOS.
  • Elusión de Restricciones Geográficas: Accede a contenido que podría estar bloqueado en tu región.

Requisitos Previos

Antes de comenzar, asegúrate de tener lo siguiente:

  • Un Servidor VPN: Puedes usar un servidor dedicado, una máquina virtual en la nube (como AWS, DigitalOcean o Vultr) o incluso tu propio router si es compatible con OpenVPN.
  • Acceso a la Línea de Comandos: Necesitarás acceso a la línea de comandos (terminal) del servidor VPN para instalar y configurar OpenVPN.
  • Conocimientos Básicos de Redes: Familiaridad con conceptos como direcciones IP, puertos y enrutamiento será útil.

Paso 1: Instalación de OpenVPN

El primer paso es instalar OpenVPN en tu servidor. Los comandos exactos variarán dependiendo de tu sistema operativo, pero aquí te doy una idea general para las distribuciones de Linux más comunes.

En Debian/Ubuntu

Actualiza los repositorios e instala OpenVPN:

sudo apt update
sudo apt install openvpn easy-rsa

En CentOS/RHEL

Primero, asegúrate de tener el repositorio EPEL habilitado:

sudo yum install epel-release

Luego, instala OpenVPN:

sudo yum install openvpn easy-rsa

Generando las Claves y Certificados con Easy-RSA

Easy-RSA es una herramienta que simplifica la creación de la infraestructura de clave pública (PKI) necesaria para OpenVPN. Esto incluye la creación de la Autoridad de Certificación (CA), el certificado del servidor y los certificados de los clientes. Una clave robusta es crucial para la seguridad de tu VPN, así que ¡no te saltes este paso! Asegúrate de que cada certificado sea único y esté bien protegido.

Paso 2: Configuración de la Autoridad de Certificación (CA)

Una vez instalado OpenVPN y Easy-RSA, necesitamos configurar la Autoridad de Certificación (CA). La CA es la entidad que firma los certificados de los clientes y del servidor, lo que garantiza su autenticidad.

Inicializar Easy-RSA

Copia el directorio Easy-RSA a un lugar seguro:

mkdir /etc/openvpn/easy-rsa
cp -r /usr/share/easy-rsa/* /etc/openvpn/easy-rsa/
cd /etc/openvpn/easy-rsa/

Edita el archivo vars para configurar las variables de la CA:

vi vars

Modifica las siguientes líneas con tus propios datos:

set_var EASYRSA_REQ_COUNTRY "ES"
set_var EASYRSA_REQ_PROVINCE "Madrid"
set_var EASYRSA_REQ_CITY "Madrid"
set_var EASYRSA_REQ_ORG "MiVPN"
set_var EASYRSA_REQ_EMAIL "admin@mivpn.com"
set_var EASYRSA_REQ_OU "DepartamentoIT"

Construir la CA

Inicializa la PKI y construye la CA:

./easyrsa init-pki
./easyrsa build-ca

Paso 3: Generar el Certificado del Servidor y la Clave

Ahora, generaremos el certificado y la clave para el servidor OpenVPN. Este certificado identificará al servidor ante los clientes.

Generar el Certificado del Servidor

Ejecuta el siguiente comando para generar el certificado del servidor. Reemplaza server con el nombre que desees para tu servidor:

./easyrsa build-server-full server nopass

Generar los Parámetros Diffie-Hellman

Los parámetros Diffie-Hellman son necesarios para el intercambio seguro de claves. Generarlos puede llevar un tiempo:

./easyrsa gen-dh

Paso 4: Generar los Certificados y Claves de los Clientes

Cada cliente que se conecte a tu VPN necesitará su propio certificado y clave. Genera un certificado único para cada dispositivo o usuario. Utiliza contraseñas seguras y almacena las claves de forma segura. Considera utilizar una herramienta de gestión de contraseñas para mayor seguridad. La seguridad de tu VPN depende en gran medida de la seguridad de estos certificados.

Generar el Certificado del Cliente

Ejecuta el siguiente comando para generar el certificado de un cliente. Reemplaza cliente1 con el nombre del cliente:

./easyrsa build-client-full cliente1 nopass

Repite este paso para cada cliente que necesites.

Paso 5: Configuración del Servidor OpenVPN

Ahora que tenemos todos los certificados y claves necesarios, configuraremos el servidor OpenVPN.

Crear el Archivo de Configuración del Servidor

Crea un archivo de configuración llamado server.conf en el directorio /etc/openvpn/:

vi /etc/openvpn/server.conf

Configuración Básica del Servidor

Aquí tienes un ejemplo de configuración básica. Ajusta los parámetros según tus necesidades:

port 1194
proto udp
dev tun
ca /etc/openvpn/easy-rsa/pki/ca.crt
cert /etc/openvpn/easy-rsa/pki/issued/server.crt
key /etc/openvpn/easy-rsa/pki/private/server.key  # This file should be kept secret
dh /etc/openvpn/easy-rsa/pki/dh.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
log-append  openvpn.log
verb 3
  • port: El puerto en el que OpenVPN escuchará las conexiones.
  • proto: El protocolo a utilizar (UDP o TCP).
  • dev: El dispositivo de túnel (tun o tap).
  • ca, cert, key, dh: Las rutas a los archivos de certificado y clave del servidor.
  • server: El rango de direcciones IP que se asignarán a los clientes.
  • push "redirect-gateway def1 bypass-dhcp": Redirige todo el tráfico del cliente a través de la VPN.
  • push "dhcp-option DNS...": Configura los servidores DNS que utilizarán los clientes.
  • comp-lzo: Habilita la compresión LZO (opcional).

Habilitar el Enrutamiento IP

Para que los clientes puedan acceder a internet a través de la VPN, necesitas habilitar el enrutamiento IP en el servidor. Edita el archivo sysctl.conf:

vi /etc/sysctl.conf

Descomenta o añade la siguiente línea:

net.ipv4.ip_forward = 1

Luego, aplica los cambios:

sysctl -p

Configurar el Firewall

Debes configurar el firewall para permitir el tráfico de OpenVPN y enmascarar el tráfico saliente de los clientes. Aquí tienes un ejemplo para iptables:

 iptables -A INPUT -i tun+ -j ACCEPT
 iptables -A FORWARD -i eth0 -o tun+ -m state --state RELATED,ESTABLISHED -j ACCEPT
 iptables -A FORWARD -i tun+ -o eth0 -j ACCEPT
 iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Reemplaza eth0 con la interfaz de red que se conecta a internet. Guarda la configuración del firewall para que se aplique después de reiniciar:

 iptables-save > /etc/iptables/rules.v4

Paso 6: Iniciar y Habilitar OpenVPN

Ahora que todo está configurado, puedes iniciar y habilitar el servicio OpenVPN:

sudo systemctl start openvpn@server
sudo systemctl enable openvpn@server

Verifica el estado del servicio:

sudo systemctl status openvpn@server

Paso 7: Configuración del Cliente OpenVPN

El último paso es configurar el cliente OpenVPN en tu dispositivo. Necesitarás el certificado del cliente, la clave del cliente y el archivo de configuración del cliente.

Crear el Archivo de Configuración del Cliente

Crea un archivo de configuración llamado cliente1.ovpn (o el nombre que desees) con el siguiente contenido:

client
dev tun
proto udp
remote tu_servidor_vpn 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert cliente1.crt
key cliente1.key
comp-lzo
verb 3

Reemplaza tu_servidor_vpn con la dirección IP o el nombre de dominio de tu servidor VPN. Asegúrate de que las rutas a los archivos ca.crt, cliente1.crt y cliente1.key sean correctas.

Transferir los Archivos al Cliente

Transfiere los archivos ca.crt, cliente1.crt, cliente1.key y cliente1.ovpn a tu dispositivo cliente. Puedes usar scp, sftp o cualquier otro método de transferencia de archivos.

Instalar el Cliente OpenVPN

Instala el cliente OpenVPN en tu dispositivo. Está disponible para Windows, macOS, Linux, Android e iOS. Importa el archivo cliente1.ovpn en el cliente OpenVPN y conéctate a tu VPN.

¡Listo!

¡Felicidades! Has configurado tu propia VPN con OpenVPN. Ahora puedes navegar por internet de forma segura y acceder a contenido restringido geográficamente. Recuerda mantener tus certificados y claves seguros y actualizar regularmente tu servidor OpenVPN para protegerte de las últimas vulnerabilidades. ¡Disfruta de tu nueva VPN!