UFW: ¿qué es exactamente?

13

¿Qué es el UFW? Se podría pensar que esta es una pregunta fácil, pero cuantas más fuentes leo, menos claro queda.

El acrónimo explica Firewall sin complicaciones, como si ufw realmente implementara un firewall. Y, de hecho, en muchos lugares se conoce como firewall per se, como en este artículo .

La página wiki de ayuda de Ubuntu en UFW dice que UFW es una herramienta de configuración para iptables. (A su vez, la página wiki de ayuda sobre cortafuegos dice que iptables es la base de datos de las reglas del cortafuegos, y que también es el cortafuegos real, como si una base de datos fuera un cortafuegos, lo que obviamente es falso. Y, por supuesto, 'iptables' también es el nombre de un programa)

Si ufw es una herramienta de configuración, entonces podríamos esperar que sea un programa que ejecutas para configurar algo, y una vez hecho esto, sales con la configuración establecida. Esa es la posición de la respuesta aceptada de esta pregunta: ¿Firewall sin complicaciones (ufw) es un servicio?

Pero otras respuestas a esa pregunta no están de acuerdo: no, es un servicio. ¡Y de hecho en mi máquina 18.04, veo que ufw se está ejecutando como un servicio! ¿Por qué diablos se ejecuta una herramienta de configuración como un servicio?

Además, systemctl list-units --all --type=serviceshows ufw.servicees loaded and active(y también exited?!) Todavía ufw statusmuestra inactive.

Entonces, ¿qué significa ufw status = inactive?

  1. ¿Que "el cortafuegos" (lo que sea que sea) está inactivo? Eso es lo que sugeriría el documento ufw man page para 'status'.

  2. ¿O significa que las reglas configuradas en ufw están inactivas (pero otras configuradas en iptables están activas)?

  3. ¿O significa que ufw comenzó en el arranque, instaló sus reglas en ipconfig (o donde sea que vayan) para que ahora estén vigentes, y ahora ufw no tiene nada que hacer, por lo que está inactivo?

De particular interés: quiero seguir algunas instrucciones que requieren la emisión de algunos comandos de iptables, pero me preocupa que entren en conflicto con el aparato ufw o que lo sobrescriban.

gwideman
fuente
2
iptables es el firewall. También contiene las reglas, porque obviamente lo necesita, pero llamarlo una 'base de datos' es estirarlo un poco ya que el núcleo no proporciona persistencia; alguna herramienta como ufw debe ocuparse de cargarlos en el momento del arranque.
Jan Hudec
@ JanHudec Veo que algunas personas hablan de iptables como si fuera el firewall, pero por lo que puedo decir, netfilter proporciona la funcionalidad del firewall, mientras que iptables proporciona la fecha para netfilter. Me gusta su idea de que iptables solo contiene datos en la memoria y, por lo tanto, la "base de datos" también es engañosa.
gwideman
Personalmente consideraría que netfilter es parte de iptables, pero podría estar equivocado en este buen punto.
Jan Hudec
Zanna editó mi pregunta para ordenar cosas como URL (¡gracias!), Pero ha sustituido "UFW" por todas las instancias de "ufw". Ahora creo que minúsculas es el caso apropiado (como se muestra en manpages.ubuntu.com/manpages/xenial/en/man8/ufw.8.html y wiki.ubuntu.com/UncomplicatedFirewall , pero no estoy interesado en una edición . guerra en este Zanna favor volver a minúsculas si usted compra mis pruebas.
gwideman

Respuestas:

21

ufw es un front-end para netfilter / iptables, el mecanismo de Linux para enrutar y filtrar el tráfico de internet.

ufw es completamente opcional y es posible crear firewall y tablas de enrutamiento directamente usando los comandos de iptables. Algunas personas prefieren la sintaxis de ufw, que se supone que lo hace un poco más fácil.

ufw en sí no es el firewall, es una herramienta para configurar la configuración de netfilter / iptables. Está registrado como un servicio porque debe ejecutarse cada vez que su máquina se inicia. No creo que permanezca residente en la memoria después de haber realizado esta configuración. "reiniciar" el servicio simplemente vuelve a ejecutar sus scripts. No es inusual que las cosas en las distribuciones de Linux se registren como servicios a pesar de que son meras secuencias de comandos que se ejecutan durante el arranque o el apagado sin permanecer residentes en el medio.

Si usa ufw, no puede establecer sus propias reglas de iptables usando sus propios scripts, ya que se sobrescribirán cuando ufw establezca las suyas. Esto también significa que ufw puede entrar en conflicto con otras herramientas que establecen reglas de firewall.

Si sudo ufw statusdevuelve "inactivo", significa que ufw ha sido deshabilitado (y, por ejemplo, no volverá a aplicar ninguna regla al inicio). Debe asegurarse de que ufw esté habilitado sudo ufw enable, aunque también debe configurar reglas para que esto tenga sentido. Si está seguro de haber habilitado ufw pero devuelve "inactivo", podría haber algún otro problema.

Tenga en cuenta que "iniciar" el servicio no habilita ufw, solo activa el script de inicio. Si ufw está deshabilitado cuando se ejecuta el script de inicio, no hará nada.

Puede saber si las reglas de su firewall se han aplicado en algún momento usando iptables directamente:

sudo iptables -L
sudo ip6tables -L
thomasrutter
fuente
1
Nota: Personalmente no uso ufw, uso un paquete llamado netfilter-persistent que le permite escribir reglas nativas de iptables en un archivo y volver a aplicarlas en el arranque. En el arranque, esencialmente hace lo que hace ufw: ejecuta un script de inicio que aplica la configuración. La diferencia es que no está traduciendo desde su propia sintaxis simplificada, simplemente está enviando los comandos de iptables directamente a iptables.
thomasrutter
Un montón de cosas buenas allí. Gracias. Sobre esto: "Si usa ufw, no puede establecer sus propias reglas de iptables usando sus propios scripts, ya que se sobrescribirán cuando ufw establezca las suyas". ¿Ufw elimina activamente todas las reglas existentes de iptables? ¿O simplemente está diciendo que con ufw en la imagen, no puede confiar en que los comandos / reglas de iptables surtirán efecto porque ufw podría sobrescribirlos?
gwideman
También a thomas: "netfilter-persistent"> ¿se relaciona eso con iptables-persistent?
gwideman
Sí, así se llamaba. Si su versión de Ubuntu tiene ambas, entonces el paquete iptables-persistent probablemente solo sea un paquete de transición para dar a las personas de versiones anteriores una ruta de actualización.
thomasrutter
1
Lo siento si te confundí al mencionar resolv.conf, solo lo estaba usando como ejemplo de otra pieza de configuración en Ubuntu que podría ser controlada por algún otro servicio que anule cualquier cambio que hagas directamente. No está conectado
thomasrutter