Volver a Cortafuegos

UFW

La instalación de la UFW (abreviatura de “Uncomplicated Firewall” o “cortafuegos sin complicaciones”) le permite definir políticas de seguridad de la red, la creación de limitaciones o permisos para acceder a diferentes servicios o aplicaciones.

Instalación

root@server:~# apt-get install ufw

Configuración

AtenciónLa configuración del cortafuegos incorrecta puede bloquear completamente el acceso remoto a un servidor. Antes de introducir un comando comprobar que lo que ha escrito es exactamente lo que quiere y los posibles “efectos secundarios” no deseados!

La configuración de UFW se realiza a través de la línea de comandos.

La configuración predeterminada de UFW permite a nuestro servidor para iniciar las comunicaciones con el exterior (DEFAULT_OUTPUT_POLICY=“ACCEPT”), pero ignora cualquier intento de acceso al servidor desde fuera (DEFAULT_INPUT_POLICY=“DROP”). Esta configuración impide, por ejemplo, el acceso a un servidor remoto.

En primero lugar debe ser garantizado el acceso al servidor remoto por ssh:

root@server:~# ufw allow ssh/tcp

También es necesario activar el registro de eventos:

root@server:~# ufw logging on

Por último, el cortafuegos debe estar activado:

root@server:~# ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

A partir de este momento sólo se puede acceder al servidor de forma remota utilizando el protocolo ssh que utiliza el puerto de acceso remoto 22. Será negada a cualquier otro servicio disponible en el servidor.

SugerenciaSiempre se puede deshabilitar el UFW com el comando ufw disable.
También puede eliminar todas las reglas con el comando ufw reset.

Verificación

En cualquier momento usted puede comprobar el estado del cortafuego:

root@server:~# ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing)
New profiles: skip
 
To                         Action      From
--                         ------      ----
22/tcp                     ALLOW IN    Anywhere
22/tcp                     ALLOW IN    Anywhere (v6)

En este caso, el cortafuegos sólo acepta conexiones desde el exterior en el puerto 22 (protocolo ssh).

Ejemplos de configuración

Sólo a modo de ejemplo se enumeran algunas configuraciones posibles para un servidor. Úselos bajo su propio riesgo: declino toda responsabilidad por su uso. Es la advertencia!

Para más detalles sobre los ajustes sugeridos, vea 2.1.1 Diagrama de la Red.

Ejemplo 1: abierto a todas las redes de servicios (Internet e Intranet)

Estos servicios pueden aceptar conexiones desde cualquier dirección.

Puerto Servicio / Descripción Configuración ufw Referencia
22 SSH / Secure Shell ufw allow ssh/tcp 2.3.2 Servidor Ssh
25 SMTP / Simple Mail Transfer Protocol ufw allow smtp/tcp 5.2.1 Servidor SMTP
5.2.2 Servidor SMTP com autenticación (sólo si se ha configurado con soporte SASL)
443 HTTPS / Hypertext Transfer Protocol over TLS/SSL ufw allow https/tcp 2.3.2 Servidor Ssh
993 IMAPS / Internet Message Access Protocol over TLS/SSL ufw allow imaps/tcp 5.1.1 Servidor IMAP/IMAPS

Ejemplo 2: servicios abiertos sólo a la red interna (Intranet)

Esta configuración sólo acepta conexiones desde el mismo segmento de red que el servidor (192.168.1.0/24), tal como en el caso de una red interna o Intranet. La red debe ser protegida desde el exterior a través de otro cortafuegos.

root@server:~# ufw allow from 192.168.1.0/24
Rules updated

Ejemplo 3: Configuración Mixta (Intranet e Internet)

En este ejemplo, usted puede tener acceso a todos los servicios de la red interna (192.168.1.0/24), pero desde el exterior sólo se puede acceder a los servicios ssh y https:

root@server:~# ufw allow ssh
Rules updated
Rules updated (v6)
root@server:~# ufw allow https
Rules updated
Rules updated (v6)
root@server:~# ufw allow from 192.168.1.0/24
Rules updated

El perfil de la configuración es como sigue:

root@server:~# ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing)
New profiles: skip
 
To                         Action      From
--                         ------      ----
Anywhere                   ALLOW IN    192.168.1.0/24
22                         ALLOW IN    Anywhere
80                         ALLOW IN    Anywhere
443                        ALLOW IN    Anywhere
22                         ALLOW IN    Anywhere (v6)
80                         ALLOW IN    Anywhere (v6)
443                        ALLOW IN    Anywhere (v6)

Referencias