
Ich arbeite in einem großen Unternehmen mit Dutzenden von Firewalls und einem großen Proxy-Server. Von Zeit zu Zeit muss ich auf einige Dienste zugreifen, die sich in isolierten Netzwerken befinden, und ich habe Zugriff auf die Dienste in diesen Netzwerken. Derzeit habe ich den folgenden Ansatz:
Ich habe eine App, mit der ich lokale Tunnel konfiguriere, z. B.
ssh -L 30001:super01.secret.host:3419 secretServer1 ssh -L 30002:super01.secret.host:8080 secretServer1 ssh -L 30011:super02.secret.host:8080 secretServer1 ssh -L 30021:super03.secret.host:4000 secretServer2
Ich habe Lesezeichen für jeden Webdienst, die beispielsweise auf localhost:30001 verweisen.
Ich konfiguriere die lokalen Programme, die ich entwickle, so, dass sie die URLs localhost:30001 verwenden.
Ich weiß, dass es mit dynamischer Portweiterleitung und Socks-Proxy eine andere Möglichkeit gibt, aber die Konfiguration ist wirklich mühsam (wenn man bedenkt, dass ich sowieso einen systemweiten Proxy meiner Firma brauche).
Gibt es eine Möglichkeit, Anfragen, die an super01.secret.host:3419 gehen, umzuleiten und sie über localhost:30001 zu routen? Dann kann ich nämlich eine App (Skript) implementieren, in der Sie angeben, dass Sie über den Server secretServer1 auf super01.secret.host zugreifen möchten, und es wird eine lokale Portweiterleitung geöffnet und eine Umleitung erstellt. Oder gibt es eine noch schönere Möglichkeit, dies zu konfigurieren.
Mein Hauptziel: - alle Netzwerke systemweit einzurichten - einen transparenten Zugriff auf die Dienste aus den isolierten Netzwerken zu haben (d. h. wenn ich von diesem Netzwerk aus auf super01.secret.host:8080 zugreifen muss, möchte ich von meinem lokalen Rechner aus Zugriff auf denselben Host und Port haben) - ich möchte, dass alle übrigen Netzwerke wie bisher funktionieren (d. h. die Anfragen werden über den Proxy des Unternehmens geleitet, sofern sie nicht in der Noproxy-Liste stehen)
Antwort1
Sie können sowohl SSH-Proxys als auch Portweiterleitungen mit iptables verwenden
Sie richten SSH-Proxys ein, wie Sie es tun.
Portweiterleitung, z.B. für die erste Umleitung
iptables -A PREROUTING -t nat -i eth0 -p tcp -d secretServer1 --dport 3419 -j DNAT --to localhost:3001
Notiz: dies wurde nicht getestet