Configuration (suite)
Configuration (suite) jmvfilter.d/
Ce répertoire est rempli de filtres pour des services de toutes sortes, surtout pour Apache, le serveur Web.
- Je n'ai rien trouvé qui me satisfaisait dans ce répertoire, étant donné que la majorité des attaques se faisaient au moyen de la requête "POST / xmlrpc.php HTTP/1.1" qui sert à faire des modifications dans les pages du site à l'aide du courriel
- Ces requêtes ne génèrent aucun message d'erreur.
- La majorité des filtres préétablis s'appliquent aux messages d'erreur.
- J'ai donc décidé de créer mon propre filtre pour Apache.
- Après de nombreux essais et erreurs (je ne suis pas un spécialiste des expressions régulières), je suis arrivé à ceci :
failregex = ^<HOST>.*"POST /xmlrpc.php HTTP.*
^<HOST>.*"GET / .*
J'ai utilisé un fichier existant, j'ai remplacé le contenu de la définition par ce qui précède et je l'ai nommé apache-post.conf.
jail.d/
Au départ, ce répertoire est vide, du moins dans le cas de la distribution Gentoo. C'est dans ce répertoire que j'ai créé le fichier apache.conf :
[apache-post-clg]
enabled = true (prison activée)
filter = apache-post (filter.d/apache-post.conf)
action = iptables[name=APACHE, port=http, protocol=tcp]
(action.d/iptables.conf) port = http,https logpath = /var/log/apache2/clo_access_log (le journal d'accès au serveur, et non pas le journal d'erreurs)
maxretry = 10 (nombre d'essais maximal)
findtime = 60 (période de temps durant laquelle le nombre d'essais sont effectués -- pourrait être plus courte)
bantime = 432000 (période de temps pendant laquelle l'adresse offensante sera bannie -- 5 jours)
[apache-post-securinux] enabled = true
filter = apache-post
action = iptables[name=APACHE, port=http, protocol=tcp] port = http,https]
logpath = /var/log/apache2/tux_access
log maxretry = 10
findtime = 60
bantime = 432000
Outils
Outils jmvfail2ban-client a plusieurs fonctions, notamment celle de vérifier l'état des prisons avec l'option status :
fail2ban-client status nom-de-la-prison
Dans le cas du serveur du club, il n'y en a que quatre : postfix, sasl et apache-post-clg et apache-post-securinux
fail2ban-client a de nombreuses autres fonctions, dont celle de bannir un adresse IP immédiatement (fail2ban set <nom-de-la-prison> banip <adresse-ip-offensante>). Voir la page de manuel.
On peut aussi vérifier l'efficacité de la défense dans iptables
iptables -L