Si vous utilisez CloudFlare les adresses IP de votre serveur ainsi que celles de vos utilisateurs seront masquées dans les logs. Cependant Cloudflare inclut l’adresse IP d’origine des visiteurs dans les en-têtes X-Forwarded-For
et CF-Connecting-IP
et ces dernières peuvent restaurer l’IP d’origine des visiteurs ou les inclure dans les logs avec l’utilisation du mod mod_cloudflare.
Configuration NGINX
Module pour obtenir l’IP des en-têtes
Le module ngx_http_realip_module
récupère l’adresse IP et le port envoyé·es dans l’entête HTTP. Pour vérifier s’il est installé, il suffit de lancer la commande nginx -v
. Le résultat n’est pas facile à lire mais vous devriez trouver une ligne correspondant à --with-http_realip_module
# nginx -V |
Utilisation
Directives :
Syntax: set_real_ip_from address | CIDR | unix:; |
Configuration
Dans le fichier /etc/nginx/nginx.conf
, il suffit de rajouter dans le bloc http{}
la liste des adresses/plages IP sur lesquelles ont souhaite récupérer les Headers afin de récuperer les vraies adresses IP ainsi que l’un des deux en-tête suivant real_ip_header CF-Connecting-IP
ou real_ip_header X-Forwarded-For
.
La liste des préfixes IP doit être vérifié régulièrement car elle est susceptible de changer : https://www.cloudflare.com/ips/. Et enfin pour inclure l’adresse IP d’origine des visiteurs dans les logs, il faudra ajouter les variables $http_cf_connecting_ip
et $http_x_forwarded_for
dans la directive log_format
.
# ---------------------------------------------------------- |
Configuration Apache
Documentation
https://support.cloudflare.com/hc/fr-fr/articles/200170786-Restaurer-l-adresse-IP-d-origine-du-visiteur-Enregistrer-les-adresses-IP-des-visiteurs-avec-mod-cloudflare-
https://danielmiessler.com/blog/getting-real-ip-addresses-using-cloudflare-nginx-and-varnish/
https://www.cloudflare.com/ips/
http://nginx.org/en/docs/http/ngx_http_realip_module.html
https://docs.nginx.com/nginx/admin-guide/monitoring/logging/
https://www.cyberciti.biz/faq/linux-unix-nginx-access-file-log-real-ip-address-of-visitor/