IP der Besucher hinter Router / NAT

phiomet

New Member
Hi,

ich bin am selbst basteln und lernen, bin für sämtliche Tips dankbar, aber mag keine Belehrungen. ;) Ich betreibe mein kleines Homepage Projekt, da ich mich als Laie nicht sonderlich gut damit auskenne, aber lernen möchte. Google ist dabei mein bester Freund, allerdings hab ich ein kleines Problem, wo ich nun anstehe.

Ich habe folgende Konfig:

Kabelanschluss mit 150/15 MBit und Kabelmodem, WLAN Router Netgear WNDR3700 V1 mit DD-WRT und kleien Atom Atom Server mit Ubuntu 13.04 Server, Apache2 und PHP5. Am Router habe ich via DMZ den Server nach aussen zugänglich gemacht und eine kleine Website mit Joomla erstellt. Diese ist von Aussen problemlos erreichbar, unter der Domain oder IP.

Nun würde ich gern die Besucher meiner Homepage festhalten können, also woher, wie lange dieser da war usw.. Dazu gibt es für Joomla (3.1) super Erweiterungen.

Mein Problem:

Ich kann keine externen IPs erkennen, mir wird bei Besuchern immer nur die Gateway IP des Routers (192.168.1.1) angezeigt und die nützt mir für die Homepagestatistik leider recht wenig.

Daher möchte ich wissen, welche Informationen ihr benötigt, um mir helfen zu können und wie ich das realisieren kann, dass mir die IP der Besucher angeeigt wird.

Vielen Dank!

Alex
 

PapaBaer

Registered User
Das klingt nicht danach, dass das wirklich reines NAT ist. Hast du einen Reverse-Proxy auf dem Router laufen?
 

Thunderbyte

Moderator
Staff member
Noch ein wichtiger Sicherheitshinweis: DMZ (Rechner steht mit allen Ports schutzlos im Internet) ist eine SCHLECHTE Idee. Besser wäre portbasiertes Weiterleiten EINZELNER Ports auf den Server, der eine private IP Adresse hat.
 

phiomet

New Member
Das klingt nicht danach, dass das wirklich reines NAT ist. Hast du einen Reverse-Proxy auf dem Router laufen?

Ich bin mir nicht sicher wenn ich ehrlich bin. Ich glaub aber nicht. Jedenfalls ist aktiv nichts eingestellt, was ein Proxy wäre.

Noch ein wichtiger Sicherheitshinweis: DMZ (Rechner steht mit allen Ports schutzlos im Internet) ist eine SCHLECHTE Idee. Besser wäre portbasiertes Weiterleiten EINZELNER Ports auf den Server, der eine private IP Adresse hat.

das ist mir klar, aber danke für den hinweis. ich möchte später dmz durch portweiterleitung ersetzen.
 

Thunderbyte

Moderator
Staff member
Und warum nicht gleich Portweiterleitung? Es gibt keinen Grund für eine DMZ, außer Bequemlichkeit. Und während der DMZ ist Dein Server quasi ungeschützt.
 

d4f

Kaffee? Wo?
und meine Frage nicht beantwortet.
War ein äusserst gut gemeinter Tipp von Thunderbyte der so manches Problem umgeht...
Technisch unterschiedlich ist eine NAT nicht zu Portforwarding. Falls du also so oder so die externen IP's nicht sehen kannst ändert das daran nichts.
 

phiomet

New Member
ok, war jetzt auch nicht so gemeint, wie es rüber kam, ich weiss, dass der tip gut gemeint war. ;)

ich stell das mal eben um.
 

Thunderbyte

Moderator
Staff member
Sofern die Sache noch gar nicht so eingerichtet ist, wie sie sein sollte, was helfen da unsere Beiträge? ;)

Davon abgesehen ein "Umgehungsvorschlag", der auch gleich noch positive Nebeneffekte bringt:

DNS Server zu https://www.cloudflare.com legen und von den Vorteilen (Lastverteilung, Sicherheit, DDoS Mitigation, etc.) profitieren: https://www.cloudflare.com/overview Hierdurch hast Du auch eine temporäre Website, sollte Deine Website mal nicht erreichbar sein.

Für Joomla: http://extensions.joomla.org/extensions/core-enhancements/performance/content-networking/16320 installieren. So sollten die korrekten Stats angezeigt werden. (Es gibt auch ein Wordpress Plugin).

Neben diesen diversen Vorteilen hat Cloudflare einfach auch einen komfortablen DNS Service.
 

phiomet

New Member
DNS Server zu https://www.cloudflare.com legen und von den Vorteilen (Lastverteilung, Sicherheit, DDoS Mitigation, etc.) profitieren: https://www.cloudflare.com/overview Hierdurch hast Du auch eine temporäre Website, sollte Deine Website mal nicht erreichbar sein.
erledigt

Für Joomla: http://extensions.joomla.org/extensions/core-enhancements/performance/content-networking/16320 installieren. So sollten die korrekten Stats angezeigt werden. (Es gibt auch ein Wordpress Plugin).
leider nur für 2.5 ich nutze joomla 3

habe nun dmz aus und ports drin, dns is auf cloudflare. ip wird immer noch gateway angezeigt.

danke für die tips schon mal, noch vorschläge zum probieren?

Edith sagt: Hey, es funkt! :D Die IPs werden nun korrekt weitergeleitet und angezeigt. Vielen, vielen Dank! :D
 
Last edited by a moderator:

Thunderbyte

Moderator
Staff member
Ich wollte schon schreiben, dass DNS Änderungen (insbesondere die Änderung der DNS Server) durchaus mehrere Stunden (bis zu 72) benötigen können. :)

Schön dass es jetzt klappt. Und neben der Tatsache, dass es passt, hast Du nun auch ein bisschen Traffic weniger (CDN) und lebst sicherer (diverse Mechanismen) hinter Cloudflare.
 

phiomet

New Member
hehe ja das war mir selbst bewusst, arbeite bei nem großen isp, da kenn ich mich ein klein wenig aus, auch wenns nicht meine fachrichtung ist. der traffic ist kein problem, hab ne 100/10er leitung daheim ohne begrenzung (arbeite bei meinem isp)

claudflare ist was feines, ich bin nur immer noch nicht dahintergekommen, wie ich subdomains auf bestimmte ports erstelle. ich hab zum beispiel eine webcam zur heimüberwachung (passwortgeschützter interner bereich) und das webmin panel drauf laufen und diese sind nur über einen bestimmten port erreichbar. teamspeak und minecraft steuern automatisch die richtigen an, aber im browser geht das leider nicht mit domain.net:port. optimal wäre halt eine zuweisung an einen subdomain bei cloudflare. das sprengt nur jetzt hier das eigentliche thema, wenn gewünscht schieb ich die frage in den passenden bereich. (serverdienste)
 
Last edited by a moderator:

Thunderbyte

Moderator
Staff member
MOD ANMERKUNG: Phiomet, ich bitte Dich dringend, auf Deine Groß- und Kleinschreibung zu achten. Wir haben in den Nutzungsbedingungen entsprechende Regelungen, die das fordern. Bei Nichteinhaltung werden wir (ver)warnen müssen. Ich bitte Dich, darauf zu achten.

claudflare

"Cloudflare" bitte.

ist was feines, ich bin nur immer noch nicht dahintergekommen, wie ich subdomains auf bestimmte ports erstelle.

Gar nicht. Das DNS ( http://de.wikipedia.org/wiki/Domain_Name_System ) hat mit Ports GAR NICHTS zu schaffen. Es ist nicht möglich, im DNS System Ports mitzugeben.

Du kannst aber hinter einer Subdomain einen Webserver auf dem Standardport 80 positionieren und eine der fünf hier genannten Redirect Möglichkeiten nutzen, bei denen Du dann den Port einbauen kannst.
 

phiomet

New Member
Gnaa ja sorry, wenn ich schnell mal was schreibe achte ich nicht auf die Groß/Kleinschreibung (Bin keine SO strenge Handhabung gewohnt, bin selbst auch bei 2 Techforen Mod ;) ). Hab mich in den vorherigen Posts auch versucht dran zu halten. Ach und Cloudflare war im Gedöns so falsch.

Gar nicht. Das DNS ( http://de.wikipedia.org/wiki/Domain_Name_System ) hat mit Ports GAR NICHTS zu schaffen. Es ist nicht möglich, im DNS System Ports mitzugeben.

Ok danke für die Info. Das mit dem Redirect schau ich mir dann an. Ergebnis geb ich dann hier bekannt, falls das noch wen interessiert.
 

phiomet

New Member
So, sorry, dass ich das alte Topic wieder ausgrabe, leider ist mein eigentliches Problem noch nicht gelöst.

Ich habe nach wie vor das Problem, dass wie im ersten Post beschrieben, keine Client IPs an den Server gehen.

Bei der Homepage ist das eine unangenehme Nebenerscheinung, aber noch nicht so wichtig. Problematisch wird das beim Teamspeak 3.

Hier kommen alle Clients mit der Gateway IP des Routers 192.168.1.1 an. Leider ist dadurch auch das Problem gegeben, wenn ein Server Admin einen Bann vergibt, wieder diese IP auch gesperrt...und alle sind vom Server gebannt. Portweiterleitung ist gegeben, sonst würde man den TS ja nicht von außen erreichen.

Proxy ist keiner aktiv. Mein Anbieter ist ein Kabelanbieter in Ö, der größte um genau zu sein. Was mir noch eingefallen ist, ich hatte vorher einen Linksys WRT54GS mit DD-WRT, dieser hat die IPs problemlos an den Server weiter geleitet.
Jetziger Router ist ein Netgear WNDR3700 mit DD-WRT in der aktuellsten Version.

LG
Alex
 

DeaD_EyE

Blog Benutzer
http://stackoverflow.com/questions/4262081/serverremote-addr-gives-server-ip-rather-than-visitor-ip

Nutzt du den apache2? Falls ja, dann schau mal hier: http://stackoverflow.com/questions/2247352/set-remote-addr-to-x-forwarded-for-in-apache

Dort wird mod_rpaf vorgeschlagen. Den musste ich damals einsetzen, wenn ich den Nginx als reverse Proxy vor dem Apache hatte. Ansonsten stimmen die IP-Adressen in den Logfiles nicht. Soweit ich weiß wird dann einfach REMOTE_ADDR durch X-Forwarded-For ersetzt.
 

elias5000

Site Reliability Engineer
Also ich würde ja versuchen dem Router abzugewöhnen die IP des Besuchers zu maskieren. Das Hinzufügen weiterer Komponenten um dieses Problem zu umgehen halte ich für keinen schönen Ansatz. Man sollte immer versuchen Komplexität zu entfernen, nicht welche hinzuzufügen.

Ein Dump der Routing-Tables des WRT-Routers wäre z.B. aufschlussreich um mal zu sehen, ob der Router ein SNAT vornimmt.
Da es vorher mit einem anderen Router ja ging, müssen die Pakete ja beim Eintreffen am Router noch ordentlich adressiert sein.

Nächster Schritt wäre, anzuschauen, wie das NAT konfiguriert ist und ob es da Optionen gibt, die das beeinflussen und die ggf. falsch eingestellt sind.
 

DeaD_EyE

Blog Benutzer
Sich mit dem NAT zu beschäftigen ist nicht unbedingt jedermanns Sache. Ich finde es immer ziemlich frustrierend mit iptables zu arbeiten.
 
Top