[gelöst][iptables] lProgramminstanz an eine IP binden
[gelöst][iptables] lProgramminstanz an eine IP binden
Hallo liebe Community!
Ich suche derzeit eine Möglichkeit eine laufende Programminstanz an ein Netzwerkinterface (z.B. eth0, eth0:1) , bzw. eine IP-Adresse zu binden. Wenn ich mich nicht irre sollte sowas ja mit IP Tables möglich sein, oder?
Habe versucht mich da einzulesen, schaffe es aber nicht.
Zweck ist, dass ich auf meinem Testsetup am Heimrechner mehrere Instanzen des selben Programms mit verschiedenen Parametern starten möchte und diese Programminstanzen verschiedene IPs für die Netzwerktraffic nutzen sollen.
Ich wäre für jegliche Hilfe dankbar
Liebe Grüße und noch ein frohes Fest,
Sebastian
Ich suche derzeit eine Möglichkeit eine laufende Programminstanz an ein Netzwerkinterface (z.B. eth0, eth0:1) , bzw. eine IP-Adresse zu binden. Wenn ich mich nicht irre sollte sowas ja mit IP Tables möglich sein, oder?
Habe versucht mich da einzulesen, schaffe es aber nicht.
Zweck ist, dass ich auf meinem Testsetup am Heimrechner mehrere Instanzen des selben Programms mit verschiedenen Parametern starten möchte und diese Programminstanzen verschiedene IPs für die Netzwerktraffic nutzen sollen.
Ich wäre für jegliche Hilfe dankbar
Liebe Grüße und noch ein frohes Fest,
Sebastian
Zuletzt geändert von Bueddl am 28.12.2011 15:43:59, insgesamt 2-mal geändert.
Re: Programminstanz an eine IP / Netzwerkinterface binden
Normaler Weise kann man den Programmen einfach sagen, auf welchen IP-Adressen sie lauschen sollen.
z.B. kannst du dem SSH-Daemon mittels ListenAddress mitteilen, auf welche IP er sich binden soll. Aehnliches kann eigentlich jedes Server-Programm.
z.B. kannst du dem SSH-Daemon mittels ListenAddress mitteilen, auf welche IP er sich binden soll. Aehnliches kann eigentlich jedes Server-Programm.
Re: Programminstanz an eine IP / Netzwerkinterface binden
Danke für deine Antwort!
Ja, bei einigen Programmen ist mir das durchaus bekannt, z.B. Apache, Bind, Mysql-Server, zahlreichen FTP-Servern usw. usw.
Ich nutze jedoch ein über wine und xvfb ausgeführtes Windows Programm (den framebuffer nur da ich keine Graphische ausgabe erhalten möchte, da ich Debian als Server nutze).
Ich denke das sollte mein Problem genauer spezifizieren
Danke nochmals und Lg,
Sebastian
Ja, bei einigen Programmen ist mir das durchaus bekannt, z.B. Apache, Bind, Mysql-Server, zahlreichen FTP-Servern usw. usw.
Ich nutze jedoch ein über wine und xvfb ausgeführtes Windows Programm (den framebuffer nur da ich keine Graphische ausgabe erhalten möchte, da ich Debian als Server nutze).
Ich denke das sollte mein Problem genauer spezifizieren
Danke nochmals und Lg,
Sebastian
Re: Programminstanz an eine IP / Netzwerkinterface binden
Du musst vermutlich an alle Ports binden, also implizit an 0.0.0.0. Du weißt den oder die Ports, auf dem der Dienst aktiv wird, also kannst du selektiv die anderen zu machen. Aber halt, du hast ja mehrere Dienste der gleichen Art… dann hast du wohl ein Problem. Würde mich auch interessieren, wie man das löst.
Gruß Cae
Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
Re: Programminstanz an eine IP / Netzwerkinterface binden
Oder gibt es in wine evtl. direkt eine Möglichkeit das genutze Netzwerkinterface anzugeben?
Grüße,
Sebastian
Grüße,
Sebastian
Re: Programminstanz an eine IP / Netzwerkinterface binden
Okay, nach ausgebiger suche habe ich nun erfahren, dass Wine diese Option nicht bietet.
Mir ist jedoch aufgefallen, dass alle Prozesse des Benutzers die abgeänderte IP tragen sollen, also habe ich mich weiter in IPTables eingelesen und habe mir folgendes "zusammengestellt":
Wobei XXX.XXX.XXX.XXX die "neue", bzw.abgeänderte Source-IP sein soll, eth0:1 das dazu passende Interface und MYUSER der Benutzer, aufdessen Prozesse / Traffic diese Regel angewandt werden soll. Ich beschränke mich auf TCP Pakete.
Leider funktioniert das ganze nicht, der Prozess läuft weiterhin unter der alten IP des eth0 Main-Interfaces.
Eine überprüfung von ergab:
Das sieht doch korrekt aus, oder irre ich mich da?
//EDIT:
ich habe es hinbekommen, der Fehler lag in dem Argument:
Da habe ich die Option wohl falsch verstanden... wie auch immer, weglassen dieser Option macht das ganze funktionsfähig! (jetzt bin ich stolz auf mich das doch alleine geschafft zu haben )
Aber es geht jetzt wie gewünscht!
Danke nochmal für eure Mühe und lG,
Sebastian
Mir ist jedoch aufgefallen, dass alle Prozesse des Benutzers die abgeänderte IP tragen sollen, also habe ich mich weiter in IPTables eingelesen und habe mir folgendes "zusammengestellt":
Code: Alles auswählen
# iptables -t nat -A POSTROUTING -p tcp -o eth0:1 -j SNAT --to-source XXX.XXX.XXX.XXX -m owner --uid-owner MYUSER
Leider funktioniert das ganze nicht, der Prozess läuft weiterhin unter der alten IP des eth0 Main-Interfaces.
Eine überprüfung von
Code: Alles auswählen
# iptables --list POSTROUTING -t nat
Code: Alles auswählen
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
SNAT tcp -- anywhere anywhere owner UID match MYUSER to:XXX.XXX.XXX.XXX
//EDIT:
ich habe es hinbekommen, der Fehler lag in dem Argument:
Code: Alles auswählen
-o eth0:1
Aber es geht jetzt wie gewünscht!
Danke nochmal für eure Mühe und lG,
Sebastian
Re: Programminstanz an eine IP / Netzwerkinterface binden
Nicht schlecht. Sieht so aus, also sollte ich mir die -m-Parameter und Verwandte mal genauer anschauen.Bueddl hat geschrieben:Code: Alles auswählen
# iptables -t nat -A POSTROUTING -p tcp -o eth0:1 -j SNAT --to-source XXX.XXX.XXX.XXX -m owner --uid-owner MYUSER
Btw. wenn das Problem damit aus der Welt ist, kannst du deinen ersten Post editieren und den Titel auf "[gelöst] Spaghetti sind toll" abändern. Danke
Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
Re: Programminstanz an eine IP / Netzwerkinterface binden
Cae hat geschrieben: Btw. wenn das Problem damit aus der Welt ist, kannst du deinen ersten Post editieren und den Titel auf "[gelöst] Spaghetti sind toll" abändern. Danke
Gruß Cae
Jetzt erscheint es mir auch logisch, dass es für Linux kein ForceBindIP wie unter Linux Windows gibt...es wird einfach nicht benötigt
gemacht
__
Edit: Wenn man einmal nicht voll bei der Sache ist
Zuletzt geändert von Bueddl am 28.12.2011 16:59:22, insgesamt 2-mal geändert.
Re: Programminstanz an eine IP / Netzwerkinterface binden
QFT.Bueddl hat geschrieben:Jetzt erscheint es mir auch logisch, dass es für Linux kein ForceBindIP wie unter Linux gibt...
Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier