Configurar firewall UFW en Ubuntu

Como Configurar el Firewall UFW en Ubuntu. Todo lo que Necesitas Saber

En el post de hoy te hablare de UFW, una de las alternativas mas simples a la hora de habilitar el cortafuegos del Kernel Linux en Ubuntu y en otras distros derivadas. UFW es un pequeño script creado por los desarrolladores de Ubuntu con el fin de simplificar casi hasta el máximo extremo la gestión de Netfilter/Iptables, el cortafuegos presente en núcleo de Linux.

UFW apareció, si mal no recuerdo, en Ubuntu 8.04 (como pasa el tiempo…), y de momento, ha ido estado disponible en todas las versiones posteriores a ésta. Si a llevas algunos años con Linux, probablemente ya lo conocerás más que de sobra, pero si no, aquí tienes una guía sobre como usarlo.

En este post verás:

Un Poco Sobre UFW

UFW viene ya pre-instalado en Ubuntu, y creo que también en Debian. Sin embargo, en ambos casos viene deshabilitado por defecto (supongo que lo justican al venir Ubuntu con los puertos cerrados por defcto).

Antes de pasar a la acción, conviene aclarar que el uso de UFW es puramente desde la línea de comandos, si bien como verás la sintaxis básica es muy simple e intuitiva.

NOTA: Si aun no estás muy habituado a trabajar con la línea de comandos y deseas aprender desde el principio, puedes consultar esta guía de varios artículos sobre como dar tus Primeros pasos con la Terminal de Linux.

Así que, sin más, veamos cuales son los principales comandos para habilitarlo, deshabilitarlo, comprobar su estado, abrir o cerrar puertos, etc.

Como Habilitar y Configurar UFW

Lo primero que puedes hacer es comprobar si UFW esta activo o no. Aunque ya te adelanto que, a no ser que lo hays modificado previamente, en Ubuntu estará deshabilitado (almenos hasta ahora siempre ha sido así). Para ello, tan solo abre la Terminal y teclea la siguiente línea:

$ sudo ufw status
Estado: inactivo

Si no lo has habilitado antes, lo más probable es que el resultado sea como el que ves ariba. Si te encuentras en ese estado, habilitar UFW por primera vez es tan sencillo como teclear en la terminal la primera línea que te muestro abajo:

$ sudo ufw enable
El cortafuegos está activo y habilitado en el arranque del sistema

Como puedes ver, con esto ya tendrás activado y habilitado el cortafuegos en el arranque del sistema. En cualquier momento puedes volver a comprobar el estado para verificar que realmente sea así:

$ sudo ufw status
Estado: activo

Fantástico. Con esto ya tenemos lo que queríamos. Sin embargo, veamos como establecer la política por defecto. En general, la mejor política de un firewall es la de denegar todas las conexiones entrantes por defecto, y a partir de ahí, y en caso de que sea estrictamente necesario, establecer las excepciones que te convengan dependiendo de cada caso.

En teoría, por defecto UFW ya debería venir con la política por defecto de denegar todas las conexiones entrantes. Sin embargo, si quieres asegurarte de que así sea, tan solo teclea:

$ sudo ufw default deny
La política incoming predeterminada cambio a <<deny>>
(asegúrese de actualizar sus reglas consecuentemente)

Y a continuación, puedes reiniciar el firewall deshabilitando y habilitando de nuevo UFW:

$ sudo ufw disable
El cortafuegos está detenido y deshabilitado en el arranque del sistema
$ sudo ufw enable
El cortafuegos está activo y habilitado en el arranque del sistema

Ahora ya tienes activado el firewall Iptables en el kernel de Linux, y configurado para denegar todo el tráfico entrante por defecto, lo que significa que desde el exterior, tu sistema operativo mantendrá todos los puertos invisibles e inaccesibles.

Como Abrir y Cerrar Puertos

Si tu PC ofrece algún servicio en el exterior, o utilizas algún servicio de compartición de archivos con dispositivos de la misma red, seguramente necesitaras mantener ciertos puertos accesibles por tal de posibilitar el servicio requerido. En este caso, y una vez conozcas que puerto o puertos necesitas tener visibles desde el exterior, para habilitar un puerto es tan sencillo como seguir la siguiente secuencia:

$ sudo ufw allow <número de puerto>

Donde deberás sustituir <número de puerto> por el puerto que deseas abrir. El comando puedes repetirlo para todos los puertos que necesites mantener abiertos. Es importante, en ese sentido, abrir solo aquellos puertos que sean estrictamente necesarios.

Si en un momento dado quieres consultar cuales son los puertos que tienes abiertos, con los comandos que tienes en el apartado Comprobar estado y política por defecto verás un listado de todas las reglas adicionales que has ido aplicando.

Si en un momento dado quieres cerrar un puerto que ya no requiere estar abierto, puedes hacerlo de un modo similar con la siguiente sentencia:

$ sudo ufw deny <número de puerto>

Comprobar Estado y Política por Defecto

Para comprobar el estado de UFW, así como el conjunto de reglas que se están aplicando,  como puertos permitidos, puedes seguir la siguiente secuencia:

$ sudo ufw status
Estado: activo

Sí además de esto, quieres que se muestre la política por defecto, puedes utilizar la siguiente variante:

$ sudo ufw status verbose
Estado: activo
Acceso: on (low)
Predeterminado: deny (entrantes), allow (salientes)
Perfiles nuevos: skip

La salida mostrara un formato similar al que ves por pantalla, donde para ver la política aplicada debes fijarte en el apartado Predeterminado. En este caso se está aplicando la política de denegar todo el tráfico entrante, pero permitir el saliente.

¿Como se que el Firewall está Bloqueando los Puertos?

Una vez habilitado UFW, es interesante comprobar desde el exterior, si realmente está actuando correctamente filtrando todos los puertos del sistema, o permitiendo solo el trafico por los puertos que se han habilitado.

Seguramente hay muchas maneras de comprobarlo, incluso puedes encontrar tests online que te indican el estado de los puertos de tu sistema con gran detalle. El problema es que en muchos casos, al ser un escaner desde fuera de tu red, el muchos casos el resultado vendrá determinado por el cortafuegos de tu router.

Una buena manera de conocer el estado de los puertos de tu sistema, sin que interfiera el router, es utilizando la herramienta Nmap desde dentro de tu red interna. En este post tienes explicado como.

GUFW: Como Utilizar UFW desde una Interfaz Gráfica

Pues si, aunque UFW es una aplicación de consola, tambien se ha desarrollado una interfaz gráfica denominada GUFW. Esta si que no viene pre-instalada en Ubuntu, pero instalarlo es tan sencillo como abrir la linea de comandos y teclear:

$ sudo apt-get install gufw

Con GUFW, puedes aplicar las mismas opciones, pero mediante una cómoda interfaz gráfica de gestión. El resultado es exactamente el mismo, ya que GUFW no deja de ser un front-end de UFW escrito en Python.

Es cierto que en sus primeras versiones la interfaz era extremadamente simplista, pero es justo mencionar que en cada version ha ido añadiendo funcionalidades y mejoras de forma contínua, por lo que si eres de los que te gusta gestionar el sistema desde la comodidad y la claridad de una buena interfaz gráfica, te recomiendo que heches un vistazo a la web oficial de proyecto (enlazada arriba).

Para más Seguridad…

Disponer de un firewall correctamente configurado para denegar todas las conexiones entrantes nos asegura disponer de una primera línea de defensa, pero hoy en día los ataques son más avanzados, ya que sin ir más lejos, cualquier Windows moderno ya viene con cortafuegos habilitado de serie, y bastante completo.

Por lo tanto, si bien es importante, es una medida de protección necesaria pero no suficiente. En GNU/Linux no estaría de más valorar si instalar un antivirus como ClamAV, o también hacer uso de Chkrootkit y Rkhunter para detectar la presencia de rootkits o procesos ocultos en tu sistema.

Además, también sería importante tratar de filtrar las conexiones salientes a nivel de aplicación, algo que ofrecen muchos firewalls modernos en Windows, y que en Linux es un poco más complicado. Eso, si acaso, lo reservo para un futuro post…

Bueno, hasta aquí habrás podido consultar las opciones más importantes para pelearte con UFW, y que siendo un usuario de Escritorio, con más probabilidad necesitarás utilizar. Ahora bien, si quieres ampliar conocimiento, te recomiendo muchísimo que consultes la guía completa de la Comunidad de Ubuntu.

Ah, y por si quieres  probar opciones diferentes, en otro post publiqué un tutorial similar sobre como configurar un firewall en Linux con el script Arno Iptables firewall, disponible también en los repositorios oficiales de Debian y Ubuntu a un simple apt-get install de distancia.

Espero que te haya parecido una guía útil e interesante, y si quieres compartir más opciones, me encantará leerte en los comentarios;)

Anuncios

13 comments

  1. Lorenzo Antonio · abril 23

    Gracias!!

    Me gusta

  2. Dante · enero 28, 2016

    Hola genial toda la info k das me sirvió de mucho (soy nuevo con lo de ubuntu) y la verdad k he quedado fascinado con todo lo k se aprende, gracias

    Me gusta

    • Yuri · febrero 20, 2016

      Muchisimas gracas Dante, es un placer leer comentarios así. Tienes mucha razón, si uno le pone ganas nunca dejas de aprender;)
      Saludos y hasta pronto:)

      Me gusta

  3. Angel · diciembre 19, 2015

    Gracias por ponernos las cosas más fáciles.

    Me gusta

  4. braulio · octubre 22, 2015

    ami cuando pongo el comando para ver el estado si esta activo o no me dice orden no encontrada por que????

    Me gusta

    • Oriol · noviembre 1, 2015

      Hola Braulio,
      En que distro GNU/Linux lo intentas utilizar?

      Me gusta

  5. Marko Ruiz · julio 14, 2015

    muchas gracias por tu informacion muy clara me ayudo muchisimo

    Me gusta

  6. cmilton · marzo 20, 2015

    puedo utilizarlo como cortafuegos para una red?? o es solo para un usuario final??

    Me gusta

    • Oriol F · marzo 28, 2015

      Hola, perdona por tardar tanto en contestar.
      Por lo que se, es solo un firewall de cliente, es decir para usuario final.
      Además las opciones que ofrece de configuración son bastante reducidas. Es muy util, por ejemplo, para un Ubuntu a la hora de denegar todas las conexiones entrantes, pero no va mucho más allá.
      Para una red seguro que hay mejores opciones. Te paso este enlace por si quieres hecharle un ojo:

      http://www.ajpdsoft.com/modules.php?name=News&file=article&sid=465

      Si no también puedes optar por un firewall de hardware.

      Me gusta

  7. Fede · febrero 13, 2015

    Muchas gracias. Un post muy claro y práctico.

    Me gusta

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s