[gelöst][iptables] lProgramminstanz an eine IP binden

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
Bueddl
Beiträge: 22
Registriert: 25.06.2009 14:28:55

[gelöst][iptables] lProgramminstanz an eine IP binden

Beitrag von Bueddl » 27.12.2011 01:01:05

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
Zuletzt geändert von Bueddl am 28.12.2011 15:43:59, insgesamt 2-mal geändert.

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Re: Programminstanz an eine IP / Netzwerkinterface binden

Beitrag von nepos » 27.12.2011 09:44:50

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.

Bueddl
Beiträge: 22
Registriert: 25.06.2009 14:28:55

Re: Programminstanz an eine IP / Netzwerkinterface binden

Beitrag von Bueddl » 27.12.2011 10:34:17

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

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Programminstanz an eine IP / Netzwerkinterface binden

Beitrag von Cae » 27.12.2011 21:51:12

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
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

Bueddl
Beiträge: 22
Registriert: 25.06.2009 14:28:55

Re: Programminstanz an eine IP / Netzwerkinterface binden

Beitrag von Bueddl » 28.12.2011 01:09:32

Oder gibt es in wine evtl. direkt eine Möglichkeit das genutze Netzwerkinterface anzugeben?

Grüße,
Sebastian

Bueddl
Beiträge: 22
Registriert: 25.06.2009 14:28:55

Re: Programminstanz an eine IP / Netzwerkinterface binden

Beitrag von Bueddl » 28.12.2011 13:37:18

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":

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
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

Code: Alles auswählen

# iptables --list POSTROUTING -t nat  
ergab:

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
Das sieht doch korrekt aus, oder irre ich mich da?


//EDIT:

ich habe es hinbekommen, der Fehler lag in dem Argument:

Code: Alles auswählen

 -o eth0:1
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 :D)

Aber es geht jetzt wie gewünscht!

Danke nochmal für eure Mühe und lG,
Sebastian

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Programminstanz an eine IP / Netzwerkinterface binden

Beitrag von Cae » 28.12.2011 15:21:34

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
Nicht schlecht. Sieht so aus, also sollte ich mir die -m-Parameter und Verwandte mal genauer anschauen.
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

Bueddl
Beiträge: 22
Registriert: 25.06.2009 14:28:55

Re: Programminstanz an eine IP / Netzwerkinterface binden

Beitrag von Bueddl » 28.12.2011 15:44:22

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 :D

gemacht ;-)

__
Edit: Wenn man einmal nicht voll bei der Sache ist :D
Zuletzt geändert von Bueddl am 28.12.2011 16:59:22, insgesamt 2-mal geändert.

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Programminstanz an eine IP / Netzwerkinterface binden

Beitrag von Cae » 28.12.2011 16:24:02

Bueddl hat geschrieben:Jetzt erscheint es mir auch logisch, dass es für Linux kein ForceBindIP wie unter Linux gibt...
QFT. :mrgreen:

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

Antworten