Prochaine révision | Révision précédente |
technique:adminsys:secu:fail2ban [2021/01/27 23:00] – créée qduchemi | technique:adminsys:secu:fail2ban [2022/09/22 09:22] (Version actuelle) – rdelaage |
---|
## Empêcher les bruteforce SSH | ## Empêcher les bruteforce SSH |
| |
Sur toutes les machines, il convient d'installer le paquet `fail2ban`. En pratique, comme l'authentification par mot de passe est désactivée, on ne risque pas de se faire bruteforce une clé SSH. Ceci étant, ce bannissement permet d'alléger les requêtes faites au serveur et les potentiels autres actes malveillants provenant de la même IP. | Sur toutes les machines, il convient d'installer le paquet `fail2ban`. |
| |
| <bootnote learn>Ce genre d'opération peut s'effectuer sur l'ensemble des machines, d'un seul coup, [[technique:tips:broadcast|en utilisant cette astuce]].</bootnote> |
| |
| En pratique, comme l'authentification par mot de passe est désactivée, on ne risque pas de se faire bruteforce une clé SSH. Ceci étant, ce bannissement permet d'alléger les requêtes faites au serveur et les potentiels autres actes malveillants provenant de la même IP. |
| |
Cet outil permet d'analyser les logs de différents services et de bannir temporairement une IP en cas d'abus détecté. | Cet outil permet d'analyser les logs de différents services et de bannir temporairement une IP en cas d'abus détecté. |
<bootnote learn>`fail2ban` n'interagit pas du tout avec les services concernés ; il se contente de *parser* leurs journaux et de récupérer les IP provoquant une erreur (exemple : trop de 404 pour un serveur HTTP).</bootnote> | <bootnote learn>`fail2ban` n'interagit pas du tout avec les services concernés ; il se contente de *parser* leurs journaux et de récupérer les IP provoquant une erreur (exemple : trop de 404 pour un serveur HTTP).</bootnote> |
| |
Dans notre cas, la configuration par défaut nous suffit, quelques extraits : | Dans notre cas, la configuration est un peu modifiée afin d'être intégrée à la [[technique:adminsys:monitoring:log|centralisation des logs]], quelques extraits : |
| |
`/etc/fail2ban/fail2ban.conf` : | `/etc/fail2ban/fail2ban.conf` : |
``` | ``` |
loglevel = INFO | loglevel = INFO |
logtarget = /var/log/fail2ban.log | logtarget = SYSOUT |
``` | ``` |
| |
On retrouve donc les logs de ban/unban dans un seul fichier. | On retrouve donc les logs de ban/unban dans `journalctl` (`sudo journalctl -u fail2ban`) ou dans [[technique:adminsys:monitoring:log:query|Grafana]]. |
| |
`/etc/fail2ban/jail.d/defaults-debian.conf` : | `/etc/fail2ban/jail.d/defaults-debian.conf` : |