136185
20.06.2018
2163
7
0
Probleme bei Weiterleitung mit IPtables
Hallo zusammen,
ich verzweifle an Iptables und der Weiterleitung damit.
Ich besitzte einen Root Server bei Strato mit 2 festen IP Adressen. Auf diesem läuft eine VM. Nun möchte ich sämtliche Daten, die über IP Adresse 2 eingehen, an die VM weiterleiten, welche mit dem Hauptserver über eine virtuelle Brücke verbunden ist und darin den eigenen Adressraum 192.168.122.X hat. Ich habe es bereits mit versucht, allerdings erhalte ich nur einen Timeout. Wenn ich mit dem Hauptserver verbunden bin, kann ich mich per SSH mit der VM verbinden und auf der VM besteht auch eine uneingeschränkte Internetverbindung.
Ich hoffe, dass mir jemand helfen kann und vielen Dank im vorraus.
Finn
ich verzweifle an Iptables und der Weiterleitung damit.
Ich besitzte einen Root Server bei Strato mit 2 festen IP Adressen. Auf diesem läuft eine VM. Nun möchte ich sämtliche Daten, die über IP Adresse 2 eingehen, an die VM weiterleiten, welche mit dem Hauptserver über eine virtuelle Brücke verbunden ist und darin den eigenen Adressraum 192.168.122.X hat. Ich habe es bereits mit
iptables -t nat -A PREROUTING -p tcp -d 85.214.XXX.XXX -j DNAT --to-destination 192.168.122.58
Ich hoffe, dass mir jemand helfen kann und vielen Dank im vorraus.
Finn
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 377624
Url: https://administrator.de/contentid/377624
Ausgedruckt am: 24.11.2024 um 17:11 Uhr
7 Kommentare
Neuester Kommentar
wenn die VM per Bridge verbunden ist, dann brauchst du doch kein NAT machen, sondern kannst der VM direkt die öffentliche IP verpassen.
Ein DNAT macht imo nur Sinn, wenn die VM in einem Host-only Netzwerk läuft.
Ein DNAT macht imo nur Sinn, wenn die VM in einem Host-only Netzwerk läuft.
Was bei den meisten "RootServern sind cool" Hostern zum baldigen sperren des Ports führt da hier dann eine unbekannte Mac Adresse auftaucht.
Der Weg hier geht immer über Routing auf/über eine Bridge auf ein internes Netzwerk (Virtueller switch, tap device, whatever)
@136185
Wie sieht deine "Virtuelle Brücke" aus ? Welche Weiteren Iptables Regeln hast du ?
Da du aus der VM Internet hast gehe ich davon aus das ein PNAT existiert ? (MASQUERADE)
iptables -t nat -A PREROUTING -p tcp -s 85.214.XXX.XXX -j DNAT --to-destination 192.168.122.58
Sollte ggf. besser klappen, man beachte das -s statt des -d.
Denn du möchtest ja die Source IP Umleiten...
Mhhh Mal lose in den Raum geworfen:
1.) Standardkonfiguration von QEMU gibt es nicht in Bezug auf Netzwerk. Wie startest du die VM mit welchen Parametern ?
2.) dein brctl show sieht schonmal nicht schlecht aus, auch wenn virbr0-nic nicht in deiner liste auftaucht.
allerdings kenne ich es das das interfaces im Promisc mode laufen mus.
z.B
3.) Netzwerknamen / Interface Namen klingen ein wenig danach das ein VM Verwalter
wie libvirt oder dergleichen benutzt wird. Dann bitte den prüfen.
4.) was sagt den ein "iptables -t nat -L". Deine VM wird nicht Internet haben weil es glaubt Internet zu haben. Ohne ein NAT Irgendwo gibt es für die VM auch kein Internet (Proxy oder dergleichen mal abgesehen)
und wenn schon mal dabei auch ein iptables -L
5.) Doofe frage aber IP und Gateway in der VM auch richtig gesetzt ?
6.) Doofe frage aber IP forward auch eingeschaltet ? (cat /proc/sys/net/ipv4/ip_forward sollte "1" ergeben
1.) Standardkonfiguration von QEMU gibt es nicht in Bezug auf Netzwerk. Wie startest du die VM mit welchen Parametern ?
2.) dein brctl show sieht schonmal nicht schlecht aus, auch wenn virbr0-nic nicht in deiner liste auftaucht.
allerdings kenne ich es das das interfaces im Promisc mode laufen mus.
z.B
KVM_TAP4 Link encap:Ethernet Hardware Adresse fa:8c:0b:42:c7:20
...
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metrik:1
...
...
3.) Netzwerknamen / Interface Namen klingen ein wenig danach das ein VM Verwalter
wie libvirt oder dergleichen benutzt wird. Dann bitte den prüfen.
4.) was sagt den ein "iptables -t nat -L". Deine VM wird nicht Internet haben weil es glaubt Internet zu haben. Ohne ein NAT Irgendwo gibt es für die VM auch kein Internet (Proxy oder dergleichen mal abgesehen)
und wenn schon mal dabei auch ein iptables -L
5.) Doofe frage aber IP und Gateway in der VM auch richtig gesetzt ?
6.) Doofe frage aber IP forward auch eingeschaltet ? (cat /proc/sys/net/ipv4/ip_forward sollte "1" ergeben
zu1.)
Ich habe keine Lust mir einen 3 Jahre alten Artikel durchzulesen. Entweder ist er Falsch oder Dir ist es nicht möglich ihn zu befolgen,
da ggf. irgendwelche Voraussetzungen nicht identisch sind, die Du nicht erkennst und ich nicht erraten kann.
Sonst würde es ja gehen...
der Rest schaut soweit ganz OK aus, bis auf bis die große Ausnahme:
Wo kommt der ganze Iptables Müll her?
Du willst dich mit deiner Firewall auseinandersetzten und da einmal aufräumen.
Oder raus finden wer oder was den ganzen Schrott da hinzufügt.
das hier ist richtig und OK
Der erste macht das Dnat zu deiner VM,
das zweite das Pnat für nach draußen.
Alles andere ist mehr oder minder Müll, doppelt Unsinnig oder schlechtes Design.
Es ist z.b Unsinnig in der Input als Default Drop zu haben, einen Dienst zu erlauben,
ein dutzend Dienste zu Droppen um dann den ganzen rest wieder zu erlauben.
Hier noch ein falsches SNAT, crap in der Output chain und so weiter...
das hier aber bricht dir evt. das Genick für deinen speziellen Fall.
Du bleibst also ggf. in deiner eignen Firewall hängen.
Wie oben schon gesagt, schaue es Dir in Ruhe an und finde raus wer oder was deine
config so zumüllt.
EDIT nachtrag:
steht da ja noch im direkten anschluss und sollte demnach doch alles durchlassen..
Dann ist es evt. noch die SNAT regel die da nicht hingehört in der POSTROUTING der NAT chain...
Ich habe keine Lust mir einen 3 Jahre alten Artikel durchzulesen. Entweder ist er Falsch oder Dir ist es nicht möglich ihn zu befolgen,
da ggf. irgendwelche Voraussetzungen nicht identisch sind, die Du nicht erkennst und ich nicht erraten kann.
Sonst würde es ja gehen...
der Rest schaut soweit ganz OK aus, bis auf bis die große Ausnahme:
Wo kommt der ganze Iptables Müll her?
Du willst dich mit deiner Firewall auseinandersetzten und da einmal aufräumen.
Oder raus finden wer oder was den ganzen Schrott da hinzufügt.
das hier ist richtig und OK
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp -- anywhere 85.214.XXX.XXX to:192.168.122.58
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 192.168.122.0/24 !192.168.122.0/24
Der erste macht das Dnat zu deiner VM,
das zweite das Pnat für nach draußen.
Alles andere ist mehr oder minder Müll, doppelt Unsinnig oder schlechtes Design.
Es ist z.b Unsinnig in der Input als Default Drop zu haben, einen Dienst zu erlauben,
ein dutzend Dienste zu Droppen um dann den ganzen rest wieder zu erlauben.
Hier noch ein falsches SNAT, crap in der Output chain und so weiter...
das hier aber bricht dir evt. das Genick für deinen speziellen Fall.
chain FORWARD (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere 192.168.122.0/24 ctstate RELATED,ESTABLISHED
ACCEPT all -- 192.168.122.0/24 anywhere
Du bleibst also ggf. in deiner eignen Firewall hängen.
Wie oben schon gesagt, schaue es Dir in Ruhe an und finde raus wer oder was deine
config so zumüllt.
EDIT nachtrag:
ACCEPT all -- anywhere anywhere
Dann ist es evt. noch die SNAT regel die da nicht hingehört in der POSTROUTING der NAT chain...