Uso básico del firewall local en Ubuntu – UFW

00¡Buen día! Linux (el kernel) incorpora un firewall con el cual se pueden hacer muchas cosas interesantes a nivel de protección de un equipo, pero es bastante difícil de entender… hablo del iptables. Es difícil en el sentido de que la curva de aprendizaje del mismo, para manejarlo bien, es bastante más grande que el firewall de Windows (por poner un ejemplo). En nuestro caso (para efectos de ésta entrada), vamos a instalar y utilizar un firewall desarrollado por Ubuntu bastante sencillo, el cual se llama ufw (Uncomplicated Firewall); éste fue diseñado para ser fácil de usar y utiliza la línea de comandos para configurar las iptables usando un pequeño número de comandos simples.

Éste firewall (ufw) también cuenta con un interfaz gráfica o GUI para los que lo prefieran, el cual se llama Gufw. Para nuestro caso, veremos cómo utilizar ufw de forma básica mediante línea de comando. Creo que por defecto ya esta instalado y solo hace falta activarlo, pero si no se tiene instalado, ingresamos:

sudo apt install ufw

Ver el estado del firewall, activar o detenerlo

Para ver el estado de UFW:

sudo ufw status

Antes de ver la activación o desactivación del firewall, mencionar que si estamos conectados en remoto (vía ssh) al servidor que queremos proteger y lo activamos, probablemente se nos caerá la conexión, por cuanto es mejor iniciar directamente desde el servidor o crear la regla respectivas antes de activarlo.

Para activar ufw:

sudo ufw enable

Para detenerlo:

sudo ufw disable

Si queremos ver el estado detallado del firewall, ingresamos:

sudo ufw status verbose

Se nos presentará algo parecido (dependiendo de las reglas que se tengan configuradas). ¡Éste es un ejemplo!:

01

Para éste ejemplo, se nos muestra el estado de ufw (Activo), el estado del log, la política por defecto del tráfico de entrante, saliente y el enrutamiento (en la imagen se muestra que el tráfico entrante esta bloqueado, el saliente permitido y esta deshabilitado el enrutamiento) y, finalmente, nos muestra las reglas que se han creado… para el ejemplo anterior, se permite el tráfico de entrada desde cualquier parte (Internet, red interna, etc.) hacia el puerto 22 (ssh), 80 (http) y otros de nuestro servidor, tanto para IPv4 como para IPv6.


Establecer la política de diseño de firewall

La política de diseño de firewall es la que especifica cómo un firewall restringirá el acceso. Los firewalls implementan básicamente dos políticas de diseño:

  1. Política permisiva. Permitir el acceso a cualquier servicio a menos que se especifique explícitamente lo contrario.
  2. Política restrictiva. Denegar cualquier servicio a menos que se especifique explícitamente lo contrario.

Normalmente, para el tráfico de salida, se utiliza de base la política permisiva y, para el tráfico de entrada, se utiliza la política restrictiva. Una vez definidas éstas políticas por defecto, se pueden crear todas las reglas adicionales que se requieran.

Entonces, para bloquear todo el tráfico de entrada hacemos:

sudo ufw default deny incoming

y para permitir todo el tráfico saliente:

sudo ufw default allow outgoing

Esto es lo recomendado (por cuestión de seguridad), pero igual… pueden jugar con el deny (denegar) o el allow (permitir) en el tráfico de entrada (incoming) y en el tráfico saliente (outgoing) como ustedes quieran.


Crear reglas

Las reglas son indispensables en el firewall para poder bloquear o permitir conexiones y transmisiones de datos entre equipos conectados en red (intranet, internet, etc.); Para crear reglas en ufw, lo podemos hacer básicamente de dos formas: por nombre de servicio o por número de puerto / protocolo de transporte (TCP-UDP).

Regla por nombre de servicio. Permitirá a cualquiera en Internet conectarse a dispositivos en el LAN usando http. Si no se especifica el desde (from) y el hacia (to), por defecto se entiende que se trata desde cualquier lugar (intranet, internet, etc.) hacia nuestro servidor (si no se especifica algo más).

sudo ufw allow www

Regla por número de puerto (puerto por defecto de http). En éste caso, vamos a denegar el tráfico.

sudo ufw deny 80/tcp

Notar que podemos especificar el protocolo de transporte que se requiere… podría ser digamos tcp o udp.

Los nombres de los servicios que se pueden usar, están dentro del archivo /etc/services , aunque también ufw tiene unos nombres de servicios que también pueden servir de guía. Se puede consultar ingresando:

sudo ufw app list

Estas reglas son básicas, pero también podemos crear reglas más específicas o avanzadas, como para permitir/denegar tráfico desde o hacia una IP, IPs o red específica.

En el siguiente ejemplo, se permite el tráfico desde la red 192.168.192.0/24 hacia nuestro servidor (127.0.0.1), específicamente a la aplicación www (puerto 80/TCP).

sudo ufw allow from 192.168.192.0/24 to 127.0.0.1 app www

Se puede usar rangos de IPs…

sudo ufw allow 1000:2000/tcp

Podemos permitir el acceso desde una IP específica:

sudo ufw allow from 192.168.192.251

Borrar reglas

Se usa el parámetro «delete» seguido de la regla que se quiere eliminar, para borrar una regla. En nuestro caso, eliminaremos varias reglas que se crearon de ejemplo así:

sudo ufw delete allow www
sudo ufw delete deny 80/tcp
sudo ufw delete allow 1000:2000/tc

O más fácil aún (a mi parecer….) es que eliminemos la regla específica por medio de su número jerárquico. Para ver los números de cada regla, hacemos así:

sudo ufw status numbere

Ejemplo:

02

Entre corchetes [] podemos ver el número de regla; de ésta manera, podemos eliminar una regla específica:

sudo ufw delete 1

Según la línea de comando anterior, se eliminará la regla 1 (sobre el puerto 22).

Limpiar la configuración

Si nos hemos equivocado todo y queremos volver a configurar todo xD lo podemos hacer así:

sudo ufw reset

Con esto, se eliminarán todas las reglas que hemos creado. ¡Cuidado!.

¡Eso es todo amigos!. ¡Saludos!

Comentarios por Facebook

comentarios

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*