Archiv verlassen und diese Seite im Standarddesign anzeigen : [access_log] Apache hinter Router mit Portforwarding
Hi,
Ich habe meinen Apache hinter einem Router (iptables) am laufen, der mittels Portforwarding (Dest.-NAT) erreichbar ist. In der access_log und error_log ist nun aber die Zugriffs-IP immer die interne IP des Routers. Wie kann ich erreichen, dass reelle Adressen in der access(error)_log geloggt werden.
RichieX
So einfach denke ich gar nicht. Die Adressen werden ja _real_ in Interne umgesetzt. Die Table zum Aufschlüsseln der Socketverbindungen und damit ein Zurückübersetzten wird nicht im Header übertragen sondern am Router lokal gespeichert.
Das hängt davon ab, ob Du ausschließlich DNAT benutzt, oder aber auch SNAT, um am Router die externe IP des anfragenden Clients in lokale Adressen umzuwandeln.
Benutzt Du zufällig ein Filterskript vom iptables Generator?
Harry
Zur Klärung der Fragen, der iptables Code (von Harry) :) - Dank an Harry!
# NAT fuer HTTP
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j DNAT --to-destination 192.168.28.110:80
iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 80 -j SNAT --to-source $LAN_IP
iptables -A FORWARD -i ppp0 -m state --state NEW -p tcp -d 192.168.28.110 --dport 80 -j ACCEPT
RichieX
Hi RichieX,
vorausgesetzt, Du hast Masquerading auf dem Router aktiviert _und_ Dein Webserver hat den Router als Default-Gateway in der Routingtabelle eingetragen, kannst Du die Zeilen mit dem Target "-j SNAT" einfach auskommentieren und den Filter neu starten.
Dann bekommst Du in den Logfiles die "echten" IP-Adressen der Clients geloggt.
Harry
Funktioniert! Danke Harry. Nun zum zweiten mal. :)
RichieX
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.