Cómo proteger su servidor Linux con Fail2Ban

Con Fail2ban, su computadora Linux bloquea automáticamente las direcciones IP que tienen demasiadas fallas de conexión.¡Esta es la seguridad autorreguladora! Te mostraremos cómo usarlo.

Seguridad Seguridad Seguridad Seguridad

La duquesa de Windsor, Wallis Simpson, una vez fue famoso: «Nunca puedes ser demasiado rica o demasiado delgada». Hemos actualizado eso para nuestro mundo interconectado moderno: nunca puedes ser demasiado cuidadoso o demasiado seguro.

Si su computadora acepta solicitudes de conexión entrantes, como Secure Shell (SSH) o actúa como un servidor web o de correo electrónico, debe protegerlo de los ataques de fuerza bruta y la minería de contraseña.

Para hacer esto, debe monitorear las solicitudes de conexión que no lleguen a la cuenta. Si no se autentican repetidamente dentro de un corto período de tiempo, deben prohibirse de más intentos.

La única forma de lograr esto prácticamente es automatizar todo el proceso. Después de un poco de personalización, Fail2ban administrará el monitoreo, la prohibición y el desbloqueo para usted.

Fail2Ban se integra con el firewall de Linux iptables. Hace cumplir con las prohibiciones de direcciones IP sospechosas agregando reglas al firewall. Para evitar aclarar esta explicación, usaremos iptables con un conjunto de reglas vacías.

Por supuesto, si le preocupa la seguridad, probablemente tenga un firewall configurado con un conjunto de reglas bien poblado. Solo Fail2ban agrega y elimina sus reglas, sus funciones normales de firewall permanecerán intactas.

Podemos ver nuestro conjunto de reglas vacías con este comando:

sudo iptable s-l

Instalación de Fail2Ban

La instalación de Fail2Ban es fácil en todas las distribuciones que utilizamos para investigar este artículo. En Ubuntu 20. 04, el comando es el siguiente:

sudo apt-get instalación fail2ban

En Fedora 32, ingrese:

sudo dnf instalación fail2ban

En Manjaro 20. 0. 1, usamos Pacman:

sudo pacma n-sy fail2ban

Configuración de fail2ban

La instalación de Fail2Ban contiene un archivo de configuración predeterminado llamado Jail. Conf. Este archivo se sobrescribe cuando Fail2Ban se actualiza, por lo que perderemos nuestros cambios si realizamos cambios en este archivo.

Cómo encontrar y eliminar rápidamente archivos grandes en Linux con un buscador de archivos grandes

En su lugar, copiaremos el archivo jail. conf a un archivo llamado jail. local. Al poner nuestros cambios de configuración en jail. local, se conservan cuando actualizamos. Ambos archivos son leídos automáticamente por fail2ban.

Aquí se explica cómo copiar el archivo:

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

Ahora abra el archivo en su editor favorito. Vamos a usar gedit:

sudo gedit /etc/fail2ban/jail. local

Vamos a buscar dos secciones en el archivo: [DEFAULT] y [sshd]. Sin embargo, trate de encontrar las secciones reales. Estas etiquetas también aparecen en la parte superior de la sección donde se describen, pero eso no es lo que necesitamos.

Encontrará la sección [DEFAULT] en algún lugar alrededor de la línea 40. Esta es una sección larga con muchos comentarios y explicaciones.

Desplácese hacia abajo hasta aproximadamente la línea 90 y encontrará los siguientes cuatro parámetros que debe conocer:

ignoreip: una lista blanca de direcciones IP que nunca serán bloqueadas. Tienen una tarjeta permanente para salir de la cárcel gratis. La dirección IP del host local (127. 0. 0. 1) está en la lista predeterminada, junto con su equivalente IPv6 (::: 1). Si hay otras direcciones IP que sabe que nunca deben prohibirse, agréguelas a esta lista y deje un espacio entre ellas. bantime: el tiempo durante el cual la dirección IP está bloqueada («m» significa minutos). Si ingresa un valor sin «m» o «h» (para horas), se considerará segundos. Un valor d e-1 bloqueará permanentemente la dirección IP. Tenga mucho cuidado de no bloquearse permanentemente. findtime: el intervalo de tiempo en el que demasiados intentos fallidos de conexión provocarán el bloqueo de una dirección IP. maxretry: el valor de «demasiados intentos fallidos».

Si una conexión desde la misma dirección IP realiza intentos de conexión fallidos de maxretry durante el período de tiempo de búsqueda, se bloquean durante la duración de la prohibición. Las únicas excepciones son las direcciones IP en la lista de direcciones IP ignoradas.

fail2ban coloca las direcciones IP en una cárcel por un período de tiempo específico. fail2ban admite muchas cárceles diferentes, y cada cárcel contiene configuraciones que se aplican a un tipo de conexión. Esto le permite tener diferentes configuraciones para diferentes tipos de conexión. O puede configurar fail2ban para monitorear solo un conjunto seleccionado de tipos de conexión.

Es posible que haya adivinado esto por el nombre de la sección [DEFAULT], pero las configuraciones que vimos son las predeterminadas. Ahora echemos un vistazo a la configuración de la cárcel SSH.

Cómo instalar el tema Neo-to GTK en Linux

Configuración de la cárcel

Después de la primera contraseña incorrecta en la tercera solicitud de conexión, no recibimos respuesta de la máquina remota. No tenemos ninguna explicación; Simplemente tenemos pies fríos.

Debe presionar CTRL + C para volver al símbolo del sistema. Si lo intentamos de nuevo, obtenemos una respuesta diferente:

Anteriormente, el mensaje de error fue "permiso denegado". Esta vez, la conexión se niega categóricamente. Somos Persona Non Grata. Hemos sido prohibidos.

Veamos los detalles de la cárcel [SSHD] nuevamente:

sudo fail2ban-client sshd

Hubo tres fallas, y se prohibió una dirección IP (192. 168. 4. 25).

Como mencionamos anteriormente, Fail2Ban hace cumplir las prohibiciones al agregar reglas al conjunto de reglas del firewall. Echemos otro vistazo al conjunto de reglas (estaba vacío antes):

sudo iptable s-l

Se ha agregado una regla a la política de entrada que envía el tráfico SSH a la cadena F2B-SSHD. La regla en la cadena F2B-SSHD rechaza las conexiones SSH de 192. 168. 4. 25. No cambiamos la configuración predeterminada para el tiempo de bloqueo, por lo que después de 10 minutos, esta dirección IP estará desbloqueada y podrá realizar nuevas solicitudes de conexión.

Si establece un tiempo de bloqueo más largo (por ejemplo, varias horas) pero desea que la dirección IP pueda hacer otra solicitud de conexión antes, puede liberarlo temprano.

Para hacer esto, escribimos lo siguiente:

sudo fail2ban-client set sshd noanip 192. 168. 5. 25

En nuestra computadora remota, si realizamos otra solicitud de conexión SSH e ingresamos la contraseña correcta, se nos permitirá conectarnos:

Simple y eficiente

Cuanto más simple, mejor, y fail2ban es una solución elegante para un problema complejo. Requiere muy poca configuración y es prácticamente neutral en costo para usted o su computadora.

toadmin. ru.

sudo iptable s-l en una ventana de terminal.

sudo apt-get install fail2ban en una ventana de terminal.

sudo dnf install fail2ban en una ventana de terminal.

Sudo Pacma n-Sy Fail2Ban en una ventana terminal.

sudo cp /etc/fail2ban/jail. conf /etc/fail2ban/jail. local en una ventana terminal.

/etc/fail2ban/jail. local abrió en una ventana GEDIT.

/etc/fail2ban/jail. local se abre en una ventana Gedit y se desplaza a la línea 89.

/etc/fail2ban/jail. local abre en una ventana Gedit y se desplaza a la línea 280.

sudo systemCTL habilita fail2ban en una ventana terminal.

SUDO SystemCTL Status Fail2Ban. Service en una ventana de terminal.

sudo fail2ban-client status en una ventana terminal.

sudo fail2ban-client sshd en una ventana terminal.

ssh dave@ubtuntu20-04. local en una ventana de terminal con múltiples intentos de contraseña fallidas.

ssh dave@ubuntu20-04. local en una ventana de terminal con respuesta de conexión fallida.

Sudo Pacma n-Sy Fail2Ban en una ventana terminal.

sudo iptable s-l en una ventana de terminal.

sudo fail2ban-client set sshd noanip 192. 168. 5. 25 en una ventana terminal.

sudo iptable s-l