Hallo,
ich suche nach einer anderen Einstellung meiner Linux Firewall-Lösung.
Istzustand:
- Ich habe einen Debian Vserver im Internet gemietet. Dieser hat eine
feste IPV4
- der Vserver baut zur Fritzbox Zuhause einen VPN Tunnel auf
- per Firewall Regel leite ich nun Port 80 vom Vserver nach Hause durch
den Tunnel auf meinen kleinen Webserver
Regeln der Firewall:
-A FORWARD -p tcp -m tcp -d 192.168.178.80/32 --dport 80 -j ACCEPT
-A PREROUTING -p tcp -m tcp -i venet0 --dport 80 -j DNAT
--to-destination 192.168.178.80:80
-A POSTROUTING -p tcp -m tcp -d 192.168.178.80 --dport 80 -j SNAT
--to-source 192.168.178.201
192.168.178.201 = VPN Adresse des Vservers
192.168.178.80 = Webserver Zuhause
Das Problem ist nun Logischerweise das der Webserver Zuhause immer die
.201 IP sieht welche auf Daten zugreift und nie die Echte IP des
Aufrufers aus dem Internet.
Wie kann ich die Firewall-Konfig anpassen das der Webserver Zuhause die
Echten IP Zugriffe aus dem Internet sieht?
Lukas schrieb:> Wie kann ich die Firewall-Konfig anpassen das der Webserver Zuhause die> Echten IP Zugriffe aus dem Internet sieht?
Wenn der Webserver die echte IP sieht, wird er seine Antwort "direkt" an
diese schicken und das VPN umgehen. Das ginge nur, wenn du alle Daten
über das VPN sendest, und eine explizite Route für die Adresse des
V-Servers festlegst, damit dieser noch erreichbar ist.
Das source NAT macht ja genau dieser Eintrag:
-A POSTROUTING -p tcp -m tcp -d 192.168.178.80 --dport 80 -j SNAT
--to-source 192.168.178.201
Wenn Du ihn weglässt, sollte die Verbindung mit der "echten" Adresse
ankommen. Allerdings wird das nicht funktionieren da
a) Du für Deinen Tunnel einen festen Satz an Netzen angegeben hast
b) Die Fritzbox bei Dir zu Hause nicht weiß, dass sie genau diese Public
IP Adresse über den Tunnel und nicht den normalen Internetzugang
erreichen kann
Es ginge also nur, wenn Du Deinen GESAMTEN Internet-Traffic durch den
Tunnel zum Vserver schickst.
Ok Danke hab es verstanden.
Vielleicht ist mein grundsätzlicher Ansatz auch nicht der richtige.
Mein allererster Ansatz war anders:
Wenn ich nun den Vserver zu einem VPN Server mache und auf den Webserver
Zuhause eine VPN Verbindung zum Vserver aufbauen lasse dann wäre dieser
eigentlich doch am Vserver komplett mit einer IP erreichbar und ich
bräuchte nur eine Portweiterleitung ohne NAT?
Wie wärs mit einem reverse Proxy auf dem Vserver? Neben dem Log vom
Proxy gibts zu Hause im Header beispielsweise:
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
Lukas schrieb:> Wenn ich nun den Vserver zu einem VPN Server mache und auf den Webserver> Zuhause eine VPN Verbindung zum Vserver aufbauen lasse
Die "Richtung" vom VPN spielt keine Rolle. Das ganze kann nur
funktionieren, wenn der Webserver im Heimnetz ausschließlich den
V-Server sieht und alles über diesen umleitet; er hätte dann keinen
"normalen" Internetzugang mehr.
Ja das hatte ich auch versucht, da es doch "etwas" komplexer ist komme
ich mit dem reverse-proxy irgendwann an die Stelle das mod_proxy_msrpc
gebraucht wird welches aber nicht sauber funktioniert :(
Dr. Sommer schrieb:> und alles über diesen umleitet; er hätte dann keinen> "normalen" Internetzugang mehr
Ja ok stimmt das war glaube ich auch mal ein Versuch. da habe ich dann
versucht eine 2. Netzwerkkarte im Webserver zu haben welche dann für den
Lokalen Traffic verwandt wird mit route regeln für die lokalen IPs da
hat dann aber auch etwas anderes nicht geklappt.
ok, du meinst also den VPN Tunnel so lassen und statt der Linux Firewall
den Nginx als reverseproxy verwenden um an die IPs zu vermitteln?
Kann Nginx in dem Fall auch mit Rohdaten umgehen? Also ohne http Header
usw.?
Lukas schrieb:> Kann Nginx in dem Fall auch mit Rohdaten umgehen? Also ohne http Header> usw.?
Das ist ein Web-Proxy. Bei dem genannten Port 80 ging ich allerdings
davon aus, dass es um http geht.
Einem nackten Datenstrom kannst du nichts in die Tasche stecken.
Entweder gibt es Metadaten, in denen sich ggf die von dir gesuchte Info
reinschreiben lässt. Oder es gibt sie eben nicht, aber dann wirst du
ausser in einem Protokoll auf dem Vserver nichts über die IP-Adresse
erfahren.
Du kannst natürlich die nötigen Infos aus Firewall, Proxy, Forwarder...
ins Syslog schreiben und dieses an deinen Server forwarden. Dort
müsstest du das dann "nur noch" passend auswerten.
ok, ja Webserver wäre nur eine der Anwendungen, xmpp und noch ein paar
andere Sachen würden dazukommen. Aber eben IP.
Vielleicht hab ich ja doch mal eine andere Idee.
Lukas schrieb:> Istzustand:> - Ich habe einen Debian Vserver im Internet gemietet. Dieser hat eine> feste IPV4
Lass mich raten und der ist nicht gemanaged.
Ganz schlecht und die Miete wird nicht über eine GmbH abgewickelt. Du
bist also schon mit Haus und Hof in der Haftung.
Mein Rat, kündige den Vertrag und miete einen managed Server.
Denn du musst dich 24 h rund um die Uhr um den Server kümmern können, es
muss immer einer da sein, der, wenn du schläfst sich um die Maschine
kümmert.
Für alle Schäden, die von deinem Server ausgehen, bist du voll in der
Haftung.
Für den Fall, das der kompromittiert wird und Amok läuft und dann andere
Server schädigt wirst du mit Schadenserstatzklagen rechnen müssen.
Und dann kommt es darauf an, wie der Schaden entstanden ist und ob er
vermeidbar gewesen wäre.
> - der Vserver baut zur Fritzbox Zuhause einen VPN Tunnel auf> - per Firewall Regel leite ich nun Port 80 vom Vserver nach Hause durch> den Tunnel auf meinen kleinen Webserver
Wieso das?
Wieso lässt du den Webserver nicht auf dem VServer direkt laufen?
Dieser hat eine schnellere Anbindung als dein Rechner Zuhause und läuft
vor allem auch rund um die Uhr.
A. K. schrieb:> Nano schrieb:>> Für alle Schäden, die von deinem Server ausgehen, bist du voll in der>> Haftung.>> Ist das bei seinem Server zu Hause anders?
Ich bin kein Jurist, aber ich denke schon. Weil die Qualität der
Anbindung Zuhause eine ganz andere ist als ein richtiger Server der
direkt an den Internetknoten angebunden ist.
Ebenso ist die Verantwortung und das zu erwartende und nötige Know How
die dir als Serverbetreiber rechtlich unterstellt wird, eine ganz
andere, als die, die ein Laie Zuhause haben muss.
Rechtlich wird man davon ausgehen, dass ein Nutzer Zuhause keine
besonderen Fähigkeiten benötigen wird um einen Rechner Zuhause mit
Internetverbindung zu betreiben. So etwas wie ein Internetführerschein
ist auch nicht vorgeschrieben.
Als Serverbetreiber für einen Server bei einem Hoster wirst du aber
sicherlich als Profi bewertet, nicht als Laie. Also wirst du auch
wesentlich schärfer vor Gericht beurteilt werden.
Würde ein Laie bspw. einen Server betreiben, dann würde der Richter das
wahrscheinlich als fahrlässig und somit vermeidbar einstufen und den
Laien schuldig sprechen, eben weil die Unkenntnis da nicht mehr genügt.
Genausowenig, es gibt ja auch welche, die sich durchaus auskennen, das
fehlen einer weiteren Person, die sich um den Server kümmert, wenn man
selbst sich zur gegebenen Zeit nicht darum kümmern kann.
Das ist wahrscheinlich analog so, wie wenn ein Vermieter der Laie ist,
sich selbst um die Elektroinstallation kümmert und der Mieter dann zu
Schade kommt.
Da ist es nicht mehr die eigene Wohnung des Vermieters.
Wobei das, wie schon gesagt aber nur eine Analogie ist und die müssen
nicht immer 100 % passen.
Nichts schrieb:> Warum nicht direkt auf den Server zu hause zugreifen? (DynDNS).
Sorry du weißt leider nicht wie Mailversand in der heutigen Zeit zu
funktionieren hat.
Andere was wäre wenn Szenarien mit vermeidlichen Ausgängen von
Strafprozessen und Richtersprüchen sind hier total irrelevant.