Willkommen im #Neuland
Login wie bei quake.ingame.de zuvor, die Passwörter aus der alten Datenbank wurden aber gelöscht - einmal hier neu anfordern.
Wer seine E-Mail-Adresse nicht mehr hat oder kennt, bitte eine Nachricht mit Infos schicken o. im Discord melden.

PQ Discord Server: #planetquake                                                                                                                                         Spenden? Hier entlang!

Windows 7 o. Firefox o. Opera o. IE -IP-Adresse auf Localhost NATten

Netzwerk- und Internettechnik, Lan-Partys, IRC, Eggdrops uvm.
Antworten
rund
Accuracy
Accuracy
Beiträge: 8184
Registriert: Aug 2000

Windows 7 o. Firefox o. Opera o. IE -IP-Adresse auf Localhost NATten

Beitrag von rund »

Moin moin,
ich habe folgendes Problem:

Um mich in ein Firmennetzwerk einzuloggen habe ich über HTTP einen Portalzugang, von dem aus nach Authentifizierung mir RSA SecurID eine Java-Software "Network Connect" von Juniper gestartet wird, welche mir erlaubt auf einen Server (als Beispiel 1.1.1.1) per SSH zuzugreifen (ganz normal über Putty o.ä.). Soweit schonmal fein. In der Windows-Netzwerkumgebung wird für die Dauer der Verbindung ein Netzwerkadapter eingeblendet und in der Routingtabelle finde ich einen Eintrag des benötigten Servers (1.1.1.1) mit Metrik 1 auf den Adapter.

Vermutlich ist auf dem Dial-In-Server eine entsprechende Accessliste installiert, die nur Port 22 zulässt, deswegen würde ich gerne HTTP über SSH tunneln.
In Putty konnte ich einrichten, dass für die Ziel-IP (1.1.1.1) ein lokaler Port (127.0.0.1:80) auf den SSH-Tunnel geleitet wird. Auch das funktioniert noch.
Wenn ich jetzt im Browser localhost aufrufe lande ich auf der Website des Servers.
ABER: Wenn ich z.B. phpmyadmin aufrufe treffe ich auf absolute Pfade in denen die wirkliche IP des Servers (1.1.1.1) steht, anstelle der lokalen IP 127.0.0.1 die Putty benötigen würde um die Pakete auf den SSH-Tunnel zu lenken. Folglich kann ich das Webinterface nicht verwenden.

Jetzt such ich nach einer Möglichkeit in Windows, in einem beliebigen Browser oder über kostenfreie Zusatzsoftware die Server-IP 1.1.1.1 auf Localhost (127.0.0.1) zu mappen.

Ideen?
z3r0c00l
Biker
Biker
Beiträge: 1066
Registriert: Dez 2003

Beitrag von z3r0c00l »

Ich denke mit SocksCAP würde das z.B. funktionieren, indem du für deine Programme wie Firefox "localhost" als Ziel-Tunnelserver angibst.
rund
Accuracy
Accuracy
Beiträge: 8184
Registriert: Aug 2000

Beitrag von rund »

Jein... Das Problem ist ja, dass ich nur eine ganz bestimmte IP (OK, später mal mehrere, aber aktuell reicht die eine...) auf den SSH-Tunnel lenken will. Der Rest der Webseiten soll ganz normal den lokalen Internet-Breakout nutzen (der Server hätte auch keinen und wenn das Login-Portal nicht mehr erreichbar ist bricht auch die Session zusammen).

Ich hab jetzt mal mit Greasemokey experimentiert:

Code: Alles auswählen

// ==UserScript==
// @name         HTTP Tunnel Redirect-Script
// @version      0.1
// @namespace    *
// @author       rund
// @include	     http://localhost*
// ==/UserScript==
//

var replace_ip = '1.1.1.1';
var replace_with = 'localhost';

//Parse links
var allLinks, thisLink;
allLinks = document.evaluate(
    '//a[@href] | //base[@href] | //link[@href]',
    document,
    null,
    XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
    null);
	 
for (var i = 0; i < allLinks.snapshotLength; i++)
{
		thisLink = allLinks.snapshotItem(i);
		if (thisLink.href.match(replace_ip))
		{	thisLink.href = thisLink.href.replace(replace_ip, replace_with); }
}

//Parse images
var allImgs, thisImg;
allImgs = document.evaluate(
    '//img',
    document,
    null,
    XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
    null);

for (var i = 0; i < allImgs.snapshotLength; i++)
{
		thisImg = allImgs.snapshotItem(i);
		if (thisImg.src.match(replace_ip))
		{	thisImg.src = thisImg.src.replace(replace_ip, replace_with); }
}

//Parse forms
var allImgs, thisImg;
allImgs = document.evaluate(
    '//form[@action]',
    document,
    null,
    XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
    null);

for (var i = 0; i < allImgs.snapshotLength; i++)
{
		thisImg = allImgs.snapshotItem(i);
		if (thisImg.action.match(replace_ip))
		{	thisImg.action = thisImg.action.replace(replace_ip, replace_with); }
}


Das funktioniert im Prinzip schon ganz gut, aber wenn in irgendwelchen JavaScripten von PHPMyAdmin die IP noch fix drin steht bekomme ich die damit nicht heraus. Etwas träge ist die Lösung auch noch (Ich vermute mal, weil erst die Requests an 1.1.1.1 austimen müssen)....

Gibt es eine Möglichkeit die Javascript-Sachen noch mit abzufangen?
Also JavaScript mit JavaScript zu ändern? :ugly:
rund
Accuracy
Accuracy
Beiträge: 8184
Registriert: Aug 2000

Beitrag von rund »

Hi again,
für Lunix hab ich jetzt eine Lösung gefunden:

Erst eine SSH-Session öffnen (wie mit Putty unter Win), die einen lokalen Socket öffnet:
ssh -XY -L 80:1.1.1.1:80 user@1.1.1.1

Dann mit iptables die Ziel-IPs natten:
iptables -t nat -A OUTPUT -p tcp -d 1.1.1.1 --dport 80 -j DNAT --to-destination 127.0.0.1:80

Unter Windows bin ich leider noch nicht weiter.....
rund
Accuracy
Accuracy
Beiträge: 8184
Registriert: Aug 2000

Beitrag von rund »

So, hat sich erledigt....
Nach einem Softwareupdate von PHPMyAdmin hab ich relative URLs und kann somit das komplette Webinterface über localhost ansprechen. :)
Antworten