Hallo.
Nachdem ich endlich einen nginx revers proxy aufgesetzt hatte um die Dienste im Netz endlich auf verschiedene Server zu verteilen ist mir aufgefallen dass bei den o.g. Punkten als "Source IP" nun die IP vom Proxy stand und nicht mehr die des Hosts aus dem Internet.
Das war extrem blöd da ich erstens innerhalb von PHP Scripten die Umgebungsvariable $_SERVER["REMOTE_ADDR"] genutzt habe und auch in den Apache Config mittels der
Order Deny,Allow teilweise nur bestimmte Source IP, z.B. nur aus dem lokalen Netz oder einem Host im Internet, zugelassen hatte.
Auf einmal war z.B. phpmyadmin für alle sichtbar statt ein Forbidden zu bekommen.
Wenn also jemand sucht und keine Lösung findet, hier ist sie :
Im nginx ist ganz gut beschrieben wie man die IP als X-FORWARD_FOR weitergibt.
Die Config im nginx für den host sieht z.B. so aus :
server {
server_name meinedomain.dns.test;
location / {
proxy_set_header REMOTE_ADDR $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass https://192.168.178.20;
}
Klappt auch wunderbar, nur der Apache dahinter bekommt die Source IP aus dem Netz nicht mehr mit sondern sieht stattdessen die IP von nginx.
Nach stundenlangen Suchen im Netz hatte ich die Lösung :
1. Auf dem Apache a2enmod remoteip aktivieren.
2. in der entsprechenden Config des VHOST in der <VirtualHost> RemoteIPHeader X-Forwarded-For einfügen.
3. Apachen neu starten.
Und alles geht wieder wie gewohnt.