
Un firewall es responsable de monitorear el tráfico entrante y saliente a través de una red. El proceso de monitoreo está parametrizado por los requisitos de seguridad del sistema que se supone que debe defender el firewall.
Ansible tiene un módulo llamado módulo UFW que permite a los usuarios administrar los firewalls en hosts remotos. ¡Veamos qué es este módulo y cómo funciona!
¿Qué es el módulo UFW?
Antes de llegar al módulo UFW, debemos echar un vistazo a lo que realmente es UFW. UFW son las siglas de Uncomplicated Firewall, una aplicación fácil de usar diseñada para simplificar la administración del firewall en los sistemas Linux. Está preinstalado en todas las versiones de Ubuntu posteriores a la 8.04 LTS.
Lo bueno de UFW es que ofrece una interfaz intuitiva que cualquiera puede aprender rápidamente. Es un programa basado en CLI (interfaz de línea de comandos), pero también hay versiones GUI disponibles. UFW funciona particularmente bien con firewalls de host, lo que probablemente explica por qué es compatible con Ansible.
Ansible tiene un módulo UFW que es uno de los colección community.general, lo que significa que no está incluido Núcleo ansible. Sin embargo, si tiene instalado el paquete Ansible, lo más probable es que ya lo tenga. De lo contrario, consulte las instrucciones de instalación en la siguiente sección.
Instalación del módulo UFW
Puede verificar si el módulo UFW está incluido en su instalación de Ansible o no ejecutando el siguiente comando.
Compruebe la salida. Si no tiene el módulo UFW, ejecute el siguiente comando para instalarlo.
$ ansible-galaxy colección instalar comunidad.general
Con eso, todos estamos en la misma página con respecto a la instalación del módulo UFW. ¡Veamos cómo puedes usarlo!
Uso del módulo UFW
A continuación se presentan algunos parámetros importantes que todo usuario debe conocer antes de utilizar el módulo UFW.
- Predeterminado o Política: permite o deniega o deniega y cambia la política de seguridad actual para el tráfico de red.
- eliminar: acepta no (predeterminado) o sí. Elimina una regla.
- Dirección: especifica la dirección de una regla, es decir, entrante, entrante, saliente, saliente o reenviado.
- from_ip, from_port: devuelve la dirección IP y el puerto de origen, respectivamente.
- insertar: agrega una regla identificada por su número de regla o NUM. (Los números comienzan en 1 en UFW)
- Interfaz: especifica la interfaz (controlada por el parámetro de dirección) para la regla de asunto.
- log: acepta no (predeterminado) o sí. Habilita y deshabilita el registro de nuevas conexiones realizadas con la regla.
- Registro: cambia la configuración de registro de paquetes a Activado, Desactivado, Bajo, Medio, Alto o Completo.
- ruta: acepta no (predeterminado) o sí. Aplica la regla especificada a los paquetes reenviados/enrutados.
- Regla: agregue una nueva regla de firewall. Acepta los mismos argumentos que el parámetro predeterminado.
- estado: Habilitado para recargar y ejecutar el firewall en el arranque, Deshabilitado para descargar y apagar el firewall en el arranque, Restablecer para deshabilitar el firewall y aplicar la configuración predeterminada, Recargado para recargar el firewall.
- to_ip, to_port: devuelve la dirección IP y el puerto de destino, respectivamente.
Una vez que domine los entresijos de estos parámetros, estará en camino de convertirse en un experto en UFW. Si desea obtener más información, visite la documentación del módulo UFW de Ansible. Sin embargo, pasemos a algunos ejemplos que demuestran el uso de este módulo.
Ejemplo 1: habilitar UFW
Este primer ejemplo muestra cómo habilitar UFW y al mismo tiempo permitir todo el tráfico. Esto se puede hacer con el siguiente fragmento de código.
– nombre: habilitar UFW, permitir todo el tráfico
comunidad.general.ufw:
Estado: activado
Política: permitir
– Nombre: Establecer registro
comunidad.general.ufw:
Iniciar sesión’
Ahora ejecute este libro de jugadas con el siguiente comando en la terminal de Linux:
ansible-playbook testbook.yml
Como puede ver, usamos esos Condición parámetros y configurarlo activado – Encienda el cortafuegos. A continuación, nuestra política o parámetro predeterminado lo permite todo. Finalmente, habilitamos el registro.
Ejemplo 2: Denegación de tráfico
Las conexiones de un remitente se pueden rechazar de varias maneras utilizando negar y rechazar. Sin embargo, el uso de denegar no informa al remitente que ha sido denegado. En muchos casos, es posible que desee notificar a los usuarios que sus conexiones están siendo denegadas. En tal caso, utilice el argumento de rechazo.
– comunidad.general.ufw:
Regla: rechazar
Puerto: autorización
registro: si
También registramos las conexiones rechazadas configurando el registro en sí.
Ejemplo 3: Denegar y permitir el acceso a un puerto específico
En este ejemplo, veremos cómo denegar el acceso a un puerto específico. Puede hacer esto simplemente configurando la regla para denegar y pasando el número del puerto deseado.
– nombre: denegar el acceso al puerto 35
comunidad.general.ufw:
Regla: rechazar
puerto: ’35’
También podemos cambiar un poco las cosas al permitir también todos los accesos a un puerto TCP. Así es como se haría.
– nombre: permite todos los accesos al puerto 53
comunidad.general.ufw:
Regla: permitir
puerto: ’53’
prototipo: tcp
Aquí el parámetro proto se pasa a tcp, que simplemente establece el protocolo. Otros posibles valores de argumento son upp, IPv6, especialmente, Ah, ninguna, y más.
Estas técnicas también son aplicables a varios puertos. Suponga que desea permitir o denegar el acceso a una gran cantidad de puertos, pero necesita establecer una regla para cada puerto individualmente. No necesariamente. De hecho, puede atravesar una gran cantidad de puertos que necesitan la misma regla. Aquí hay un ejemplo de cómo funcionaría.
– nombre: Permitir rango de puertos 60000-61000
comunidad.general.ufw:
Regla: permitir
Puerto: 60000:61000
prototipo: tcp
Todos los puertos entre 60000 y 61000 tienen acceso completo.
Conclusión
En esta guía, examinamos el módulo UFW de Ansible. Nos permite administrar de manera eficiente los firewalls en hosts remotos. También vimos algunos ejemplos en los que mostramos cómo permitir o denegar el acceso, administrar puertos y más. ¡Espero que haya sido una lectura informativa para ti!