GNU/Linux >> Tutoriales Linux >  >> Linux

Seguridad Linux:Proteja sus sistemas con fail2ban

La seguridad, para los administradores de sistemas, es una lucha constante porque debe asegurar sus sistemas lo suficiente como para protegerlos de ataques no deseados, pero no tanto como para obstaculizar la productividad del usuario. Es un equilibrio difícil de mantener. Siempre hay quejas de "demasiada" seguridad, pero cuando un sistema está comprometido, las quejas van desde "No había suficiente seguridad" hasta "¿Por qué no usó mejores controles de seguridad?" La lucha es real. Hay controles que puede implementar que son efectivos contra ataques de intrusos y, sin embargo, lo suficientemente sigilosos para permitir que los usuarios operen sin restricciones. Fail2ban es la respuesta para proteger los servicios de la fuerza bruta y otros ataques automatizados.

Nota:Fail2ban solo se puede usar para proteger servicios que requieren autenticación de nombre de usuario/contraseña. Por ejemplo, no puede proteger el ping con fail2ban.

En este artículo, demuestro cómo proteger el demonio SSH (SSHD) de un ataque de fuerza bruta. Puede configurar filtros, como fail2ban los llama, para proteger casi todos los servicios de escucha en su sistema.

Instalación y configuración inicial

Afortunadamente, hay un paquete listo para instalar para fail2ban eso incluye todas las dependencias, si las hay, para su sistema.

$ sudo dnf -y install fail2ban

Habilite e inicie fail2ban .

$ sudo systemctl enable fail2ban

$ sudo systemctl start fail2ban

A menos que tenga algún tipo de problema de sintaxis en su fail2ban configuración, no verá ningún mensaje de salida estándar.

Ahora para configurar algunas cosas básicas en fail2ban para proteger el sistema sin que interfiera consigo mismo. Copie el /etc/fail2ban/jail.conf archivo a /etc/fail2ban/jail.local . El jail.local file es el archivo de configuración que nos interesa.

$ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Abra /etc/fail2van/jail.local en su editor favorito y realice los siguientes cambios o verifique que estos pocos parámetros estén configurados. Busque la configuración ignoreip y agregue todas las direcciones IP a esta línea que deben tener acceso sin posibilidad de bloqueo. De manera predeterminada, debe agregar la dirección de loopback y todas las direcciones IP locales al sistema protegido.

ignoreip = 127.0.0.1/8 192.168.1.10 192.168.1.20

También puede agregar redes completas de direcciones IP, pero esto elimina gran parte de la protección que desea aplicar fail2ban por. Mantenlo simple y local por ahora. Guarde el jail.local archivo y reinicie el fail2ban servicio.

$ sudo systemctl restart fail2ban

Debe reiniciar fail2ban cada vez que realiza un cambio de configuración.

Configurar un servicio filtrado

Una nueva instalación de fail2ban realmente no hace mucho por ti. Debe configurar los llamados filtros para cualquier servicio que desee proteger. Casi todos los sistemas Linux deben ser accesibles por SSH. Hay algunas circunstancias en las que seguramente se detendría y deshabilitaría SSHD para proteger mejor su sistema, pero asumo que todos los sistemas Linux permiten conexiones SSH.

Las contraseñas, como todo el mundo sabe, no son una buena solución de seguridad. Sin embargo, a menudo es el estándar por el cual vivimos. Por lo tanto, si el acceso administrativo o de usuario está limitado a SSH, debe tomar medidas para protegerlo. Usando fail2ban "observar" SSHD en busca de intentos de acceso fallidos con la posterior prohibición es un buen comienzo.

Nota:Antes de implementar cualquier control de seguridad que pueda dificultar el acceso de un usuario a un sistema, informe a los usuarios que este nuevo control podría bloquearlos del sistema durante diez minutos (o el tiempo que decida) si sus intentos fallidos de inicio de sesión superan su configuración de umbral. .

Para configurar servicios filtrados, debe crear un archivo "cárcel" correspondiente en /etc/fail2ban/jail.d directorio. Para SSHD, cree un nuevo archivo llamado sshd.local e ingrese las instrucciones de filtrado del servicio en él.

[sshd]
enabled = true
port = ssh
action = iptables-multiport
logpath = /var/log/secure
maxretry = 3
bantime = 600

Crea el [sshd] e ingrese la configuración que ve arriba como punto de partida. La mayoría de los ajustes se explican por sí mismos. Para los dos que pueden no ser intuitivamente obvios, la configuración de "acción" describe la acción que desea fail2ban tomar en caso de una infracción. Para nosotros, fail2ban usa iptables para prohibir la dirección IP del sistema infractor durante un "tiempo de baneo" de 600 segundos (10 minutos).

Por supuesto, puede cambiar cualquiera de estas configuraciones para satisfacer sus necesidades. Diez minutos parece ser suficiente para hacer que un bot o script "se mueva" a hosts menos seguros. Sin embargo, diez minutos no son tantos como para alienar a los usuarios que escriben mal sus contraseñas más de tres veces.

Una vez que esté satisfecho con la configuración, reinicie fail2ban servicio.

Cómo se ve la prohibición

En el sistema protegido (192.168.1.83), tail el /var/log/fail2ban.log para ver cualquier acción de prohibición actual.

2020-05-15 09:12:06,722 fail2ban.filter         [25417]: INFO    [sshd] Found 192.168.1.69 - 2020-05-15 09:12:06
2020-05-15 09:12:07,018 fail2ban.filter         [25417]: INFO    [sshd] Found 192.168.1.69 - 2020-05-15 09:12:07
2020-05-15 09:12:07,286 fail2ban.actions        [25417]: NOTICE  [sshd] Ban 192.168.1.69
2020-05-15 09:22:08,931 fail2ban.actions        [25417]: NOTICE  [sshd] Unban 192.168.1.69

Puede ver que la dirección IP 192.168.1.69 se bloqueó a las 09:12 y se desbloqueó diez minutos después a las 09:22.

En el sistema remoto, 192.168.1.69, una acción de prohibición tiene el siguiente aspecto:

$ ssh 192.168.1.83

[email protected]'s password: 

Permission denied, please try again.

[email protected]'s password: 

Permission denied, please try again.

[email protected]'s password: 

Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).

$ ssh 192.168.1.83

ssh: connect to host 192.168.1.83 port 22: Connection refused

Puede ver que ingresé mi contraseña incorrectamente tres veces antes de ser baneado. El usuario prohibido, a menos que se le informe explícitamente, no sabrá por qué ya no puede llegar al sistema de destino. El fail2ban El filtro realiza una acción de prohibición silenciosa. No da ninguna explicación al usuario remoto, ni se notifica al usuario cuando se levanta la prohibición.

Desbanear un sistema

Inevitablemente, sucederá que se prohíba un sistema que deba ser desbaneado rápidamente. En otras palabras, no puede o no quiere esperar a que expire el período de prohibición. El siguiente comando desbancará inmediatamente un sistema.

$ sudo fail2ban-client set sshd unbanip 192.168.1.69

No necesita reiniciar el demonio fail2ban después de emitir este comando.

Resumir

Así es básicamente cómo fail2ban obras. Configura un filtro y, cuando se cumplen las condiciones, se prohíbe el sistema remoto. Puede prohibir durante períodos de tiempo más largos y puede configurar múltiples filtros para proteger su sistema. Recuerda que fail2ban es una solución única y no protege su sistema de otras vulnerabilidades. La estrategia que desea seguir es un enfoque multifacético y en capas de la seguridad. Ninguna solución única proporciona suficiente seguridad.

Puede encontrar ejemplos de otros filtros y algunos fail2ban avanzados implementaciones descritas en fail2ban.org.

[ ¿Quiere obtener más información sobre seguridad? Consulte la lista de verificación de cumplimiento y seguridad de TI. ]


Linux
  1. Recupere su sistema con el modo de usuario único en Linux Mint / Linux Mint 12

  2. Mejora la seguridad del cortafuegos de tu sistema Linux

  3. Sobrevivir a una auditoría de seguridad con Enterprise Linux

  4. 13 tutoriales de seguridad de Linux

  5. Aprende más sobre tu sistema Linux con inxi

Captura de pantalla de la configuración de su sistema Linux con herramientas Bash

Cómo rescatar su sistema Windows o Linux con Rescatux

Cómo auditar un sistema Linux remoto con Lynis Security Tool

Auditoría de seguridad de Linux con Lynis

Auditoría de seguridad con Lynis

5 prácticas recomendadas de seguridad SSH de Linux para proteger sus sistemas