WindowsMacSoftwareConfiguraciónSeguridadProductividadLinuxAndroidRendimientoConfiguraciónApple Todo

Cómo configurar un servidor OpenVPN en Debian

Editado 3 Hace unas semanas por ExtremeHow Equipo Editorial

DebianOpenVPNConfiguración del servidorRedesSeguridadLinuxVPNAdministración de sistemasCódigo abiertoInterfaz de línea de comandos

Cómo configurar un servidor OpenVPN en Debian

Traducción actualizada 3 Hace unas semanas

Configurar un servidor OpenVPN en Debian puede parecer complicado, pero siguiendo cuidadosamente algunos pasos, puedes configurar una VPN segura. Esta guía asume que tienes un conocimiento básico del uso de la línea de comandos y que tienes Debian instalado. Analizaremos cada paso en detalle, proporcionando todos los comandos y configuraciones necesarios para que tu servidor OpenVPN esté en funcionamiento. Esto incluirá la configuración, la configuración y la prueba de tu servidor VPN.

1. Requisitos previos

Antes de comenzar, asegúrate de que:

sudo apt update && sudo apt upgrade -y

Después de asegurarte de que tu sistema está actualizado, el siguiente paso es configurar el firewall.

2. Configurar el cortafuegos simple (UFW)

Uncomplicated Firewall (UFW) es una forma sencilla de gestionar la configuración del cortafuegos. Si UFW no está ya instalado, usa lo siguiente para instalarlo:

sudo apt install ufw

A continuación, permite las conexiones SSH a través del cortafuegos (si no están ya permitidas) usando esto:

sudo ufw allow OpenSSH

Permitir conexiones OpenVPN:

sudo ufw allow 1194/udp

Habilitar el cortafuegos:

sudo ufw enable

Verifica el estado de UFW para asegurarte de que las reglas están configuradas correctamente:

sudo ufw status

3. Instalando OpenVPN

Instala el paquete OpenVPN en Debian con el siguiente comando:

sudo apt install openvpn

Después de la instalación, es hora de configurar el servidor. Necesitarás el paquete easy-rsa para ayudarte a crear una autoridad de certificación y certificados de cliente/servidor.

4. Configuración de Easy-RSA

Descarga el paquete easy-rsa, que contiene scripts para gestionar la infraestructura de clave pública (PKI):

sudo apt install easy-rsa

A continuación, copiamos el script easy-rsa a un nuevo directorio que se usará para almacenar todas las claves y certificados:

make-cadir ~/openvpn-ca

Ve al nuevo directorio:

cd ~/openvpn-ca

Edita el archivo 'vars' en este directorio para establecer las variables necesarias para la creación de certificados:

nano vars

Aquí hay algunas variables clave para editar:

export KEY_COUNTRY="US" export KEY_PROVINCE="CA" export KEY_CITY="SanFrancisco" export KEY_ORG="Example" export KEY_EMAIL="email@example.com" export KEY_OU="MyOrganizationalUnit"

Guarda y sal del editor presionando CTRL + X, luego Y y presiona Enter.

5. Creación de la Autoridad de Certificación (CA)

Inicia el directorio de Infraestructura de Clave Pública (PKI):

./easyrsa init-pki

Crea una Autoridad de Certificación (CA) haciendo lo siguiente:

./easyrsa build-ca

Se te pedirá que ingreses otros detalles como la contraseña y el nombre común para la CA. Configúralos según tu preferencia.

6. Generación de certificados y claves del servidor

A continuación, crea el certificado y la clave del servidor. Ejecuta:

./easyrsa gen-req server nopass

Este comando genera una clave privada del servidor llamada 'server.key'.

Ahora firma el certificado con la CA:

./easyrsa sign-req server server

Se te pedirá que confirmes la solicitud de firma. Escribe "yes" y presiona Enter.

7. Generación de certificados y claves del cliente

De manera similar, prepara certificados para los clientes:

./easyrsa gen-req client1 nopass

Firma el certificado del cliente:

./easyrsa sign-req client client1

Repite estos pasos para crear más certificados de cliente según sea necesario.

8. Generar parámetros de Diffie-Hellman y firma HMAC

Genera el archivo Diffie-Hellman:

./easyrsa gen-dh

Y genera una firma HMAC estática para fortalecer las capacidades de verificación de integridad TLS del servidor:

openvpn --genkey secret ta.key

9. Configuración del servidor OpenVPN

Crea un nuevo archivo de configuración para el servidor OpenVPN:

sudo nano /etc/openvpn/server.conf

Pega la siguiente configuración en el archivo:

port 1194 proto udp dev tun ca ca.crt cert server.crt key server.key dh 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 tls-auth ta.key 0 cipher AES-256-CBC user nobody group nogroup persist-key persist-tun status openvpn-status.log verb 3

Asegúrate de que todas las rutas de los archivos apunten a los archivos correctos. Ahora guarda el archivo y sal del editor.

10. Ajustar la configuración de red

Necesitas realizar cambios en la red para permitir el reenvío de tráfico. Abre `/etc/sysctl.conf`:

sudo nano /etc/sysctl.conf

Descomenta la línea:

net.ipv4.ip_forward=1

Aplica los cambios:

sudo sysctl -p

Agrega la regla UFW:

sudo nano /etc/ufw/before.rules

Agrega al principio del archivo:

# START OPENVPN RULES *nat :POSTROUTING ACCEPT [0:0] -A POSTROUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE COMMIT # END OPENVPN RULES

Permitir el enmascaramiento IP:

sudo nano /etc/default/ufw

Cambia `DEFAULT_FORWARD_POLICY` a:

DEFAULT_FORWARD_POLICY="ACCEPT"

Finalmente, aplica las reglas UFW:

sudo ufw allow 1194/udp

Reinicia UFW:

sudo ufw disable
sudo ufw enable

11. Iniciar y habilitar OpenVPN

Inicia y habilita el servicio OpenVPN:

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

Verifica el estado para asegurarte de que esté funcionando sin errores:

sudo systemctl status openvpn@server

12. Configuración del cliente

El último paso es configurar el cliente. Instala el cliente OpenVPN ejecutando el comando de instalación específico para tu sistema operativo cliente. Luego, crea un archivo de configuración del cliente, generalmente un archivo `.ovpn` que contiene toda la información del servidor, el certificado del cliente y la clave privada para la autenticación.

Crea un nuevo archivo de configuración del cliente en tu máquina (client1.ovpn):

client dev tun proto udp remote your-server-ip 1194 resolv-retry infinite nobind persist-key persist-tun remote-cert-tls server cipher AES-256-CBC auth SHA256 auth-nocache tls-auth ta.key 1 verb 3 # paste ca.crt content here # paste client1.crt content here # paste client1.key content here # paste ta.key content here

Transfiere los certificados y configura el cliente en tu máquina cliente.

13. Prueba de VPN

Finalmente, es hora de la prueba. Ejecuta el cliente OpenVPN en tu máquina, usando el archivo de configuración que creaste. Si todo está configurado correctamente, deberías conectar sin problemas y tu tráfico de red ahora se enruta a través de tu VPN.

Una vez conectado, verifica tu dirección IP externa para asegurarte de que refleja la IP del servidor y no la original de tu cliente.

Conclusión

Siguiendo estos pasos detallados, has instalado exitosamente un servidor OpenVPN en una máquina Debian. Esta configuración garantiza una comunicación segura de tus datos a través de una red potencialmente insegura. Siempre recuerda mantener tu servidor y cliente actualizados y monitorizar constantemente para actualizaciones de seguridad.

Si encuentras algo incorrecto en el contenido del artículo, puedes


Comentarios