Configurar OpenVPN en Kali Linux
Configurar OpenVPN en Kali Linux
Configurar OpenVPN en Kali Linux es un proceso bastante directo, ya sea que quieras conectarte a un servidor de auditoría (como Hack The Box o TryHackMe) o a un servicio de VPN comercial.
Aquí tienes los pasos para hacerlo de forma rápida y efectiva:
1. Preparación del Archivo
Primero, necesitas el archivo de configuración con extensión .ovpn que te proporciona tu proveedor. Asegúrate de saber dónde lo has descargado (normalmente en la carpeta /home/kali/Downloads).
2. Método por Terminal (El más rápido)
Este es el método preferido por la mayoría de los usuarios de Kali porque te permite ver los logs de conexión en tiempo real.
Abre una terminal.
Navega hasta la carpeta del archivo:
cd ~/DownloadsEjecuta el comando con privilegios de superusuario:
sudo openvpn nombre_de_tu_archivo.ovpnNo cierres la terminal. Si la cierras, la conexión se cortará. Verás el mensaje
Initialization Sequence Completedcuando estés conectado con éxito.
3. Método por Interfaz Gráfica (Network Manager)
Si prefieres que la VPN esté integrada en la barra de tareas de Kali (XFCE):
Haz clic derecho en el icono de red en la esquina superior derecha y selecciona Edit Connections... (Editar conexiones).
Haz clic en el botón + (Añadir).
En el menú desplegable, selecciona Import a saved VPN configuration... (Importar una configuración VPN guardada) y dale a Create.
Selecciona tu archivo
.ovpn.Se abrirá una ventana con los ajustes; revisa que todo esté correcto y dale a Save.
Ahora puedes activar la VPN haciendo clic izquierdo en el icono de red y seleccionando la conexión en VPN Connections.
Comandos Útiles de Verificación
Para asegurarte de que tu tráfico está pasando por la VPN, puedes usar estos comandos en una nueva terminal:
Verificar tu nueva IP:
curl ifconfig.meoip addr show tun0Verificar la ruta de red:
ip route
Errores comunes
Permisos denegados: Recuerda usar siempre
sudo.Conflicto de DNS: Si puedes hacer ping a IPs pero no navegar por nombres de dominio, puede que necesites revisar el archivo
/etc/resolv.conf.Versión de OpenVPN: Asegúrate de tener el sistema actualizado con
sudo apt update && sudo apt install openvpn.
Configurar un Kill Switch es fundamental en Kali Linux para evitar que tu verdadera dirección IP se filtre si la conexión VPN se interrumpe inesperadamente.
Usaremos ufw (Uncomplicated Firewall) porque es sencillo y muy robusto para este propósito.
Paso 1: Instalar y preparar el Firewall
Si no tienes ufw instalado, abre una terminal y ejecuta:
sudo apt update && sudo apt install ufw -y
Paso 2: Configurar las Reglas del Kill Switch
El objetivo es bloquear todo el tráfico, excepto el que pasa por el túnel de la VPN (tun0) y la conexión necesaria para establecer la VPN inicialmente.
Restablecer las reglas:
sudo ufw default deny outgoingsudo ufw default deny incomingPermitir tráfico a través de la interfaz de la VPN:
sudo ufw allow out on tun0 from any to anyPermitir la conexión al servidor VPN:
Necesitas permitir la salida por el puerto que usa OpenVPN (normalmente el 1194 UDP o 443 TCP).
sudo ufw allow out 1194/udp(Nota: Si tu archivo .ovpn indica un puerto o protocolo diferente, cámbialo aquí).
Permitir tráfico en tu red local (Opcional):
Si quieres seguir accediendo a dispositivos en tu misma red (como una impresora o un router en la 192.168.1.1):
sudo ufw allow out to 192.168.1.0/24
Paso 3: Activar el Firewall
Una vez configuradas las reglas, enciende el firewall:
sudo ufw enable
¿Cómo probar si funciona?
Es vital verificar que el Kill Switch sea efectivo:
Conéctate a tu OpenVPN:
sudo openvpn tu_archivo.ovpn.Verifica que tienes internet:
ping google.com.Corta la conexión VPN (presiona
Ctrl+Cen la terminal de OpenVPN).Intenta navegar o hacer ping de nuevo. No debería haber conexión. Si el tráfico se detiene por completo, ¡felicidades! Tu IP real está protegida.
Cómo volver a la normalidad
Si terminas tu sesión de auditoría y quieres usar tu internet normal sin la VPN, simplemente desactiva el firewall:
sudo ufw disable
Para automatizar esto, lo mejor es usar los scripts de eventos que tiene OpenVPN (up y down). Esto hará que el firewall se active automáticamente al conectar y se desactive al desconectar, evitándote el trabajo manual.
Sigue estos pasos para dejarlo configurado de forma profesional:
1. Crear los scripts de automatización
Vamos a crear dos archivos pequeños en la carpeta de OpenVPN.
Script para activar el Kill Switch (/etc/openvpn/ufw-up.sh):
#!/bin/bash
sudo ufw enable
Script para desactivar el Kill Switch (/etc/openvpn/ufw-down.sh):
#!/bin/bash
sudo ufw disable
2. Dar permisos de ejecución
Copia y pega estos comandos para que el sistema permita que OpenVPN ejecute los archivos:
sudo chmod +x /etc/openvpn/ufw-up.sh /etc/openvpn/ufw-down.sh
3. Modificar tu archivo .ovpn
Ahora, abre tu archivo de configuración de la VPN con un editor de texto (como nano o mousepad):
nano mi_configuracion.ovpn
Al final del archivo, añade estas líneas:
script-security 2
up /etc/openvpn/ufw-up.sh
down /etc/openvpn/ufw-down.sh
¿Cómo funciona ahora?
A partir de este momento, cuando lances tu VPN con:
sudo openvpn mi_configuracion.ovpn
Al conectar: OpenVPN llamará al script
up, que encenderá el firewallufw. Si la VPN se cae, el firewall seguirá activo y bloqueará todo el tráfico (Kill Switch).Al desconectar (Ctrl+C): OpenVPN llamará al script
down, que apagará el firewall para que recuperes tu conexión a internet normal.
Un detalle importante: DNS
A veces, al activar el Kill Switch, el sistema no puede resolver nombres (como google.com) porque el tráfico DNS está bloqueado. Si te pasa, añade esta regla a tu firewall:
sudo ufw allow out 53
Para verificarlo, solo tenemos que echar un vistazo rápido al contenido de tu archivo .ovpn. Como esos archivos son de texto plano, puedes usar el comando grep para filtrar la información que necesitamos sin tener que leer todo el código.
Ejecuta este comando en tu terminal:
grep -E "proto|remote " tu_archivo.ovpn
(Cambia tu_archivo.ovpn por el nombre real de tu archivo).
Cómo interpretar el resultado:
Dependiendo de lo que aparezca, ajustaremos la regla del firewall así:
Si dice
proto udpy algo comoremote 1.2.3.4 1194:Tu VPN usa el puerto 1194 sobre UDP (es lo más común y rápido).
Tu regla de firewall debe ser:
sudo ufw allow out 1194/udp
Si dice
proto tcpy algo comoremote 1.2.3.4 443:Tu VPN usa el puerto 443 (el de navegación web segura) sobre TCP. Esto es útil para saltar bloqueos en redes restringidas.
Tu regla de firewall debe ser:
sudo ufw allow out 443/tcp
Un último consejo de "Hacker":
Si estás usando esto para TryHackMe o Hack The Box, a veces el servidor VPN cambia. Si ves que un día no conecta, es posible que el puerto haya cambiado en un nuevo archivo de configuración que descargues.
¡Esta es una de las mejores mejoras de calidad de vida que puedes hacer en Kali! Tener tu IP de la VPN siempre visible en el prompt (la línea donde escribes los comandos) te evita tener que estar ejecutando ip addr a cada rato para saber si sigues conectado.
En Kali Linux el shell por defecto es ZSH. Vamos a editar su configuración:
1. Abrir el archivo de configuración
Abre el archivo .zshrc que está en tu carpeta personal:
nano ~/.zshrc
2. Añadir la función de detección de IP
Baja hasta el final del archivo y pega este bloque de código. Este script busca la IP de la interfaz tun0 (la de OpenVPN) y, si no existe, simplemente no muestra nada:
# Función para obtener la IP de la VPN (tun0)
function vpn_ip() {
IP=$(ip addr show tun0 2>/dev/null | grep "inet " | awk '{print $2}' | cut -d/ -f1)
if [ -n "$IP" ]; then
echo " %F{yellow}[VPN: $IP]%f"
else
echo ""
fi
}
# Insertar la función en el prompt de Kali
PROMPT=$PROMPT'$(vpn_ip)'
3. Aplicar los cambios
Guarda con Ctrl+O, presiona Enter y sal con Ctrl+X. Para que los cambios surtan efecto de inmediato en la terminal actual, ejecuta:
source ~/.zshrc
¿Cómo se verá ahora?
Ahora, cada vez que te conectes a OpenVPN, verás algo como esto al final de tu línea de comandos:
┌──(kali㉿kali)-[~] [VPN: 10.10.14.5]
└─$
Si te desconectas, el texto en amarillo desaparecerá automáticamente.
Un extra para pro-hackers: El Alias de reconexión
Ya que estamos automatizando, puedes añadir un alias al mismo archivo .zshrc para no tener que escribir toda la ruta de la VPN cada vez:
alias vpn-on='sudo openvpn ~/Downloads/mi_configuracion.ovpn'
(Solo cambia la ruta por la de tu archivo real).
Ahora, con solo escribir vpn-on en cualquier terminal, estarás conectado y protegido.
¡Esto te va a ahorrar muchísimo tiempo en plataformas como Hack The Box o TryHackMe!
Cuando auditas una máquina, lo primero es el reconocimiento. Vamos a crear un script en Bash llamado auto-recon.sh que detecte automáticamente tu IP de la VPN y lance un escaneo de Nmap organizado.
1. Crear el Script de Escaneo
Abre una terminal y crea el archivo:
nano ~/auto-recon.sh
2. Pegar el código del "Scanner Inteligente"
Copia este código. Está diseñado para ser limpio, rápido y profesional:
#!/bin/bash
# Detectar la IP de la VPN (tun0)
VPN_IP=$(ip addr show tun0 2>/dev/null | grep "inet " | awk '{print $2}' | cut -d/ -f1)
if [ -z "$VPN_IP" ]; then
echo -e "\e[31m[!] Error: No estás conectado a la VPN (tun0 no encontrada).\e[0m"
exit 1
fi
echo -e "\e[34m[*] Tu IP VPN:\e[0m $VPN_IP"
read -p "[?] Introduce la IP del objetivo: " TARGET
# Crear carpeta para resultados
mkdir -p results_$TARGET
cd results_$TARGET
echo -e "\e[32m[*] Iniciando escaneo rápido de puertos...\e[0m"
# Escaneo rápido para encontrar puertos abiertos
nmap -p- --open -sS --min-rate 5000 -n -Pn $TARGET -oG allPorts
# Extraer los puertos y lanzar un escaneo exhaustivo (versiones y scripts)
ports=$(cat allPorts | grep -oP '\d+(?=/open)' | tr '\n' ',' | sed 's/,$//')
if [ -z "$ports" ]; then
echo -e "\e[31m[!] No se encontraron puertos abiertos.\e[0m"
else
echo -e "\e[32m[*] Puertos encontrados: $ports. Lanzando escaneo de servicios...\e[0m"
nmap -sCV -p$ports $TARGET -oN targeted
echo -e "\e[34m[*] Escaneo finalizado. Resultados en: results_$TARGET/targeted\e[0m"
fi
3. Permisos y Uso
Dale permisos de ejecución:
chmod +x ~/auto-recon.sh
Para usarlo, solo escribe:
./auto-recon.sh
¿Por qué este script es mejor que un nmap normal?
Detección de Interfaz: Se asegura de que estás en la VPN antes de empezar para no perder tiempo.
Velocidad: El primer escaneo es ultra rápido (
--min-rate 5000) para identificar qué está abierto.Precisión: El segundo escaneo solo trabaja sobre los puertos encontrados, ahorrando minutos de espera.
Orden: Te crea una carpeta con los resultados para que no llenes tu escritorio de archivos.
Un toque final de personalización
Para que puedas lanzar este script desde cualquier sitio, muévelo a la carpeta de binarios:
sudo mv ~/auto-recon.sh /usr/local/bin/recon
Ahora, simplemente escribiendo recon en cualquier terminal, estarás listo para auditar.
Para un auditor de seguridad o un entusiasta de CTF, la organización de las notas es tan importante como el escaneo mismo. Si no documentas, no aprendes (y no cobras en el mundo profesional).
En Kali Linux, tienes dos opciones reina: CherryTree (el clásico jerárquico) y Obsidian (el moderno con enlaces tipo Wikipedia). Vamos a configurar CherryTree porque viene preinstalado en muchas versiones de Kali y es extremadamente ligero.
1. Preparar la estructura de CherryTree
CherryTree guarda todo en un solo archivo (.ctb). Lo ideal es tener una "Plantilla" para cada máquina que audites.
Estructura recomendada:
Nombre de la Máquina
Enumeración(Aquí pegas el resultado de tu scriptrecon)Explotación(User Flag)Post-Explotación(Privilege Escalation)Root(Root Flag)Evidencias(Capturas de pantalla)
2. Automatizar el pegado de notas
Podemos modificar tu script recon para que, además de escanear, cree un archivo de texto listo para ser importado o copiado a tus notas.
Añade estas líneas al final de tu script /usr/local/bin/recon:
# Crear un resumen para notas
echo -e "\n# NOTAS DE AUDITORIA - TARGET: $TARGET" > summary.txt
echo -e "## PUERTOS ABIERTOS: $ports" >> summary.txt
cat targeted >> summary.txt
echo -e "\e[33m[*] Resumen para notas creado en results_$TARGET/summary.txt\e[0m"
3. Bonus: Capturas de pantalla rápidas
En Kali, puedes usar xfce4-screenshooter para tomar capturas de regiones específicas y guardarlas directamente en tu carpeta de resultados:
Comando rápido:
xfce4-screenshooter -r -s ./results_$TARGET/evidence1.png
¿Cómo se ve tu flujo de trabajo ahora?
Conectas VPN: Tu prompt cambia y muestra tu IP
tun0.Lanzas el Kill Switch: Estás protegido automáticamente.
Ejecutas
recon: El script detecta tu IP, escanea el objetivo y te organiza los resultados en una carpeta.Documentas: Abres el
summary.txty lo pegas en CherryTree para empezar a trabajar.
El toque final: ¿Te gustaría que te enseñe a usar Tmux?
Tmux te permite dividir tu terminal en varias ventanas (una para la VPN, otra para el escaneo, otra para el exploit) para que no tengas 20 terminales abiertas flotando por el escritorio. Es la herramienta definitiva de productividad en Kali.
Tmux (Terminal Multiplexer) es la herramienta que separa a los principiantes de los profesionales en Kali. Te permite dividir una sola ventana de terminal en múltiples paneles, crear varias pestañas y, lo más importante: si cierras la terminal por error, tus procesos (como OpenVPN o un escaneo largo) siguen corriendo de fondo.
1. Instalación y Configuración "Pro"
Kali ya trae Tmux, pero vamos a dejarlo configurado para que sea fácil de usar con el ratón y se vea genial.
Crea el archivo de configuración:
nano ~/.tmux.conf
Pega esta configuración básica pero potente:
# Habilitar el ratón para redimensionar paneles y hacer scroll
set -g mouse on
# Cambiar el color de la barra de estado a azul (estilo Kali)
set -g status-bg blue
set -g status-fg white
# Historial de 10000 líneas
set -g history-limit 10000
# Dividir paneles con teclas más intuitivas
bind | split-window -h
bind - split-window -v
Guarda y sal (Ctrl+O, Enter, Ctrl+X).
2. Comandos de Supervivencia en Tmux
Para entrar en Tmux, simplemente escribe tmux en tu terminal. Aquí están los atajos esenciales (por defecto se usa Ctrl+b antes de cada tecla):
| Acción | Atajo (Presiona Ctrl+b y luego...) |
| Dividir pantalla vertical | % (o ` |
| Dividir pantalla horizontal | " (o - con nuestra config) |
| Saltar entre paneles | Flechas de dirección |
| Cerrar un panel | x |
| Crear nueva pestaña | c |
| Siguiente pestaña | n |
3. El Flujo de Trabajo Maestro
Imagina este escenario en una sola ventana de terminal:
Panel Superior Izquierdo: Tu OpenVPN corriendo (viendo los logs).
Panel Superior Derecho: Tu script
reconanalizando el objetivo.Panel Inferior: Tu terminal libre para lanzar exploits o navegar carpetas.
4. Lo mejor: La "Inmortalidad" de tus procesos
Si estás en medio de un escaneo de 2 horas y se te cierra la ventana de la terminal o se agota la batería:
No pasa nada. Los procesos siguen vivos.
Al volver a abrir la terminal, escribe:
tmux attachy recuperarás todo exactamente donde lo dejaste.
Resumen de tu nuevo arsenal en Kali:
OpenVPN: Configurado y automatizado.
Kill Switch: Protegiendo tu IP real con
ufw.Prompt Dinámico: Mostrando tu IP de la VPN en amarillo.
Recon Script: Escaneos automáticos y ordenados.
Tmux: Productividad total en una sola ventana.
Este es el "botón de pánico" o Script de Despegue. Vamos a crear un script que, con un solo comando, abra Tmux, inicie tu VPN, active el Kill Switch y te deje paneles listos para trabajar.
Lo llamaremos start-lab.sh.
1. Crear el Script de Inicio Maestro
Abre tu editor:
nano ~/start-lab.sh
2. Copia este código "Power User"
Este script automatiza la creación de la sesión de Tmux y divide la pantalla por ti:
#!/bin/bash
# Configuración: Pon aquí la ruta de tu archivo .ovpn
VPN_FILE="$HOME/Downloads/mi_configuracion.ovpn"
SESSION="lab"
# 1. Asegurarse de que el Kill Switch esté listo
sudo ufw enable
# 2. Iniciar una nueva sesión de Tmux llamada 'lab'
tmux new-session -d -s $SESSION
# 3. Panel 1 (Izquierda): Iniciar la VPN
tmux rename-window -t $SESSION:0 'Auditoria'
tmux send-keys -t $SESSION "sudo openvpn $VPN_FILE" C-m
# 4. Panel 2 (Derecha - Arriba): Tu script de Recon
tmux split-window -h -t $SESSION
tmux send-keys -t $SESSION "recon" # Aquí espera a que pongas la IP del objetivo
# 5. Panel 3 (Derecha - Abajo): Terminal limpia para exploits
tmux split-window -v -t $SESSION
tmux send-keys -t $SESSION "clear" C-m
# 6. Seleccionar el panel de Recon para empezar a trabajar
tmux select-pane -t 1
# 7. Acoplarse a la sesión
tmux attach-session -t $SESSION
3. Permisos y Acceso Rápido
Dale permisos y muévelo a tus binarios para lanzarlo con una sola palabra:
chmod +x ~/start-lab.sh
sudo mv ~/start-lab.sh /usr/local/bin/lab
¿Cómo se usa?
A partir de ahora, cuando enciendas tu Kali para practicar:
Abre una terminal.
Escribe:
lab¡Magia! Se abrirá Tmux con tres paneles:
A la izquierda: Verás los logs de OpenVPN conectándose.
Arriba a la derecha: El script de recon preguntándote la IP del objetivo.
Abajo a la derecha: Una terminal limpia lista para tus comandos.
Tu flujo de trabajo profesional final:
Protección: El Kill Switch (
ufw) se activa solo.Identidad: Tu prompt te confirma tu IP
tun0en amarillo.Orden: Tus escaneos se guardan en carpetas por IP.
Control: Tmux maneja toda tu sesión en una sola ventana.
Último detalle: El cierre de sesión seguro
Cuando termines de hackear, recuerda cerrar todo limpiamente:
En Tmux, escribe
exiten cada panel o usaCtrl+by luego&.Desactiva el firewall para recuperar tu internet normal:
sudo ufw disable.