PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Proxy Instanzen (Ports) über versch. Interfaces routen



tetexx
22.01.20, 19:29
Guten Abend Community,

ich komme aktuell einfach nicht weiter und suche nach einer RTR Lösung.

Habe auf meinem Server mehrere dedizierte IP-Adressen und einen Proxy-Daemon mit der Summe an Instanzen wie es IP-Adressen gibt. Jede Instanz läuft auf einem eigenen Port und lauscht an der primären NIC.

Beispiel:

Summe der IP-Adressen: 20
eth0 -> Instanz Port 6001 - 6021

Jetzt möchte ich, dass wenn der Client auf


Proxy-Port 6001 verbindet, er über eth0 raus geht
Proxy-Port 6002 verbindet, er über eth0:1 raus geht
Proxy-Port 6003 verbindet, er über eth0:2 raus geht


Ich komm hier einfach nicht weiter ;(

Gruß
tetexx

marce
22.01.20, 19:41
Hülft Dir https://www.systutorials.com/816/port-forwarding-using-iptables/?

Poste aber bitte mal ein paar Infos mehr - aktuell kann ich mir noch nicht so recht vorstellen, was da konkret bei Dir "Sache ist".

tetexx
22.01.20, 20:44
Ich versuche es nochmal anders zu erklären.

Ich habe einen Server mit 20 (dedizierten) IP-Adressen.

Auf dem Server laufen 20 Proxy-Instanzen. Jede Instanz hat einen eigenen Port von 6001 - 6021.

Jetzt möchte ich, wenn ich auf die Instanz mit Port 6002 verbinde, dass beim Aufruf von z.B.
curl --socks5 -U "user:pass" "host:6002" -L "https://ifconfig.co" mir die IP des Netzwerk-Adapter eth0:1 angezeigt wird.

Gleiches Spiel mit Instanz auf Port 6003 -> eth0:2, 6004 -> eth0:3 usw...

Also aller Traffic der über Port 6001 rein kommt, soll über eth0:1 laufen
alles was über Port 6002 rein kommt, soll über eth0:2 laufen... usw

Hoffe das ist nun verständlicher? :)

Dukel
22.01.20, 22:06
Das ist der selbe Text wie beim ersten Beitrag nur etwas anders formuliert.

Sind das alles Webdienste (HTTP(S))? Dann würde sich ja ein Reverse Proxy / HA Proxy anbieten.
Oder was läuft auf diesen Interfaces? Was ist dein Ziel?

tetexx
22.01.20, 22:11
Was ein Proxy macht ist aber klar oder? *joke?*

Client -> Proxy (auf Port 6001) -> Alle Anfragen auf dem Port über ETH0:1 leiten
usw...

marce
23.01.20, 06:47
Mir ist immer noch nicht so recht klar, was Du willst und wozu das Konstrukt gut sein soll (und wie es hinter ethxy:portxy weitergehen soll) - daher erst mal nur Vermutungen:

Erst mal sollte jeder Service nur auf dem Interface horchen, auf dem er arbeiten soll - sprich nicht *:6001 sondern eth0:1:6001 als Listen-Direktive.
Dann muss man ggf. noch ein wenig an dem Routing arbeiten - es soll daher wohl keine Default-Route / default-Gateway geben?

tetexx
23.01.20, 09:30
Ich spreche hier von gewöhnlichen HTTP/Web-Proxies zum surfen und "cachen/anonymisieren/..." der eigenen öffentlichen IP-Adresse.

Früher war es so, dass unsere Entwicklung für diverse Abfragen an Schnittstellen von mir einen TOR-Socks Server bekommen hat. Nach jedem /etc/init.d/tor reload hat man eine neue IP-Adresse bekommen was ich per Cronjob einfach alle 60 Sekunden habe ausführen lassen. Jetzt braucht unsere Entwicklung aber dedizierte IP-Adressen und keine automatische neue IP mehr (60 Sekunden) sondern sie möchte selbst entscheiden wann mit einer neuen IP raus kommuniziert wird.

Daher war meine Idee als Zugangspunkt die Haupt-IP des Servers zu nehmen und dann an jede Instanz, die sich lediglich beim Port unterscheidet, an ein eigenen Gateway (Interface eth0, eth0:1, etc...) zu knüpfen, dass wenn wir eine Abfrage über Proxy(Host-IP:6001) machen, ausgehend wir sozusagen über den Gateway der ersten Instanz surfen.

Unserer Entwicklungsabteilung gebe ich dann lediglich eine IP + Zugangsdaten und die verschiedenen Ports über welche sie dann selbst bestimmen können, mit welcher IP-Adresse sie raus kommunizieren.

Wenn ich mich nicht täusche brauch ich lediglich eine IpTables Regel die besagt, dass alles was über Port z.B. 6001 rein kommt, den Server über den Gateway von eth0:1 verlassen soll.