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

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.Sugerencia

ufw disable
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 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.

PuertoServicio / DescripciónConfiguración ufwReferencia
22SSH / Secure Shellufw allow ssh/tcpServidor Ssh
25SMTP / Simple Mail Transfer Protocolufw allow smtp/tcpServidor SMTP
Servidor SMTP com autenticación (sólo si se ha configurado con soporte SASL)
443HTTPS / Hypertext Transfer Protocol over TLS/SSLufw allow https/tcpServidor Ssh
993IMAPS / Internet Message Access Protocol over TLS/SSLufw allow imaps/tcpServidor 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)