GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo proteger Apache y SSH con Fail2Ban en CentOS 8

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!


Linux
  1. Cómo usar Fail2ban para asegurar SSH en CentOS 7

  2. Cómo instalar Apache Hive con Hadoop en CentOS, Ubuntu y LinuxMint

  3. ¿Cómo instalar y configurar Fail2ban en CentOS 8?

  4. Cómo instalar Apache 2.4.2 desde el origen en CentOS 6.2 con SSL

  5. ¿Cómo investigar una pérdida de memoria con Apache y PHP?

Cómo instalar Apache con host virtual en CentOS 8

Cómo instalar y configurar GlusterFS en CentOS 7/CentOS 8

Cómo instalar Drupal en CentOS 7 con Apache

Cómo instalar WordPress en CentOS 7.1 con Apache

Cómo instalar y configurar Memcached con Apache y PHP

Cómo proteger SSH con Fail2Ban