IP-Adressen hinter Cloudflare wiederherstellen
Wenn Cloudflare als Proxy für eine Webseite fungiert, wird die ursprüngliche IP-Adresse der Besucher maskiert. Um diese wiederherzustellen, empfiehlt Cloudflare, den CF-Connecting-IP
-Header zu nutzen. Für Apache-Server wird das Modul mod_remoteip
verwendet, da mod_cloudflare
nicht mehr unterstützt wird. So können die echten IP-Adressen wieder korrekt in den Logs erscheinen.
Es folgt die Installationsanleitung für Apache 2.4 unter Debian 12.
mod_remoteip aktivieren
Prüfen ob mod_remoteip vorhanden ist
ls /etc/apache2/mods-available/ | grep remoteip
remoteip.load
Aktivieren
sudo a2enmod remoteip
Enabling module remoteip.
To activate the new configuration, you need to run:
systemctl restart apache2
Testen ob installiert
apache2ctl -M | grep remoteip
remoteip_module (shared)
Trusted Proxy-Konfiguration
sudo nano /etc/apache2/apache2.conf
<IfModule mod_remoteip.c>
RemoteIPHeader CF-Connecting-IP
RemoteIPTrustedProxy 173.245.48.0/20
RemoteIPTrustedProxy 103.21.244.0/22
RemoteIPTrustedProxy 103.22.200.0/22
RemoteIPTrustedProxy 103.31.4.0/22
RemoteIPTrustedProxy 141.101.64.0/18
RemoteIPTrustedProxy 108.162.192.0/18
RemoteIPTrustedProxy 190.93.240.0/20
RemoteIPTrustedProxy 188.114.96.0/20
RemoteIPTrustedProxy 197.234.240.0/22
RemoteIPTrustedProxy 198.41.128.0/17
RemoteIPTrustedProxy 162.158.0.0/15
RemoteIPTrustedProxy 104.16.0.0/13
RemoteIPTrustedProxy 104.24.0.0/14
RemoteIPTrustedProxy 172.64.0.0/13
RemoteIPTrustedProxy 131.0.72.0/22
RemoteIPTrustedProxy 2400:cb00::/32
RemoteIPTrustedProxy 2606:4700::/32
RemoteIPTrustedProxy 2803:f800::/32
RemoteIPTrustedProxy 2405:b500::/32
RemoteIPTrustedProxy 2405:8100::/32
RemoteIPTrustedProxy 2a06:98c0::/29
RemoteIPTrustedProxy 2c0f:f248::/32
</IfModule>
LogFormat anpassen
Statt der Direktive %h die Direktive %a nehmen
LogFormat "%a %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
Konfiguration prüfen
sudo apache2ctl configtest
Syntax OK
Apache neu starten
sudo service apache2 restart
Fertig!
sudo service apache2 status
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; preset: enabled)
Active: active (running) since Sat 2024-10-05 18:13:07 CEST; 1min 19s ago
Docs: https://httpd.apache.org/docs/2.4/
Process: 644382 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
Tasks: 130 (limit: 9249)
Memory: 56.6M
CPU: 499ms
CGroup: /system.slice/apache2.service
├─644415 /usr/sbin/apache2 -k start
├─644416 "vlogger (access log)"
├─644417 /usr/sbin/apache2 -k start
├─644418 /usr/sbin/apache2 -k start
├─644420 "Passenger watchdog"
├─644423 "Passenger core"
├─644444 /usr/sbin/apache2 -k start
└─644445 /usr/sbin/apache2 -k start
Oct 05 18:13:07 cloud2 systemd[1]: Starting apache2.service - The Apache HTTP Server...
Oct 05 18:13:07 cloud2 systemd[1]: Started apache2.service - The Apache HTTP Server.
tail -F /var/log/apache2/access.log | egrep '^[^ ]+'
Siehe auch
Cloudflare: restoring original visitor IPs
https://developers.cloudflare.com/support/troubleshooting/restoring-visitor-ips/restoring-original-visitor-ips
Cloudflare IP range, last updated: 28.09.2023
https://www.cloudflare.com/ips/
Apache module mod_remoteip
https://httpd.apache.org/docs/2.4/mod/mod_remoteip.html
Apache module mod_log_config
https://httpd.apache.org/docs/current/mod/mod_log_config.html