Problème détection IP

Bonjour,
Hier sur un de mes WordPress. Je vois un bot qui teste l’ensemble des logins du site. J’essaye de bloquer l’IP, mais rien ne fait. En cherchant un peu, cet IP est une IP interne ( 10.0.20.0 ). J’en discute sur le slack wordpressfr, et apparemment les IP ne devrait pas être dans cet état là, il y a potentiellement un problème de sécurité côté hebergement. La piste serait peut être l’instruction if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') {$_SERVER['HTTPS'] = 'on';} .
La discution à commencé içi (il faut créer un compte) : https://wordpressfr.slack.com/archives/C053WC6DD/p1601495286043200
Je vais tenir à jour les infos sur ce fil.

Apparemment, la ligne de code : (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') {$_SERVER['HTTPS'] = 'on';} ne serait pas la cause. mais le proxy de l’hebergeur non crypté apparemment. Donc il se fait passer pour un utilisateur qui veut se connecter toute les 10 min approx et a donc une IP interne au proxy. Nous n’avons pas encore trouvé de moyen de bloquer ce robot.

Donc :
Le reverse proxy de l’hebergement d’ouvaton ne transmet pas correctement le header HTTP_X_FORWARDED_FOR et que du coup c’est impossible de black-lister des IPs.
Voilà apparemment le fond su sujet.

Bonjour,

Il me semble que c’est plutôt Wordpress qui utilise par défaut $_SERVER['REMOTE_ADDR'].

La variable $_SERVER['REMOTE_ADDR'] contient l’IP du proxy interne de la plateforme, la variable $_SERVER['HTTP_X_FORWARDED_FOR'] contient l’IP du visiteur.

Normalement en ajoutant les lignes ci-dessous dans le wp-config.php de Wordpress, ça doit le faire (je n’ai pas testé) :

// Récupérer l'IP du visiteur
if (isset( $_SERVER['HTTP_X_FORWARDED_FOR'])) { 
    $http_x_headers = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); 
    $_SERVER['REMOTE_ADDR'] = $http_x_headers[0]; 
}

Je ne sais pas, en tout cas, l’info remonté est que le proxy n’est pas correctement sécurisé. Ce que j’ai cru comprendre.

J’ai pas saisi le rapport entre l’affichage d’une IP et le fait que le proxy ne soit pas sécurisé.
Ca provient de quel discussion ?
C’est un affichage normal, tout comme le $_SERVER[‹ SERVER_ADDR ›].

J’ai vérifié toutes les machines, le $_SERVER[‹ HTTP_X_FORWARDED_FOR ›] est bien renvoyé correctement.

En fait sur mon WordPress, j’ai le plugin Simply History qui permet de loguer toutes les actions.
On voit donc les tentatives de log de robots :
image
Si vous regardez l’IP, 10.0.20.0, c’est une IP interne derrière un proxy. Ce qui n’est pas normal. je devrais voir l’IP public du bot.
Donc les collègues du slack WordPress plutôt orienté sécurité ont cherché avec moi. Et un a dû modifié un de ces plugin pour réussir à identifier les IP correct. Apparemment le bot récupère l’IP interne du proxy.
Voilà ce que j’ai compris.

Bonjour,

Ce genre de plugin offre parfois la possibilité de choisir la variable à utiliser, HTTP_X_FORWARDED_FOR ou SERVER_ADDR, selon que le Wordpress soit derrière un proxy ou pas.

Ce plugin visiblement n’utilise que SERVER_ADDR, et n’est pas bien adapté à la plateforme d’Ouvaton.

OK, donc apparemment la plupart des plugins en fait.
Il y a une configuration spécifique qui fait que très peu de plugins contrôle, c’est ça ?