Si es administrador de sistemas, proteger su servidor de diferentes tipos de ataques es una parte esencial de su trabajo; El firewall Fail2Ban puede ayudarlo a lograr esto. Fail2Ban es un sistema de prevención de intrusiones escrito en el lenguaje Python que se usa para bloquear direcciones IP maliciosas que intentan violar la seguridad de su sistema. Funciona escaneando varios archivos de registro y bloqueando las direcciones IP que intentan realizar intentos de inicio de sesión frecuentes durante un tiempo de baneo específico. También le permite controlar la fuerza y la frecuencia de los ataques. Debido a su simplicidad, se considera el software preferido para proteger su servidor de ataques DOS, DDOS y de fuerza bruta.
En este tutorial, le mostraremos cómo asegurar un servidor SSH y Apache con Fail2Ban en CentOS 8.
Requisitos
- Un nuevo CentOS 8 VPS en la plataforma en la nube de Atlantic.net.
- Una contraseña raíz configurada en su servidor.
Paso 1:crear el servidor en la nube de Atlantic.Net
Primero, inicie sesión en su servidor en la nube de Atlantic.Net. Cree un nuevo servidor, eligiendo CentOS 8 como sistema operativo con al menos 1 GB de RAM. Conéctese a su servidor en la nube a través de SSH e inicie sesión con las credenciales resaltadas en la parte superior de la página.
Una vez que haya iniciado sesión en su servidor CentOS 8, ejecute el siguiente comando para actualizar su sistema base con los últimos paquetes disponibles.
dnf update -y
Paso 2:instalar Fail2Ban
Puede instalarlo con el siguiente comando:
dnf install epel-release -y
Después de instalar el repositorio EPEL, puede instalar Fail2Ban con el siguiente comando:
dnf install fail2ban -y
Una vez instalado, inicie el servicio Fail2Ban y habilítelo para que se inicie después de reiniciar el sistema:
systemctl start fail2ban systemctl enable fail2ban
Paso 3:SSH seguro con Fail2Ban
En esta sección, aprenderemos cómo asegurar el servidor SSH con Fail2Ban.
Configurar Fail2Ban para SSH
Puede crear un archivo jail.local para SSH con el siguiente comando:
nano /etc/fail2ban/jail.local
Agregue las siguientes líneas:
[DEFAULT] ignoreip = your-server-ip bantime = 300 findtime = 300 maxretry = 3 banaction = iptables-multiport backend = systemd [sshd] enabled = true
Guarde y cierre el archivo cuando haya terminado. Luego, reinicie el servicio Fail2Ban para aplicar los cambios:
systemctl restart fail2ban
Ahora puede verificar el estado de la cárcel SSH con el siguiente comando:
fail2ban-client status
Debería ver que una cárcel SSH está habilitada:
Status |- Number of jail: 1 `- Jail list: sshd
A continuación se muestra una breve explicación de cada parámetro:
- ignorar IP :se utiliza para definir las direcciones IP que desea que se ignoren.
- hora de la fiesta :Se utiliza para definir una cantidad de segundos durante los cuales se bloqueará la dirección IP.
- encontrar tiempo :se utiliza para definir la cantidad de tiempo entre los intentos de inicio de sesión antes de que se prohíba la IP.
- reintento máximo :Se utiliza para definir el número de intentos que se realizarán antes de que se prohíba la dirección IP.
- prohibición :Acción de prohibición.
- habilitado :Esta opción habilita la protección para el servicio SSH.
Prueba SSH contra ataques de contraseña
En este punto, Fail2Ban está instalado y configurado. Es hora de probar si funciona o no.
Para hacerlo, vaya a la máquina remota e intente SSH a la dirección IP del servidor:
ssh [email protected]
Se le pedirá que proporcione la contraseña de root. Escriba la contraseña incorrecta una y otra vez. Una vez que alcance el límite de intentos de inicio de sesión, su dirección IP será bloqueada.
Puede verificar su dirección IP bloqueada con el siguiente comando:
fail2ban-client status sshd
Debería ver su IP bloqueada en el siguiente resultado:
Status for the jail: sshd |- Filter | |- Currently failed: 7 | |- Total failed: 39 | `- Journal matches: _SYSTEMD_UNIT=sshd.service + _COMM=sshd `- Actions |- Currently banned: 1 |- Total banned: 2 `- Banned IP list: 190.8.80.42
También puede consultar el registro SSH para inicios de sesión fallidos:
tail -5 /var/log/secure | grep 'Failed password'
Debería ver el siguiente resultado:
Mar 1 03:55:03 centos8 sshd[11196]: Failed password for invalid user bpadmin from 190.8.80.42 port 55738 ssh2
También puede bloquear y desbloquear una dirección IP específica manualmente.
Por ejemplo, para desbloquear la IP 190.8.80.42, ejecute el siguiente comando:
fail2ban-client set sshd unbanip 190.8.80.42
Para bloquear la IP 190.8.80.42, ejecute el siguiente comando:
fail2ban-client set sshd banip 190.8.80.42
Paso 4:proteger Apache con Fail2Ban
También puede proteger el servidor web Apache de diferentes tipos de ataques. Deberá configurar el archivo jail.local para Apache como se muestra a continuación:
nano /etc/fail2ban/jail.local
Agregue las siguientes líneas al final del archivo:
[apache-auth] enabled = true port = http,https logpath = %(apache_error_log)s [apache-badbots] enabled = true port = http,https logpath = %(apache_access_log)s bantime = 48h maxretry = 1 [apache-noscript] enabled = true port = http,https logpath = %(apache_error_log)s
Guarde y cierre el archivo cuando haya terminado. Luego, reinicie el servicio Fail2Ban para implementar los cambios:
systemctl restart fail2ban
Ahora puede verificar el estado de todas las cárceles con el siguiente comando:
fail2ban-client status
Debería ver el siguiente resultado:
Status |- Number of jail: 5 `- Jail list: apache-auth, apache-badbots, apache-noscript, sshd
A continuación se muestra una breve explicación de cada cárcel:
- apache-autorización :Esta cárcel se usa para proteger a Apache de intentos fallidos de inicio de sesión.
- apache-badbots :esta cárcel se utiliza para prohibir hosts cuyo agente identifica a los robots spammers que rastrean la web en busca de direcciones de correo electrónico.
- apache-noscript :se utiliza para bloquear la IP que intenta buscar scripts en el sitio web para ejecutar.
Conclusión
En el tutorial anterior, aprendimos cómo proteger SSH y el servidor Apache con Fail2Ban. Es un sistema de prevención de intrusiones muy útil que agrega seguridad adicional a su sistema Linux. Ahora puede configurar Fail2Ban que se adapte a sus necesidades de seguridad específicas. ¡Empiece hoy con Fail2Ban con VPS Hosting de Atlantic.Net!