Apache Weiter-/Durchleitung auf IIS zum IP-Symcon Webfront

Hallo,

sitze gerade mal ein paar tausend Kilometer weg von der Heimat und das leider etwas länger. Da ich schon mal hier war, bin ich davon ausgegangen, dass die Internetverbindung wieder ungefähr so schnell wie beim letzten mal ist. Leider ist die Connection extrem schlecht.
OpenVPN geht, putty funktioniert, wenn auch langsam.
Was sonst immer ging:

  • Remotekonsole auf den Ubuntu 12.04LTS Server - extrem langsam mit vielen Abbrüchen, quasi nicht zu gebrauchen
  • VNC auf den Server geht gar nicht

Tja, was soll ich sagen. Ich hab OpenVPN nur Point to Point eingerichtet. Das möchte ich auch nicht ändern. Der Ubuntu Server hat in meinem Netz die IP 192.168.49.1. Auf dem Server läuft eine VirtualBox mit Windows XP. Auf dieser Windows XP VM läuft unter anderem IP-Symcon. Die Adresse der VM ist 192.168.49.3. Das Webfront rufe ich im lokalen Heimnetz mit 192.168.49:50347 auf.
Mir hat es immer gereicht, mich auf den Server Desktop zu verbinden und auf diesem Remote zu arbeiten. Da geht ja nun leider nicht mehr, da die Connection sehr langsam ist. Daher suche ich jetzt eine Möglichkeit, den Zugriff auf das Webfront über den Apache auf dem Server umzuleiten. Der Apache stellt mir jetzt schon diverse Webseiten zur Verfügung, z. B. VDR und Squeezebox.

Nun meine Idee (Bsp)
Aufruf der Seite 192.168.49.1/webfront -> Umleitung der Abfrage durch Apache nach 192.168.49.3:50347 und ausliefern des auf dem Windows XP liegenden IP-Symcon Webfronts (192.168.49.3:50347); also den 192.168.49.3 quasi einfach durchleiten

Wie gesagt: Ich erreiche aus der Ferne nur die 192.168.49.1. Alle anderen Rechner im Heimatnetz sind nicht erreichbar. Also die VM mit 192.168.49.3 ist von aussen nicht erreichbar.

Ich hoffe, dass ich mich verständlich ausgedrückt habe. Ich bin leider mit dem Apache nicht gerade verheiratet, ich habe zwar was im Netz zu Virtualhosts in der httpd.conf gefunden. Bin aber wohl irgenwie zu blöd, das korrekt zu parametrieren. Hat da vielleicht jemand einen Link oder eine config oder ne Idee oder kennt sich halt mit Apache aus?

Danke euch, würde doch gerne mal wieder das Webfront sehen. Mit lynx im putty auf der Konsole ist das ja nun nicht gerade der Hit :slight_smile:

Danke euch und Gruß aus dem fernen Asien
Martin

:loveips:

Richte im Apache einen Reverse Proxy ein mit Ziel die VM-IP und Port. Geht bei mir ohne Probleme, sogar mit SSL extern. ABER wenn in dem Webfront Dateien aus dem /<webfrontdir> includiert werden und der Ersteller keine relativen Pfade verwendet in den Links (img, link, etc) dann gehen Diese nicht.
Könnte heute Abend mal ein Beispiel senden, falls nicht verständlich.
Michael

Gesendet von meinem GT-I5800 mit Tapatalk 2

Hallo Michael

vielen Dank für die Info. Mit der genannten Einschränkung bzgl. webfrontdir könnte ich gut leben. Hab hier derzeit nur wenig Zeit. Falls du Lust und Zeit hast, wäre ich für die config äußerst dankbar. Ansonsten schonmal vorab vielen Dank für die Info.

Wenn ich das so sehe, war ich mit meinen Versuchen am Ziel vorbei …:wink:

Gruß
Martin

Hier mal ein Auszug wie ich es habe, nur das es bei mir alles über Port 443 mit SSL läuft.
Wichtig ist eigentlich nur der Bereich <Location>, grundlegendes wie ServerAdmin, DocumentRoot etc. habe ich mal raus gelöscht. Bei mir ist es alles in zig VirtualHost unterteilt, sollte aber auch im ‚Main‘ server configuration Bereich der httpd.conf gehen.


<VirtualHost 192.168.X.HOST:80>
	ServerName your.domain.com:80
	<Location /ips/>
		ProxyPass http://192.168.X.VM:IPS_PORT/
		ProxyPassReverse  http://192.168.X.VM:IPS_PORT/
	</Location>
</VirtualHost>

Ich habe das ganze inzwischen so weit getrieben, das ich alle meine Webinterfaces (Webmail, PRTG, phpMyAdmin etc.) über eine SSL-Domain mit Unterverzeichnissen über den Indianer erreichen kann. (siehe Blog und Blog per SSL)

Hat nur zwei unschöne Effekte.

Dieser hier tritt auf, wenn man für jeden nachgeschalteten Server keine eigene (sub)Domain hat, sondern die Unterscheidung über das Verzeichnis macht (wie ich oben).
Nicht jedes Software/Webinterface mag es, weil ja der absolute Pfad der URL ändert.
RoundCube & phpMyAdmin gingen sofort, hier dies berücksichtigt.
Wordpress wollte erst gar nicht (Anpassung nötig).
IPS geht alles was das Webfront ab Werk mitbringt. Die Einbindung eigener Grafiken, HTML/PHP-Seiten oder CSS/JS-Dateien darf dann aber nur mit relativem Pfad ( statt /user/fritz/Callin.png einfach user/fritz/Callin.png oder statt /user/folder/js/javascript.js dann …/…/user/folder/js/javascript.js ) geschehen.

Abhilfen gibt es, aber aufwendig und fehlerträchtig (z.B. Apache den Inhalt in Echtzeit anpassen lassen).
Oder einfach für jeden nachgeschalteten Webdienst eine eigene (sub)Domain. (Würde bei mir gehen, habe aber leider nur ein SSL-Zertifikat für eine SubDomain, dafür umsonst.)

  1. Einige Softwaren, so auch IPS :loveips:, erkennen nicht das der Zugriff von extern über einen Proxy kommt.
    Das Feld ‚X-Forwarded-For‘ welches der ReverseProxy an den nachgeschalteten Server im HTTP-Header übergibt wird nicht ausgewertet.
    Problem ist z.B. bei IPS das hier die Funktion ‚Erfordere Passwort nur bei externem Zugriff‘ jeden Zugriff über den Proxy ohne Passwort ermöglicht, da die IP des Proxy ja eine interne ist.

Viel Spaß beim Indianer auf’s Kreuz legen :smiley:

Michael

Hallo Michael

vielen vielen Dank. Da hab ich heute Abend (oder am Sonntag) was zu tun. Da war ich tatsächlich am Ziel vorbei. Da bin ich mal gespannt, ob der Indianer danach auf dem Kreuz liegt. :slight_smile:
Melde mich, ob es geklappt hat. Deine Idee ist echt gut. Allerdings habe ich derzeit den Webserver nicht nach aussen offen. Ich greife nur per VPN zu.

Gruß
Martin

Hallo Michael,

da auf die Koreaner wie immer Verlass ist, waren „meine“ Server heute noch nicht an Ort und Stelle. Somit hatte ich eine ruhige Minute :).
Was soll ich sagen: funzt super. Es kamen ein paar Sachen zusammen, was zeigt, dass man Logs lesen sollte.

  1. Fehlender symb. Link auf libxml2.so.2 in /usr/lib i386-linux-gnu
  2. Fehlender symb. Link unter /etc/apache2/mods-enabled auf proxy_http.load

Das war schonmal Grundvoraussetzung.

Dann hatte ich bei meinen ersten Versuchen noch mit RewriteRule und RewriteCond gearbeitet, das hat zunächst mehr gestört, als geholfen.

Hier mal meine derzeitige Konfig für drei Webseiten.


<VirtualHost 192.168.49.1:80>
<------>ServerName mars4.local
<------>DocumentRoot /var/www
<------>#<Location />
<------>#<----->ProxyPass http://192.168.49.1/
<------>#<----->ProxyPassReverse http://192.168.49.1/
<------>#</Location>
        <Location /ips/>
<------><------>ProxyPass http://192.168.49.3:50347/
<------><------>ProxyPassReverse http://192.168.49.3:50347/
<------></Location>
<------><Location /vdr/>
<------><------>ProxyPass http://192.168.49.1:8008/
<------><------>ProxyPassReverse http://192.168.49.1:8008/
<------></Location>
<------><Location /php/>
<------><------>ProxyPass http://192.168.49.1/phpmyadmin/
<------><------>ProxyPassReverse http://192.168.49.1/phpmyadmin/
<------></Location>
<------>
<------>#TransferLog /var/log/ipstrans.log
<------>#ErrorLog /var/log/ipserr.log
</VirtualHost>

Ein letztes Problem trat noch dadurch auf, dass ich zunächst immer „http://192.168.49.1/ips“ in die Adressbar des Browsers eingegeben habe. Damit wird die Location dann natürlich nicht erkannt. Mit dem Aufruf „http://192.168.49.1/ips/“ (abschließender Slash) hats dann geklappt. An dieser Stelle könnte man jetzt noch mit RewriteCond/Rule arbeiten, um den fehlenden slash gegebenfalls zu ergänzen.

Mit deinem Beispiel kann ich jetzt wie gewünscht auf alle distributierten Webseiten problemlos verlinken. Hab jetzt zusätzlich eine zentrale Webseite unter /var/www/index.html erstellt, die auf alle meine verstreuten Webseiten verweist, hätte ich schonmal lange vorher machen sollen. Da brauche ich mir jetzt nichts mehr merken. Das Webfront und auch andere Seiten laufen wunderbar. Und für die Webseiten reicht meine schlechte Internetverbindung gut aus.

Also nochmal vielen Dank. Endlich wieder ein wenig IPSmcon.

Gruß
Martin