Cómo configurar un firewall en servidores Linux

Para una correcta y segura instalación de un servidor de Internet necesitamos disponer y configurar un firewall. El firewall se encarga de regular el tráfico de entrada y de salida con nuestra máquina, de modo que podamos comprobar que está relacionado con alguno de los servicios que el servidor ofrece, permitiendo o denegando las conexiones de manera selectiva.

Con nuestro firewall podremos decidir por ejemplo que se acepten conexiones para la consulta de una web por HTTP o para las conexiones por SSH, pero que deniegue todos los otros intentos de conexión a servicios distintos, que no se desean ofrecer. Generalmente, el tráfico que nos interesará controlar es el entrante, ya que será desde donde nos lleguen posibles ataques al servidor. El tráfico desde el servidor hacia afuera generalmente no nos debe de preocupar, por lo que generalmente no se suele limitar.

Recordemos que en el panel de Cloudbuilder se ofrece una completa herramienta de configuración de servidores cloud, entre la que encontramos la posibilidad de crear políticas de firewall y asignarlas a nuestros servidores. En este artículo vamos a mostrar cómo realizar esta configuración directamente sobre el sistema operativo Linux, de modo que podríamos usarla en servidores dedicados, o en los servidores cloud si lo preferimos.

Firewall UFW

El firewall UFW (Uncomplicated Firewall) es uno de los más populares de los sistemas Linux, debido a su sencillez de configuración. Está disponible de manera predeterminada en muchas de las distribuciones de Linux. Si no fuera el caso, podríamos instalarlo por medio de los repositorios del sistema, con el comando típico para cada distribución. Por ejemplo en sistemas basados en Debian se haría con el comando siguiente:

sudo apt install ufw

Una vez instalado tenemos una suite de comandos para gestionar el propio firewall y las conexiones del servidor. UFW viene desactivado por defecto, para evitar posibles problemas de acceso al servidor antes de su configuración, por lo que el primer paso consistirá en definir qué tipos de conexión deseamos habilitar, para posteriormente activar el firewall. Podemos comprobar el estado del firewall con el comando «ufw status». En un principio deberíamos ver que está inactivo.

sudo ufw status

Es importante que, antes de activar el firewall, configuremos las conexiones permitidas, habilitando al menos el acceso por SSH, para que no perdamos el acceso al servidor. Para saber qué tipo de conexiones podemos activar o desactivar en el servidor, ejecutamos el comando.

sudo ufw app list

La salida de ese comando nos indicará qué aplicaciones localiza el firewall susceptibles de configurar en nuestro sistema.

Habilitar SSH

Para permitir el acceso al servidor por SSH debemos habilitar las conexiones con la aplicación «OpenSSH«. Esto lo conseguimos con el comando siguiente:

sudo ufw allow "OpenSSH"

De manera predeterminada se permiten conexiones tanto para IPV4 como para IPV6. Los puertos de conexión habilitados serán los predeterminados para estos tipos de conexión (en SSH el puerto 22).

Habilitar tráfico HTTP al servidor web

De manera similar, podemos habilitar el tráfico de HTTP para el acceso al servidor web instalado. En nuestro caso, que tenemos Apache en el servidor, realizaríamos la configuración habilitando la mencionada aplicación.

sudo ufw allow "Apache Full"

La aplicación «Apache Full» nos permite el acceso por HTTP por los puertos comunes de HTTP (80) y HTTPS (443).

Activar el firewall

Una vez realizada la configuración, podemos activar ya el firewall, con el comando «ufw enable».

sudo ufw enable

Nos advertirá que las conexiones por SSH pueden ser interrumpidas, pero podemos estar tranquilos porque las acabamos de habilitar con los comandos anteriores. Por último, podemos comprobar la configuración de UFW con el comando «ufw status». Ahora deberíamos ver que el firewall se encuentra activo y además podremos obtener un listado de aplicaciones habilitadas.

sudo ufw status

Eso es todo. La configuración del firewall se ha realizado correctamente y ya se encuentra activo en nuestro servidor para incrementar la seguridad.