
Estoy intentando configurar un servidor OpenVPN en un VPS que ejecuta Fedora Server 35. Configuré la VPN y funcionó, pero tengo problemas con la configuración del firewall.
Esta es mi primera experiencia administrando un firewall y tampoco soy nativo de Linux, pero estoy tratando de aprender. Seguí una guía para una instancia de CentOS, pero como CentOS ya no existe, opté por una imagen de Fedora en Contabo.
La guía se basó en firewalld
, y como ya estaba instalada y parcialmente configurada en mi VPS, hice lo mismo. Sé que ese firewalld
es el problema porque cuando lo apago, el cliente VPN se conecta sin problemas.
Hay 2 zonas activas configuradas FedoraServer
y trusted
. La FedoraServer
zona venía preconfigurada con la imagen VPS y se configuró como zona predeterminada. Utilicé los siguientes comandos para modificar la configuración según la guía:
firewall-cmd --zone=trusted --add-service openvpn
firewall-cmd --zone=trusted --add-service openvpn --permanent
firewall-cmd --add-masquerade
firewall-cmd --add-masquerade --permanent
VAR=$(ip route get 1.1.1.1 | awk 'NR==1 {print $(NF-2)}')
firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -s 10.8.0.0/24 -o $VAR -j MASQUERADE
firewall-cmd --reload
La información de la zona actual es la siguiente:
[~]# firewall-cmd --info-zone=FedoraServer
FedoraServer (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: cockpit dhcpv6-client ssh
ports:
protocols:
forward: no
masquerade: yes
forward-ports:
source-ports:
icmp-blocks:
rich rules:
[~]# firewall-cmd --info-zone=trusted
trusted (active)
target: ACCEPT
icmp-block-inversion: no
interfaces: tun0
sources:
services: openvpn
ports:
protocols:
forward: yes
masquerade: yes
forward-ports:
source-ports:
icmp-blocks:
rich rules:
La advertencia interesante es que cuando configuro trusted
la zona como predeterminada, puedo conectarme a una VPN en firewalld
ejecución, con NAT funcionando y teniendo acceso a Internet.
Ahora se podría decir problema resuelto. Pero debido a mi falta de conocimiento me preocupa que pueda estar dejando un agujero en la seguridad porque la trusted
zona usa target: ACCEPT
.
Leí innumerables hilos en StackExchange, foros de Fedora y foros de OpenVPN, así como firewalld
documentos en vano. Siento que me faltan conocimientos básicos sobre redes para resolver esto y ya no sé qué buscar.
¡Cualquier ayuda, consejo u orientación será apreciada!
Respuesta1
Puede agregar servicios a la zona de confianza y luego cambiar aceptar para soltar. Por ejemplo, para permitir solo openvpn y ssh, puede hacerlo así.
sudo firewall-cmd --zone=trusted --add-service={ssh,openvpn}
sudo firewall-cmd --zone=trusted --set-target=DROP
sudo firewall-cmd --reload
Respuesta2
Parece que está en el camino correcto y ha logrado un buen progreso en la configuración de su servidor OpenVPN en Fedora 35. La principal preocupación es asegurarse de que la configuración de su firewall sea segura y no deje agujeros innecesarios.
Abordemos sus inquietudes y brindemos alguna orientación:
Zona predeterminada:
Es común tener diferentes zonas para diferentes propósitos. Si configurar la zona confiable como predeterminada permite que su VPN funcione, está bien. Sin embargo, usted señaló correctamente la preocupación con el objetivo: ACEPTAR. En una configuración más segura, querrás limitar el acceso sólo a los servicios necesarios.
Zona del servidor Fedora:
Si desea utilizar la zona FedoraServer como predeterminada, debe asegurarse de que permita el tráfico necesario para OpenVPN. Mencionaste que OpenVPN funciona cuando Confiable está configurado como predeterminado, por lo que podría ser útil comparar las configuraciones entre las dos zonas. Ajustando la zona de FedoraServer:
Si decide utilizar la zona FedoraServer como predeterminada, deberá agregar reglas para permitir el tráfico OpenVPN. Por ejemplo:
firewall-cmd --zone=FedoraServer --add-service=openvpn --permanent firewall-cmd --recargar