Forum: PC Hard- und Software Linux iptables forwarding


von Jens (Gast)


Lesenswert?

Hallo,

ich habe auf meinem Linux Ubuntu einen OpenVPN Server, auf dem ein 
Client angemeldet ist. Auf diesem läuft ein Webserver.

Diesen Webserver will ich nun über die eigene IP vom Ubuntu zugänglich 
machen (nämlich 192.168.178.56:80).

Daher möchte ich bei einem Aufruf von 192.168.178.56:80 den Inhalt von 
192.168.1.2:80 anzeigen. Zusätzlich soll diese Regel nur für einen 
bestimmten Clienten im Netzwerk gelten, nämlich 192.168.178.32.

1
echo "1" > /proc/sys/net/ipv4/ip_forward
Ist gesetzt.

All meine anschließenden iptables Einträge machen keine Funktion oder 
leiten scheinbar ins Nichts weiter.

Meine Einträge sehen beispielsweise so aus:
1
iptables -t nat -A PREROUTING -p tcp -s 192.168.178.32 --dport 80 -j DNAT --to 192.168.1.2:80

Für mich bedeutet diese Regel, wenn von der Quelle 192.168.178.32 auf 
Port 80 zugegriffen wird, leite weiter auf 192.168.1.2:80.

Muss ich dann auch eine Rückwärtsregel definieren?

Jens

von guest (Gast)


Lesenswert?

Jens schrieb:

[...]

> Muss ich dann auch eine Rückwärtsregel definieren?

wenn du willst das die pakete zurück kommen ... ja ;)

von Jens (Gast)


Lesenswert?

Dann erstelle ich eine Regel die besagt, dass Pakete von 192.168.1.2:80 
wietergeleitet werden auf 192.168.178.32:80.

Was ist, wenn mehreren Netzwerkteilnehmern so eine Regel zugewiesen 
werden soll?

Hin-Regeln:
1. Source: 192.168.178.32, Dport: 80, to: 192.168.1.2:80
2. Source: 192.168.178.33, Dport: 80, to: 192.168.1.2:80

Zurück-Regeln:
1. Source: 192.168.1.2, Dport: 80, to: ...... wie unterscheide ich jetzt 
zwischen den beiden Teilnehmern?

von Peter II (Gast)


Lesenswert?

guest schrieb:
>> Muss ich dann auch eine Rückwärtsregel definieren?
>
> wenn du willst das die pakete zurück kommen ... ja ;)

nein. Das macht er selber. So eine Regel kann man auch überhaupt nicht 
erstellen, weil es ja mehre Absender IPs gibt.

von Jens (Gast)


Lesenswert?

Das dacht ich mir irgendwie schon. Wieso könnte meine Regel aus dem 
ersten Beitrag ins Nichts laufen?

von Peter II (Gast)


Lesenswert?

Jens schrieb:
> Das dacht ich mir irgendwie schon. Wieso könnte meine Regel aus dem
> ersten Beitrag ins Nichts laufen?

hast du mal geprüft ob die Regel greift?

Bei OpenVPN kommen die Daten aus dem "nichts". man kann sie auch nicht 
mit dem Input auswerten.

iptables -L -v -t nat

zeigt dir, wie oft die Regel verwendet wurde.

von Jens (Gast)


Lesenswert?

Ich habe die iptables geleert und will mit folgenden Eintrag 
192.168.178.32 auf 192.168.178.24:80 umleiten:
1
iptables -t nat -A PREROUTING -s 192.168.178.32 -p tcp --dport 80 -j DNAT --to 192.168.178.24:80

Mit "iptables -L -v -t nat" stelle ich nun fest, dass Pakete für diese 
Regel greifen 20 bis jetzt.

Wenn ich auf 192.168.178.32 die Adresse (der Linux Host) 192.168.178.56 
aufrufe passiert gar nichts mehr. :(

von Peter II (Gast)


Lesenswert?

tcpdump mal mitlaufen lasen

von Jens (Gast)


Lesenswert?

Ich lasse tcpdump dest 192.168.178.24 auf dem Linux Host mitlaufen.

Wenn ich im Clienten nun http://192.168.178.24/ aufrufe sehe ich den 
Verkehr. Wenn ich http://192.168.178.56/ aufrufe passiert nichts.

von Jens (Gast)


Lesenswert?

Es funktioniert. Ich hatte übersehen, dass der Webserver immer auf https 
umleitet und ich dafür auch den Port freigeben musste.

von c.m. (Gast)


Lesenswert?

wie sind denn die IPs von den vpn endpunkten?

kann sein das du eine route von deinem vpn-server (192.168.178.32) zu 
deinem webserver-vpn-client (192.168.1.2) anlegen musst, damit der 
vpn-server weiß an welches interface er antworten für das 192.168.1.0/24 
netz senden soll.

können die rechner sich gegenseitig pingen?
also
192.168.178.32 ping -> 192.168.1.2
192.168.1.2 ping -> 192.168.178.32

von Jens (Gast)


Lesenswert?

c.m. schrieb:
> wie sind denn die IPs von den vpn endpunkten?
>
> kann sein das du eine route von deinem vpn-server (192.168.178.32) zu
> deinem webserver-vpn-client (192.168.1.2) anlegen musst, damit der
> vpn-server weiß an welches interface er antworten für das 192.168.1.0/24
> netz senden soll.
>
> können die rechner sich gegenseitig pingen?
> also
> 192.168.178.32 ping -> 192.168.1.2
> 192.168.1.2 ping -> 192.168.178.32

Ich kann jetzt nur die beiden Kommandos schreiben, mit denen ich 
erfolgreich war. Ping funktioniert.
1
iptables -t nat -A PREROUTING -i eth0 -p tcp -s 192.168.178.32 --dport 80 -j DNAT --to 192.168.1.2:80
2
3
iptables -t nat -A PREROUTING -i eth0 -p tcp -s 192.168.178.32 --dport 443 -j DNAT --to 192.168.1.2:443

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.