J’ai une IP bannie qui génère des erreurs dans les logs Apache.
$ sudo iptables -L |grep -i 193.106.31.130
DROP all -- 193.106.31.130 anywhere
2020-06-01T16:16:51+00:00 INFO 193.106.31.130 joomlafailure Le nom d'utilisateur ne correspond pas au mot de passe, ou vous n'avez pas encore de compte.
2020-06-01T16:16:51+00:00 WARNING 193.106.31.130 jerror Le nom d'utilisateur ne correspond pas au mot de passe, ou vous n'avez pas encore de compte.
2020-06-01T16:16:52+00:00 INFO 193.106.31.130 joomlafailure Le nom d'utilisateur ne correspond pas au mot de passe, ou vous n'avez pas encore de compte.
2020-06-01T16:16:52+00:00 WARNING 193.106.31.130 jerror Le nom d'utilisateur ne correspond pas au mot de passe, ou vous n'avez pas encore de compte.
2020-06-01T16:16:52+00:00 INFO 193.106.31.130 joomlafailure Le nom d'utilisateur ne correspond pas au mot de passe, ou vous n'avez pas encore de compte.
2020-06-01T16:16:52+00:00 WARNING 193.106.31.130 jerror Le nom d'utilisateur ne correspond pas au mot de passe, ou vous n'avez pas encore de compte.
2020-06-01T16:16:52+00:00 INFO 193.106.31.130 joomlafailure Le nom d'utilisateur ne correspond pas au mot de passe, ou vous n'avez pas encore de compte.
2020-06-01T16:16:52+00:00 WARNING 193.106.31.130 jerror Le nom d'utilisateur ne correspond pas au mot de passe, ou vous n'avez pas encore de compte.
Cette IP ne devrait elle pas être bannie sur tous les ports, qu’est ce que j’ai manqué ?
+1
Et surtout à quel moment exact a été ajoutée cette règle iptables ? Si cette IP était déjà à l’origine d’une attaque par force brute sur Joomla au moment où la règle a été insérée c’est sans doute normal de continuer à voir des tentatives du fait de la persistance des connexions (HTTP et TCP).
Il ne faut pas toucher à ce type de paramètre sans savoir ce que l’on fait exactement.
La question est de savoir quel a été le délai entre l’établissement de la règle iptables et les tentatives provenant de cette IP dans les logs ; qui ne semblent pas être des logs d’Apache par ailleurs.
Ce n’est pas pour y toucher mais savoir la valeur par défaut pour savoir au bout de combien de temps ces attaques n’ont plus aucune raison d’apparaitre… à moins que l’attaque soie déclenchée dans l’intervalle de temps du cache.
Autrement dit: comment annuler cette connexion si elle existe encore ?
Ce que j’ai indiqué est juste une hypothèse qui peut s’avérer complètement fausse. Il faut que tu répondes à ma question et que tu sois plus précis :
quelle règle fail2ban avec quel temps de bannissement et quel nombre de tentatives ;
quelles autres règles iptables, notamment sur les connexions établies ;
d’où provient ton extrait de logs.
Au niveau applicatif Apache maintient le délai d’inactivité par défaut est de 5 secondes, cf. https://httpd.apache.org/docs/current/mod/core.html#keepalive
Tes logs montrent plusieurs tentatives effectuées dans un délai très court ce qui m’a conduit à l’hypothèse d’une connexion persistante (du moins tant que le service n’est pas redémarré).
Bon je suppose que depuis le temps tu ne vois plus cette IP dans tes logs.
Au vu de l’ordre de tes règles iptables, si la connexion est déjà établie les requêtes passent. Donc si le script a été lancé alors que 193.106.31.130 avait déjà établi la connexion avec ton serveur, c’est normal.
...
2020-06-11T04:31:25+00:00 INFO 193.106.31.130 joomlafailure Le nom d'utilisateur ne correspond pas au mot de passe, ou vous n'avez pas encore de compte.
2020-06-11T04:31:25+00:00 INFO 193.106.31.130 joomlafailure Le nom d'utilisateur ne correspond pas au mot de passe, ou vous n'avez pas encore de compte.
2020-06-11T04:31:25+00:00 INFO 193.106.31.130 joomlafailure Le nom d'utilisateur ne correspond pas au mot de passe, ou vous n'avez pas encore de compte.
2020-06-11T04:31:25+00:00 INFO 193.106.31.130 joomlafailure Le nom d'utilisateur ne correspond pas au mot de passe, ou vous n'avez pas encore de compte.
2020-06-11T04:31:26+00:00 INFO 193.106.31.130 joomlafailure Le nom d'utilisateur ne correspond pas au mot de passe, ou vous n'avez pas encore de compte.
2020-06-11T07:15:51+00:00 INFO 193.106.31.130 joomlafailure Le nom d'utilisateur ne correspond pas au mot de passe, ou vous n'avez pas encore de compte.
2020-06-11T07:15:52+00:00 INFO 193.106.31.130 joomlafailure Le nom d'utilisateur ne correspond pas au mot de passe, ou vous n'avez pas encore de compte.
2020-06-11T07:15:52+00:00 INFO 193.106.31.130 joomlafailure Le nom d'utilisateur ne correspond pas au mot de passe, ou vous n'avez pas encore de compte.
2020-06-11T07:15:52+00:00 INFO 193.106.31.130 joomlafailure Le nom d'utilisateur ne correspond pas au mot de passe, ou vous n'avez pas encore de compte.
2020-06-11T07:15:52+00:00 INFO 193.106.31.130 joomlafailure Le nom d'utilisateur ne correspond pas au mot de passe, ou vous n'avez pas encore de compte.
2020-06-11T07:15:53+00:00 INFO 193.106.31.130 joomlafailure Le nom d'utilisateur ne correspond pas au mot de passe, ou vous n'avez pas encore de compte.
...
2020-06-11T07:17:08+00:00 INFO 193.106.31.130 joomlafailure Le nom d'utilisateur ne correspond pas au mot de passe, ou vous n'avez pas encore de compte.
2020-06-11T07:17:08+00:00 INFO 193.106.31.130 joomlafailure Le nom d'utilisateur ne correspond pas au mot de passe, ou vous n'avez pas encore de compte.
2020-06-11T07:17:08+00:00 INFO 193.106.31.130 joomlafailure Le nom d'utilisateur ne correspond pas au mot de passe, ou vous n'avez pas encore de compte.
2020-06-11T07:17:09+00:00 INFO 193.106.31.130 joomlafailure Le nom d'utilisateur ne correspond pas au mot de passe, ou vous n'avez pas encore de compte.
2020-06-11T07:17:09+00:00 INFO 193.106.31.130 joomlafailure Le nom d'utilisateur ne correspond pas au mot de passe, ou vous n'avez pas encore de compte.
2020-06-11T07:17:09+00:00 INFO 193.106.31.130 joomlafailure Le nom d'utilisateur ne correspond pas au mot de passe, ou vous n'avez pas encore de compte.
Donc si je sais lire, cet utilisateur arrive toujours à passer, avec plusieurs tentatives par secondes !
On remarque qu’il s’est écoulé 3 heures entre le dernier accès à 4:31 et le suivant 7:15. Donc ça devrait dépasser le time out des conexions établies, non ?
Effectivement il y a un truc pas normal. Soit tes règles iptables sont foireuses, le retour de :
iptables -L -n
permettrait de s’en assurer.
Soit l’IP des logs ne correspond pas à l’IP réelle de la machine qui tente cette attaque par force brute. Il faudrait voir les logs d’Apache pas ceux de joomla.
@anon29980398 : abuseipdb est toujours intéressant, on voit que cette même IP est active depuis plus d’un an sur ce type d’attaque.
Oui je vais paramétrer fail2ban mais j’aimerais comprendre pourquoi le parefeu installé ne fonctionne pas.
J’ai bien compris qu’une règle laissait tout passer mais je n’arrive pas à trouver laquelle. Voici le début du script iptables utilisé, pour moi tout est ouvert seulement sur l’interface lo loopback:
# Réinitialise les règles
iptables -t filter -F
iptables -t filter -X
# Bloque tout le trafic
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP
#Banned
ban
# Autorise les connexions déjà établies et localhost
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A OUTPUT -o lo -j ACCEPT
# ICMP (Ping)
iptables -t filter -A INPUT -p icmp -j ACCEPT
iptables -t filter -A OUTPUT -p icmp -j ACCEPT
...
Les tags « -i lo » et « -o lo » ne devrait ils pas s’appliquer seulement à l’interface loopback ?
Au temps pour moi, je ne t’ai pas demandé la sortie détaillée et j’ai mal interprété. Oui, la règle que j’évoquais est sûrement limitée à l’interface lo. Redonne :
iptables -L -n -v
Ceci dit cela ne change rien concernant l’ordre des règles, ici par exemple tu acceptes tout ce qui entre sur le port 80.
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
Si un paquet correspond à cette règle, les suivantes seront ignorées et donc celle qui est censée bannir l’IP en question.
C’est cela
Lorsqu’un paquet correspond à une règle celle-ci est appliquée (il est accepté ou rejeté) et les suivantes ont ignorées. D’où l’importance de l’ordre dans lequel elles son établies.
De manière générale on bloque d’abord on autorise ensuite.