UFW, configura fácilmente tu firewall con iptables

(Tomado de websecurity.es)

Para mucha gente, entre la que me incluyo, suele ser complicado entender todas las reglas de iptables que se suelen utilizar con para configurar un firewall en Linux. Por lo que en este artículo veremos como usar toda la potencia de las iptables pero sin tener que conocer con exactitud todas sus reglas.

UFW, Uncomplicated Firewall, es una interfaz de línea de comando que consiste en un pequeño número de órdenes simples que nos permite configurar las iptables de nuestro firewall. También dispone de una versión GUI conocida como Gufw, GUI for Uncomplicated Firewall, que nos facilita todavía más la tarea, y que está disponible para casi todas las distribuciones Linux.

Antes de comenzar a añadir reglas es indicar el comportamiento por defecto que tendrá nuestro firewall, lo más recomendable es denegar todo el tráfico entrante, y permitir el tráfico saliente, para ello sólo tenemos que ejecutar los siguiente comandos:

$ sudo ufw default deny incoming
$ sudo ufw default allow outgoing

Añadir reglas

A la hora de añadir una regla con UFW, tenemos la posibilidad de hacerlo de dos maneras distintas por el nombre del servicio o por identificando del puerto, IP, … Por ejemplo, para abrir el SSH, puerto 22, podemos usar cualquiera de los siguientes comandos:

$ sudo ufw allow ssh 
$ sudo ufw allow 22

Además de poder usar los nombres de los servicios que tenemos en /etc/services, UFW dispone de una lista de los nombres de las aplicaciones más comunes, como Apache, OpenSSH, Lighttpd, Samba,… Para ver todos los nombres de las aplicaciones que están disponibles en UFW, podéis usar el comando:

$ sudo ufw app list

UFW también nos permite añadir reglas más complejas, como por ejemplo limitar el rango de IPs desde las que se puede acceder a un aplicación. En el siguiente ejemplo sólo se permitiría acceder desde el rango de direcciones 10.0.0.0/8 o viceversa.

$ sudo ufw allow from 10.0.0.0/8 to 127.0.0.1 app ssh
$ sudo ufw allow to 10.0.0.0/8 from 127.0.0.1 app ssh

Otro de los puntos fuertes de UFW es que permite elegir si queremos aplicar la regla sobre TCP o sobre UDP. Por ejemplo, para abrir el puerto de MySQL sólo para peticiones TCP o para un rango de puertos concretos, tendríamos que poner:

$ sudo ufw allow 3306/tcp
$ sudo ufw allow 3306:4000/tcp

Aunque como ya hemos comentado también podríamos simplemente teclear:

$ sudo ufw allow mysql

Borrar reglas

Para borrar una regla es incluso más fácil que para añadir, por ejemplo para borrar la regla que hemos añadido antes para ssh, simplemente tenemos que escribir:

$ sudo ufw delete allow shh

Y para borrar todas las reglas sólo hace falta ejecutar el siguiente comando:

$ sudo ufw reset

Activar/Desactivar el firewall

Para activar el firewall y/o refrescar las reglas, se puede hacer con el siguiente comando. Hay que destacar que cada vez que añadas una regla tienes que ejecutar este comando para actualizar las reglas que están en ejecución.

$ sudo ufw enable

Mientras que para desactivar el firewall, tienes que usar el siguiente comando:

$ sudo ufw disable

Comprobar la configuración del firewall

Una vez ya tienes configurado y activado el firewall puedes comprobar las reglas que has añadido usando el comando que aparece a continuación, al cual si añadimos la palabra verbose no mostrará información más detallada.

$ sudo ufw status verbose

Script de configuración

A continuación puedes ver un pequeño script para configurar un servidor web muy básico, pero es simplemente un ejemplo, es necesario que cada uno aplique las reglas que necesite para configurar su firewall a su medida.

#!/bin/sh

# Desactivar el firewall
$ ufw disable

# Reseatamos todas las reglas
$ ufw reset

# Denegamos el tráfico de entrada, y permitimos el de salida
$ ufw default deny incoming
$ ufw default allow outgoing

# Abrimos el puerto para el SSH
$ ufw allow ssh

# Abrimos el puerto para la www
$ ufw allow www

# Abrimos el puerto para el email
$ ufw allow 25/tcp

# Abrimos el puerto para MySQL
$ ufw allow 3306/tcp

# Abrimos el puerto para el protocolo ntpd
$ ufw allow ntp

# Activamos el firewall
$ ufw enable

# Por último listamos las reglas que hemos añadido
$ ufw status verbose
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s