Cómo instalar el firewall UFW en Ubuntu 18.04 LTS

En esta ocasión vamos a ver cómo instalar el firewall UFW en Ubuntu 18.04 LTS Bionic Beaver paso a paso, con lo que protegerás tu servidor o VPS Ubuntu de forma sencilla y haciendo honor a su nombre: Uncomplicated FireWall.

Antes de instalar el firewall UFW en Ubuntu 18.04

Para poder completar esta guía de instalación del firewall UFW en Ubuntu 18.04 necesitarás satisfacer unos pocos requerimientos básicos:

  • Una máquina Ubuntu 18.04 LTS Bionic Beaver actualizada.
  • Acceso a línea de comandos con un usuario con permisos de sudo.
  • Conexión a Internet.
  • Otras máquinas en la red para realizar pruebas.

Ve abriendo tu terminal de consola favorita y pongámonos manos a la obra.

Cómo instalar el firewall UFW en Ubuntu 18.04

Si estás pensando en instalar el firewall UFW en Ubuntu 18.04 debes tener en cuenta que suele instalarse con la distribución, aunque normalmente está inactivo. Puedes comprobarlo con el comando sudo ufw status:

como instalar y configurar el firewall ufw en ubuntu 18.04 lts bionic beaver

En el hipotético caso en el que tu instalación de Ubuntu 18.04 no incluya UFW podrías descargarlo desde los repositorios de la distribución con el comando apt:

~$ sudo apt install -y ufw

Cómo configurar UFW en Ubuntu 18.04

Para configurar el firewall UFW en Ubuntu 18.04 no hace falta editar archivos de configuración, bastará con ir lanzando sencillos comandos en la terminal.

Políticas por defecto

Antes de activar UFW  en Ubuntu 18.04 es necesario establecer las políticas por defecto, que suelen ser habitualmente las mismas en cualquier sistema. Empezaremos con la política por defecto para las conexiones entrantes:

~$ sudo ufw deny incoming

Con este comando establecemos que todas las conexiones entrantes sean rechazadas, que es el paso lógico, ya que iremos autorizando uno a uno los servicios a los que nos interesa permitir las conexiones.

Continuamos con la política de conexiones salientes:

~$ sudo ufw default allow outgoing

Con esto permitimos por defecto las conexiones salientes, con lo que nuestros servicios podrán acceder libremente a Internet (actualizaciones y descargas de paquetes, servidores de hora en Internet, navegación web, etc.). Sería complejísimo y tedioso tener que ir permitiendo una a una estas conexiones.

Aún no vamos a inciar el firewall, vamos a configurarlo un poco más.

Cómo añadir reglas a UFW en Ubuntu 18.04

Si estás haciendo este trabajo conectado en una sesión SSH deberías permitir el servicio SSH, ya que si activas el firewall y se cierra accidentalmente la conexión, no podrías volver a conectar de forma remota.

~$ sudo ufw allow ssh

En este caso hemos añadido una regla a UFW permitiendo un servicio por su nombre, pero los servicios cuyo nombre no reconozca UFW pueden ser añadidos indicando el número de puerto y el protocolo (TCP o UDP).

Por ejemplo, en el caso del servicio SSH que acabamos de permitir, sería equivalente haberlo hecho así:

~$ sudo ufw allow 22/tcp

En general, añadir una regla sobre puertos es permitir (allow) o denegar (deny) un servicio o un número de puerto con su protocolo (tcp o udp). Si no indicas el protocolo se añaden ambos.

Cómo borrar reglas de UFW en Ubuntu 18.04

Podrías eliminar una regla insertando el comando delete en la regla original. Por ejemplo, si quisiéramos eliminar la regla con la que permitimos el servicio SSH podríamos hacerlo así:

~$ sudo ufw delete allow ssh

Se procedería igualmente trabajando con números de puerto y protocolo.

Cómo activar el firewall UFW en Ubuntu 18.04

Si ya has añadido reglas para distintos servicios, llega la hora de activar UFW. Si estás conectado por SSH asegúrate de haber añadido la regla que permite las conexiones. Activamos UFW de esta forma:

~$ sudo ufw enable
El comando puede interrumpir las conexiones ssh existentes. ¿Continuar con la operación (s|n)? s
El cortafuegos está activo y habilitado en el arranque del sistema
~$

Observa que UFW avisa sobre las conexiones SSH (lo haría incluso aunque estuvieras conectado en consola local). A día de hoy nunca se ha interrumpido una conexión existente durante la activación, pero conviene no arriesgarse.

A partir de este momento UFW está en funcionamiento y habilitado para su inicio automático en cada arranque de Ubuntu 18.04.

Estado del firewall UFW

Puedes comprobar fácilmente el estado de UFW en Ubuntu 18.04 y las reglas que tiene cargadas con el parámetro status:

~$ sudo ufw status
Estado: activo

Hasta                      Acción      Desde
-----                      ------      -----
22/tcp                     ALLOW       Anywhere
22/tcp (v6)                ALLOW       Anywhere (v6)

En este caso vemos que el firewall está activo y la lista de reglas aplicadas, ordenadas por protocolos IPv4 e IPv6.

Puedes obtener el resultado anterior pero con las reglas numeradas añadiendo el parámetro numbered:

~$ sudo ufw status numbered
Estado: activo

     Hasta                      Acción      Desde
     -----                      ------      -----
[ 1] 22/tcp                     ALLOW IN    Anywhere
[ 2] 22/tcp (v6)                ALLOW IN    Anywhere (v6)

Esto será de mucha utilidad más adelante.

Por brevedad, durante el resto del tutorial se omitirá la parte del listado relativa al protocolo IPv6.

Reglas avanzadas

Puedes construir reglas más avanzadas. Por ejemplo si quieres bloquear una dirección IP de la que has observado un comportamiento molesto o malicioso es tan fácil como añadir una regla:

~$ sudo ufw deny from 192.168.0.109

La aplicación es inmediata, y en teoría no se podría conectar a ningún servicio desde la dirección bloqueada. Sin embargo, si intentas una conexión SSH desde esa dirección IP sí que será posible, ¿qué está ocurriendo? Veamos la lista de reglas:

~$ sudo ufw status numbered
Estado: activo

     Hasta                      Acción      Desde
     -----                      ------      -----
[ 1] 22/tcp                     ALLOW IN    Anywhere
[ 2] Anywhere                   DENY IN     192.168.0.109

El problema es que UFW interpreta las reglas desde la más reciente (número de orden mayor) a más antigua (número de orden menor), o desde la parte inferior del listado, si lo prefieres, hacia la parte superior.

En este ejemplo UFW empieza con la política por defecto (denegación a todo el mundo para todos los puertos), después la regla [2] niega el acceso total a la dirección IP especificada (lo que es una redundancia), para a continuación abrir el puerto 22/TCP a todo el mundo, regla [1]. Vamos a arreglar esto.

Eliminar reglas por su número de orden

Podrías eliminar la regla que bloquea la dirección IP como ya vimos antes, de esta forma:

~$ sudo ufw delete deny from 192.168.0.109

Pero si has mirado su número de orden es más rápido y sencillo esto:

~$ sudo ufw delete 2
Borrando:
 deny from 192.168.0.109
¿Continuar con la operación (s|n)? s
Regla eliminada

Además de cómodo se pide confirmación para evitar errores.

Añadir reglas en una posición concreta de la pila de UFW

Ahora volveremos a insertar la regla que bloquea la dirección IP, pero indicando una posición en la pila de reglas:

~$ sudo ufw insert 1 deny from 192.168.0.109

Si comprobamos el estado de UFW veremos la nueva pila de reglas:

Estado: activo

     Hasta                      Acción      Desde
     -----                      ------      -----
[ 1] Anywhere                   DENY IN     192.168.0.109
[ 2] 22/tcp                     ALLOW IN    Anywhere

Como ya sabes de qué forma interpreta UFW su pila de reglas, sabes que empezará permitiendo a todo el mundo el acceso al puerto 22/tcp para a continuación prohibir cualquier tipo de conexión a la dirección IP bloqueada.

Permitir servicios para direcciones concretas

Puedes construir reglas más avanzadas. Imagina que tienes un servicio MySQL con el que sueles trabajar. Podrías hacerlo iniciando sesión remota con SSH y trabajando con el cliente de consola mysql. Pero si prefieres usar un cliente gráfico como MySQL Workbench entonces el método sencillo es configurar MySQL para que permita las conexiones remotas y abrir el servicio en UFW.

El problema es que usuarios maliciosos saturarán el servidor con conexiones intentando acceder por fuerza bruta. Pero, ¿y si abres el puerto solamente para tu dirección IP? Partiendo de la situación inicial:

Estado: activo

Hasta                      Acción      Desde
-----                      ------      -----
22/tcp                     ALLOW       Anywhere

Podrías hacerlo así:

~$ sudo ufw allow from 192.168.0.109 to any port mysql

La pila de reglas quedaría así:

Estado: activo

Hasta                      Acción      Desde
-----                      ------      -----
22/tcp                     ALLOW       Anywhere
3306                       ALLOW       192.168.0.109

instalacion y configuracion del cortafuegos ufw en ubuntu 18.04 lts bionic beaver

Teniendo en cuenta que la política por defecto impide las conexiones lo que tenemos aquí es que a continuación se permiten las conexiones desde una dirección IP concreta al puerto MySQL y a continuación se permite el acceso a todo el mundo al servicio SSH. Perfecto, no hay contradicciones con repecto a lo que deseamos, y de hecho funciona perfectamente.

Si no tienes dirección IP fija puedes acceder por SSH al servidor Ubuntu 18.04, configurar UFW para permitir tu dirección IP actual para el servicio que te interese, e ir eliminando las reglas para las direcciones IP antiguas.

Conclusión

A estas alturas ya sabes cómo instalar y configurar el firewall UFW para Ubuntu 18.04 y te habrás dado cuenta lo sencillo que resulta proteger tu servidor o VPS Ubuntu estableciendo las reglas básicas. Y todo ello rápida y fácilmente, ya no hay excusa para no activar el firewall.

Aun así, si te ha quedado alguna duda, pregunta, o tienes sugerencias, etc. puedes dejar un comentario.

¡Apoya comoinstalar.me!

Si te ha servido esta guía de instalación y configuración del firewall UFW en Ubuntu 18.04 LTS Bionic Beaver para ayudar a proteger tu servidor o VPS y quieres agradecérnoslo, la más mínima aportación ayuda al mantenimiento de este sitio y elaboración de más guías, y puedes hacerlo dejando una simple propina de 1 $ desde PayPal:

¡Gracias!

Valora esta entrada

5/5 - (1 voto)

Deja un comentario

Ads Blocker Image Powered by Code Help Pro

¡Detectado un bloqueador de publicidad!

Hemos detectado que está usando extensiones para bloquear anuncios prublicitarios. Por favor, ayúdenos desactivando dicho bloqueador para este sitio web. ¡Gracias!