¿Cómo configurar UFW para permitir el reenvío de IP?


18

Tengo UFW, OpenVPN y Virtualbox instalados en mi servidor doméstico. Tengo una red de solo host para los invitados de mi máquina virtual (vboxnet0) configurada con el rango de IP 10.0.1.0, y otro rango de IP de 10.0.0.0 configurado en el otro extremo de la conexión OpenVPN.

El reenvío de IP está configurado en el host, por lo que cuando UFW está deshabilitado , pueden comunicarse entre sí sin ningún problema. Sin embargo, me gustaría ejecutar UFW ya que este host será accesible desde la web y me gustaría tener un poco de control de acceso.

¿Cómo puedo configurar UFW para permitir este tipo de tráfico?

He probado varias combinaciones de: ufw allow allow in|out on vboxnet0|tun0sin éxito.

Mis reglas de UFW son:

root@gimli:~# ufw status
Status: active

To                         Action      From
--                         ------      ----
22                         ALLOW       Anywhere
Anywhere                   ALLOW       10.0.0.0/16
Anywhere on vboxnet0       ALLOW       Anywhere
Anywhere on tun0           ALLOW       Anywhere

Anywhere                   ALLOW OUT   Anywhere on vboxnet0
Anywhere                   ALLOW OUT   Anywhere on tun0

Cualquier ayuda sería muy apreciada.

Respuestas:


20

Me lo imaginé.

Editar /etc/default/ufwy establecer DEFAULT_FORWARD_POLICYen ACEPTAR :

DEFAULT_FORWARD_POLICY="ACCEPT"

10
¿Hay alguna forma de permitir que solo reenvíe puertos específicos, sin configurarlo para ACEPTAR todo?
Marcus Downing

1
Supongo que debes reiniciar ufw después de editar el archivo:service ufw restart
Minh Danh

10

Ahora es posible, desde la página de manual de ufw:

Las reglas para el tráfico no destinado al host en sí, sino para el tráfico que debe enrutarse / reenviarse a través del cortafuegos deben especificar la palabra clave de ruta antes de la regla (las reglas de enrutamiento difieren significativamente de la sintaxis PF y, en su lugar, tienen en cuenta las convenciones de cadena FORWARD de netfilter) . Por ejemplo:

     ufw route allow in on eth1 out on eth2

Esto permitirá que todo el tráfico enrutado a eth2 y que ingrese a eth1 atraviese el firewall.

     ufw route allow in on eth0 out on eth1 to 12.34.45.67 port 80 proto tcp

Esta regla permite que cualquier paquete que ingrese en eth0 atraviese el firewall en eth1 al puerto 80 de tcp en 12.34.45.67.

Además de las reglas y políticas de enrutamiento, también debe configurar el reenvío de IP. Esto se puede hacer configurando lo siguiente en /etc/ufw/sysctl.conf:

     net/ipv4/ip_forward=1
     net/ipv6/conf/default/forwarding=1
     net/ipv6/conf/all/forwarding=1

luego reiniciando el firewall:

     ufw disable
     ufw enable

Tenga en cuenta que la configuración de kernel tunables es específica del sistema operativo y la configuración de ufw sysctl puede ser anulada. Consulte la página del manual de sysctl para más detalles.


1
Para aquellos de nosotros que queremos permitir el tráfico tcp entre clientes OpenVPN en un servidor OpenVPN, esto funciona. Por ejemplo: ruta permite UFW en el tun0 a cabo en tun0
logion

Para el registro ufw routeestá presente desde la versión 0.34
Joril

7

si configura DEFAULT_FORWARD_POLICY en ACCEPT en / etc / default / ufw, el firewall reenviará todos los paquetes independientemente de la configuración de la interfaz de usuario.

Creo que la interfaz de usuario solo está diseñada para un simple filtrado de entrada / salida. Para el reenvío, debe agregar reglas de iptables en /etc/ufw/before.rules como aquí:

-A ufw-before-forward -i eth1 -p tcp -d 192.168.1.11 --dport 22 -j ACCEPT

Probablemente ya tenga una regla que permita conexiones desde adentro hacia afuera y otra que permita que los paquetes de sesiones tcp relacionadas y establecidas vuelvan a entrar.

No soy especialista en iptables, me llevó mucho tiempo resolver esto (con ip6tables, pero debería ser similar). Tal vez esto no sea todo lo que se necesita en su caso.

Mejores saludos


4

Este comando ufw me funcionó muy bien: sudo ufw default allow FORWARD

Para asegurarse de que se aplica el cambio: sudo service ufw restart


Esto produce un error de "sintaxis no válida". Los documentos dicen que "DIRECCIÓN es una de entrada, salida o enrutado".
ColinM

@ColinM esto funcionó para mí en Xubuntu 16.04.5 LTS
baptx

FORWARDfunciona como alias para routedUbuntu
patricktokeeffe
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.