> La lista completa de artículos está en [llms.txt](https://docs.f3cloud.com/llms.txt). Cada página tiene versión en Markdown, basta con añadir .md a su dirección. Esta página en Markdown: [https://docs.f3cloud.com/es/client-area/protect-vps-from-unauthorised-access/fail2ban.md](https://docs.f3cloud.com/es/client-area/protect-vps-from-unauthorised-access/fail2ban.md).

# Protección contra la fuerza bruta de contraseñas con fail2ban

Cómo proteger tu servidor de los intentos de adivinar contraseñas con fail2ban. Instalación, una configuración lista para SSH, cómo ver las direcciones bloqueadas y cómo desbloquear tu propia IP.

Fail2ban vigila el registro de accesos al servidor. Si desde alguna dirección IP se intenta adivinar la contraseña con demasiada frecuencia, bloquea esa dirección durante un tiempo.

Aunque ya entres [con claves SSH](https://docs.f3cloud.com/es/client-area/protect-vps-from-unauthorised-access/ssh-keys.md), fail2ban sigue siendo útil. Frena a los bots, descarga los registros y te ayuda a notar antes si pasa algo raro.

***

### 1. Instala fail2ban

Los comandos se ejecutan en el servidor.

#### Ubuntu y Debian

```bash
# Actualizamos la lista de paquetes e instalamos fail2ban.
# python3-systemd hace falta para que fail2ban pueda leer el registro
# del sistema
sudo apt update
sudo apt install -y fail2ban python3-systemd
```
#### AlmaLinux, CentOS, Oracle Linux

```bash
# fail2ban está en el repositorio adicional EPEL, así que lo
# activamos
sudo dnf install -y epel-release

# Instalamos fail2ban
sudo dnf install -y fail2ban
```

***

### 2. Crea el archivo de configuración

El archivo de configuración principal de fail2ban se sobrescribe con las actualizaciones, por eso la configuración propia se pone en un archivo aparte, `jail.local`.

```bash
# Creamos nuestro archivo de configuración y lo abrimos en el editor
sudo nano /etc/fail2ban/jail.local
```

Pega en él esta configuración.

```ini
[sshd]
# Activamos la protección de SSH
enabled = true
# Puerto de SSH. Si lo has cambiado, pon tu número, por ejemplo
# 2222
port = ssh
# Leemos el registro de accesos a través de systemd. Así fail2ban funciona
# también
# donde no existe el archivo /var/log/auth.log, por ejemplo en Debian 12
backend = systemd
# Cuántos intentos de acceso fallidos se permiten
maxretry = 5
# En qué intervalo de tiempo se cuentan los intentos
findtime = 10m
# Durante cuánto tiempo se bloquea la dirección IP del infractor
bantime = 1h
```

Para guardar el archivo, pulsa <kbd>Ctrl</kbd> + <kbd>O</kbd> y <kbd>Enter</kbd>, y para salir del editor, <kbd>Ctrl</kbd> + <kbd>X</kbd>.

***

### 3. Pon en marcha fail2ban

```bash
# Activamos el arranque automático de fail2ban y lo iniciamos ya
sudo systemctl enable --now fail2ban

# Lo reiniciamos para que cargue seguro nuestro archivo de configuración
sudo systemctl restart fail2ban

# Vemos el estado de la protección de SSH
sudo fail2ban-client status sshd
```

En la respuesta verás dos líneas principales.\
**Total failed** muestra cuántos intentos de acceso fallidos ha habido.\
**Banned IP list** muestra qué direcciones están bloqueadas ahora mismo.

Si el servidor lleva ya un tiempo conectado a internet, es casi seguro que en la lista aparecerán los primeros «invitados».

***

### Comandos útiles

```bash
# Ver las direcciones bloqueadas
sudo fail2ban-client status sshd

# Desbloquear una dirección, por ejemplo si tú mismo te equivocaste con
# la contraseña.
# En lugar de IP_ADDRESS, pon la dirección que necesites
sudo fail2ban-client set sshd unbanip IP_ADDRESS

# Reiniciar fail2ban después de cambiar la configuración
sudo systemctl restart fail2ban
```

> **Si te ha bloqueado a ti.**
>
> Si fail2ban ha bloqueado tu propia dirección, conéctate desde otra conexión a internet, por ejemplo con los datos móviles, o abre el servidor con el botón <kbd>Console</kbd> de la lista de servidores del área de cliente. Después desbloquea tu dirección con el comando de arriba. En cualquier caso, el bloqueo se levantará solo al cabo de una hora.

> **Para el panel 3X-UI.**
>
> 3X-UI tiene su propia configuración integrada de fail2ban, que se explica en el artículo [sobre cómo configurar VLESS + TLS + XHTTP](https://docs.f3cloud.com/es/vpn-guide/setup-vless-xhttp.md).

***

### Nuestros recursos

**Canal de Telegram:** [https://t.me/f3cloud_news](https://t.me/f3cloud_news)\
**Web del hosting:** [https://f3cloud.com](https://f3cloud.com/es)
