Editado 3 Hace unas semanas por ExtremeHow Equipo Editorial
DebianOpenVPNConfiguración del servidorRedesSeguridadLinuxVPNAdministración de sistemasCódigo abiertoInterfaz de línea de comandos
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.
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.
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
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.
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.
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.
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.
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.
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
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.
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
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
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.
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.
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