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.
Puerto | Servicio / Descripción | Configuración ufw | Referencia |
---|---|---|---|
22 | SSH / Secure Shell | ufw allow ssh/tcp | Servidor Ssh |
25 | SMTP / Simple Mail Transfer Protocol | ufw allow smtp/tcp | Servidor SMTP 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 | Servidor Ssh |
993 | IMAPS / Internet Message Access Protocol over TLS/SSL | ufw allow imaps/tcp | 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)