Cómo configurar OpenVPN en Linux como cliente
Este artículo le enseñará cómo configurar OpenVPN en Linux como cliente y obtener un control preciso sobre el tráfico de su red utilizando las rutinas adecuadas.

Cómo configurar OpenVPN en Linux como cliente

En este artículo técnico y estructurado, le enseñaremos a configurar OpenVPN en Linux como cliente. Con instrucciones paso a paso y gestión de rutas, podrá controlar mejor su flujo de tráfico. Este artículo incluye consejos de seguridad y solución de problemas para un uso óptimo de OpenVPN.
0 acciones
0
0
0
0

 

¿Quieres instalar OpenVPN en Linux como cliente y enrutar rutas específicas a través de la VPN o la ruta normal?

En esta guía práctica y técnica paso a paso, le explicaremos cómo configurar OpenVPN como cliente en distribuciones de Linux populares. El objetivo es proporcionar archivos de ejemplo, scripts de subida y bajada para la gestión de rutas, métodos de túnel dividido y omisión de IP, y consejos para la autenticación con nombre de usuario y contraseña.

 

Requisitos previos

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

  • Sistema Linux (Ubuntu/Debian/CentOS/Fedora/Alma)
  • Cerrado OpenVPN Instalado
  • Archivo o archivo de configuración del servidor .ovpn Del proveedor de VPN
  • Nombre de usuario/contraseña en caso de autenticación combinada (usuario/contraseña + certificado)

 

Instalación de OpenVPN

Comandos de instalación para distribuciones comunes:

sudo apt update && sudo apt install openvpn
sudo dnf install openvpn

 

Configuración básica (ejecución manual)

Si el archivo cliente.ovpn Si lo tiene, use este comando para ejecutarlo inmediatamente:

sudo openvpn --config client.ovpn

Si el servidor usa nombre de usuario/contraseña y no desea ingresarlos cada vez, cree un archivo de credenciales:

sudo tee /etc/openvpn/credentials <<'EOF'
myuser
mypassword
EOF
sudo chmod 600 /etc/openvpn/credentials

En el archivo .ovpn La siguiente línea debe existir o agregarse:

auth-user-pass /etc/openvpn/credentials

Consejo de seguridad: De autenticación sin caché Úselo para evitar que OpenVPN almacene en caché la contraseña en la memoria:

auth-nocache

 

Control de ruta predeterminado: comportamiento predeterminado del servidor

El comportamiento predeterminado de las rutas a menudo lo determina el servidor:

  • Si el servidor puerta de enlace de redirección def1 Si presionas, todo tu tráfico pasará por la VPN (túnel completo).
  • Para evitar que el servidor acepte la ruta predeterminada, puede utilizar ruta-sin-tirón Utilice y luego agregue manualmente las rutas requeridas.

 

Método 1: Enviar solo algunas IP a través de VPN (túnel dividido)

Si desea que solo se envíen direcciones específicas a través de la VPN, utilice ruta-sin-tirón En el archivo cliente.ovpn Utilice y agregue las rutas deseadas.

client
dev tun
proto udp
remote vpn.example.com 1194
resolv-retry infinite
nobind
persist-key
persist-tun

route-nopull

route 203.0.113.45 255.255.255.255
route 198.51.100.0 255.255.255.0

Explicación: Con ruta-sin-tirón No se aceptan rutas del servidor y estás atrapado con las líneas ruta Enruta destinos específicos a través de la VPN.

 

Método 2: Todo el tráfico pasa por VPN, pero algunas IP específicas pasan por la ruta normal (Bypass)

Cuando el servidor puerta de enlace de redirección def1 Si desea que algunas direcciones específicas pasen por la ruta predeterminada (Internet), debe guardar la puerta de enlace predeterminada y reescribir las rutas de derivación.

A) Guarde la puerta de enlace original antes de conectarse

Comandos de muestra para obtener la puerta de enlace y el dispositivo predeterminados antes de conectarse:

GW=$(ip route show default | awk '/default/ {print $3}')
DEV=$(ip route show default | awk '/default/ {print $5}')

Después de levantarse tun0, vuelve a agregar las IP que quieres omitir a través de GW:

sudo ip route add 203.0.113.0/24 via $GW dev $DEV
sudo ip route add 8.8.8.8/32 via $GW dev $DEV

b) Automatizar con script arriba/abajo

En cliente.ovpn Agregue las siguientes líneas para ejecutar los scripts:

script-security 2
up /etc/openvpn/client-up.sh
down /etc/openvpn/client-down.sh

Ejemplo /etc/openvpn/client-up.sh:

#!/bin/bash
echo "$(ip route show default | awk '/default/ {print $3, $5}')" > /var/run/openvpn.origgw
GW=$(awk '{print $1}' /var/run/openvpn.origgw)
DEV=$(awk '{print $2}' /var/run/openvpn.origgw)
ip route add 8.8.8.8/32 via $GW dev $DEV
ip route add 203.0.113.45/32 via $GW dev $DEV
exit 0

Ejemplo /etc/openvpn/client-down.sh:

#!/bin/bash
GW=$(awk '{print $1}' /var/run/openvpn.origgw)
DEV=$(awk '{print $2}' /var/run/openvpn.origgw)
ip route del 8.8.8.8/32 via $GW dev $DEV || true
ip route del 203.0.113.45/32 via $GW dev $DEV || true
rm -f /var/run/openvpn.origgw
exit 0

No olvides ejecutar los scripts:

sudo chmod +x /etc/openvpn/client-up.sh /etc/openvpn/client-down.sh

 

Método 3: enrutamiento basado en políticas

Puede utilizar el enrutamiento basado en políticas para dirigir el tráfico específico de origen a través de la VPN.

echo "200 vpnroute" | sudo tee -a /etc/iproute2/rt_tables
sudo ip rule add from 10.0.0.5/32 lookup vpnroute
sudo ip route add default dev tun0 table vpnroute

Para encontrar información tun0 Y puerta de enlace virtual:

ip -4 addr show dev tun0
ip route show dev tun0

 

Conexión con systemd (inicio automático)

Para los archivos de configuración en la ruta /etc/openvpn/cliente/ Puede ejecutar la unidad systemd:

sudo systemctl start openvpn-client@client
sudo systemctl enable openvpn-client@client
sudo journalctl -u openvpn-client@client -f

 

Problemas de DNS y resolución de nombres

Si el servidor envía DNS, algunas distribuciones requieren un script actualizar-resolv-conf o coordinación con systemd-resuelto Tienes.

script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf

En sistemas que systemd-resuelto Es posible que requieran configuración adicional.

 

Ejemplo completo de client.ovpn (muestra)

client
dev tun
proto udp
remote vpn.example.com 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-CBC
auth SHA256

auth-user-pass /etc/openvpn/credentials
auth-nocache
route-nopull

route 203.0.113.45 255.255.255.255
route 198.51.100.0 255.255.255.0

script-security 2
up /etc/openvpn/client-up.sh
down /etc/openvpn/client-down.sh

 

Consejos de seguridad y funcionamiento

  • Crea el archivo de credenciales con chmod 600 Proteger.
  • Del certificado del cliente y autenticación tls/tls-crypt Úselo para evitar ataques DoS simples.
  • De autenticación sin caché Úselo para evitar almacenar la contraseña en la memoria caché.
  • Mantenga OpenVPN actualizado y utilice cifrado/hash moderno como AES-256-GCM O CHACHA20 Usar.
  • Supervise los registros y use systemd con logrotate para rotarlos.

Para entornos que requieren la latencia más baja (comerciantes/jugadores), utilice ubicaciones cercanas o túneles divididos para enrutar solo los servicios que necesita para mantener el ping y la estabilidad.

 

Corregir errores comunes

  • Conexión no establecida: Verifique el puerto y el protocolo en el firewall (grupo ufw/iptables/security).
  • El DNS no funciona: desde actualizar-resolv-conf O ajuste manual /etc/resolv.conf Usar.
  • No se agregan rutas: asegúrese seguridad de script 2 Está habilitado y los scripts son ejecutables.
  • Después de que se cayó la conexión a Internet: el servidor probablemente envió la ruta predeterminada; use métodos de bypass o route-nopull.

 

Comparación de aplicaciones y consejos para diferentes tipos de usuarios

  • Comerciantes: Necesidad de ping y estabilidad; utilice ubicaciones cercanas y, si es posible, túnel dividido solo para conectarse al servidor comercial.
  • Jugadores: El tráfico del juego normalmente debe tomar la ruta más corta; el túnel completo puede aumentar el ping, por lo que se debe enrutar solo al servidor del juego o usar un servidor cercano.
  • Administradores del sitio/DevOps: Se recomienda ejecutar el cliente OpenVPN en servidores con systemd y utilizar enrutamiento basado en políticas para servicios específicos.
  • IA/Renderizado: Para grandes transferencias de datos, los servidores de túnel completo y de gran ancho de banda son más adecuados.

 

Resumen y conclusión

Para ejecutar el cliente OpenVPN en Linux, normalmente necesitará el archivo .ovpn Además contraseña de usuario de autenticación Y si es necesario ruta-sin-tirón Esto es suficiente para el túnel dividido. Para omitir algunas IP durante el túnel completo, guarde la puerta de enlace anterior y agregue las rutas adecuadas. Para un comportamiento más complejo, utilice el enrutamiento basado en políticas.

También te puede gustar