NGINX Reverse proxy Apache : récupérer l’IP du client

NGINX Reverse proxy Apache : récupérer l’IP du client

Il y a quelques temps, j’ai rencontré un problème pour récupérer l’IP du client afin de pouvoir utiliser Fail2Ban correctement (bloquer l’IP de mon reverse proxy étant problématique 😉 . Ci-dessous mon architecture :

Configuration Nginx :

Il faut ajouter ces paramètres dans votre bloc server :

location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass https://IP_web_server
}

ensuite on vérifie la conf et on relance Nginx

nginx -t
nginx -s reload

Configuration Apache2

Nous allons devoir utiliser le module apache rpaf

 apt-get install libapache2-mod-rpaf

On créé le fichier de conf /etc/apache2/conf-available/rpaf.conf et on insère ces paramètres en modifiant IP_Reverse_Proxy par l’adresse du serveur Nginx :

nano /etc/apache2/conf-available/rpaf.conf

<ifmodule rpaf_module>
RPAFenable On
RPAFsethostname On
RPAFproxy_ips IP_Reverse_Proxy
</ifmodule>

On active le module et la configuration :

a2enmod rpaf
a2enconf rpaf

On redémarre apache pour prendre en compte la nouvelle configuration et le tour est joué.

systemctl restart apache2

Contrairement à moi, certaines personnes rencontrent un problème avec le module rpaf et doivent utiliser remoteip. Vous pouvez suivre ce tuto pour cela

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *