public:recetas:gnulinux:fail2ban
Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
public:recetas:gnulinux:fail2ban [2018/02/04 18:02] – [Bloquear el ping] mperez | public:recetas:gnulinux:fail2ban [2024/02/20 08:46] (actual) – [Instalación de fail2ban para evitar ataques de fuerza bruta] mperez | ||
---|---|---|---|
Línea 1: | Línea 1: | ||
+ | ====== Instalación de fail2ban para evitar ataques de fuerza bruta ====== | ||
+ | Algunos enlaces: | ||
+ | |||
+ | https:// | ||
+ | |||
+ | https:// | ||
+ | |||
+ | https:// | ||
+ | |||
+ | http:// | ||
+ | |||
+ | Instalación: | ||
+ | |||
+ | <code bash> | ||
+ | apt install fail2ban | ||
+ | </ | ||
+ | |||
+ | <note important> | ||
+ | |||
+ | cp / | ||
+ | </ | ||
+ | |||
+ | En Debian 12 da un problema | ||
+ | |||
+ | < | ||
+ | #mpf begin | ||
+ | #backend = %(sshd_backend)s | ||
+ | backend=systemd | ||
+ | enabled = true | ||
+ | #mpf end | ||
+ | </ | ||
+ | |||
+ | |||
+ | El fichero ''/ | ||
+ | |||
+ | |||
+ | |||
+ | <code bash> | ||
+ | bantime | ||
+ | </ | ||
+ | |||
+ | Después de modificar el fichero hay que reiniciar el servicio | ||
+ | |||
+ | <code bash> | ||
+ | / | ||
+ | </ | ||
+ | |||
+ | Se pueden consultar las IPs bloqueadas con | ||
+ | |||
+ | <code bash> | ||
+ | fail2ban-client status sshd | ||
+ | |||
+ | Status for the jail: sshd | ||
+ | |- Filter | ||
+ | | |- Currently failed: 2 | ||
+ | | |- Total failed: | ||
+ | | `- File list: / | ||
+ | `- Actions | ||
+ | |- Currently banned: 1 | ||
+ | |- Total banned: | ||
+ | `- Banned IP list: | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== REJECT vs. DROP ===== | ||
+ | |||
+ | Por defecto, las IPs bloqueadas reciben un '' | ||
+ | |||
+ | blocktype = REJECT --reject-with icmp-port-unreachable | ||
+ | |||
+ | por | ||
+ | |||
+ | blocktype = DROP | ||
+ | |||
+ | https:// | ||
+ | |||
+ | No está muy claro si es mejor '' | ||
+ | |||
+ | ===== Bloquear todos los puertos ===== | ||
+ | |||
+ | Por defecto solo hace DROP del puerto ssh. Para bloquear todos los puertos hay que editar el fichero ''/ | ||
+ | |||
+ | <code bash> | ||
+ | action = iptables[name=SSH, | ||
+ | </ | ||
+ | |||
+ | http:// | ||
+ | |||
+ | ===== Bloquear el ping ===== | ||
+ | |||
+ | Editar el fichero ''/ | ||
+ | <code bash> | ||
+ | actionstart = < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | |||
+ | # Option: | ||
+ | # Notes.: | ||
+ | # Values: | ||
+ | # | ||
+ | actionstop = < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | |||
+ | https:// | ||
+ | |||
+ | ===== Bloquear y desbloquear IPs ===== | ||
+ | |||
+ | Para desbloquear una IP | ||
+ | <code bash> | ||
+ | fail2ban-client set sshd unbanip 152.138.27.33 | ||
+ | </ | ||
+ | |||
+ | |||
+ | Para bloquear una IP | ||
+ | <code bash> | ||
+ | fail2ban-client set sshd banip 152.138.27.33 | ||
+ | </ | ||
+ | |||
+ | ===== openvpn ===== | ||
+ | Este parece que funciona: | ||
+ | |||
+ | https:// | ||
+ | |||
+ | Este de la web oficial es similar pero no «banea» (puede que sea tema de versiones): | ||
+ | |||
+ | https:// | ||
+ | |||
+ | Otros que no he probado: | ||
+ | |||
+ | https:// | ||
+ | https:// |