ubuntuusers.de

Konfiguration Apache Umleitungen

Status: Ungelöst | Ubuntu-Version: Server 19.04 (Disco Dingo)
Antworten |

Comandermech

Anmeldungsdatum:
11. Februar 2020

Beiträge: 5

Guten Tag,

ich versuche jetzt schon seit einiger Zeit Umleitungen auf meinem Apache-Server einzurichten. Und scheitere immer wieder an der Konfiguration, trotz das ich mich jetzt schon mit ProxyPass, ProxyPassReverse, RewriteRule und VirtualHost eingelesen habe steige ich noch immer nicht durch. Zum einen bin ich immer unsicher in welcher Config-Datei ich die Einstellungen vornehmen soll, zum anderen weiß ich nicht mit welchem Modul ich am besten meine Aufgabe angehen soll. Ich verwenden einen RasspberryPi 3 mit neu installiertem Apache 2.4. und habe ein My.Fritz Adresse für der Zugriff aus dem Internet. Dazu habe ich noch eine FHEM (Hausautomation) und eine Webcam am laufen. Sowie einen Netzwerkzugriff auf meine Heizungssteuerung.

Folgendes Ziel möchte ich erreichen:

Über die XXXX.myfritz.net Adresse alles über den Port 80 erreichbar machen. Das heißt:

XXXX.myfritz.net/Haussteuerung soll intern auf 192.168.0.AAA:8083 umgeleitet werden.

XXXX.myfritz.net/Hausstuere soll intern auf 192.168.0.BBB:8090 umgeleitet werden.

XXXX.myfritz.net/Heizung soll intern auf 192.168.0.CCC umgeleitet werden.

Dabei soll aber weiterhin in der Adresszeile der Brwosers immer die XXXX.myfritz.net/..../... Adresse angezeigt werden. Wie und mit welchen Modulen kann/muss ich das angehen um zum Ziel zu kommen??

Cranvil

Anmeldungsdatum:
9. März 2019

Beiträge: 990

Ich habe keine Erfahrung mit myfritz. Deine Beschreibung sagt mir, dass darüber auch dynamisches DNS möglich sein dürfte.

Wie dem auch sei: Alle deine myfritz-Hostnamen werden zu deiner einzelnen öffentlichen IP-Adresse auflösen und hinter der wird sich voraussichtlich eine FritzBox als Router verbergen. Da die FritzBox selbst eher nicht dafür bekannt ist, die Webserver-Konfiguration zugänglich zu machen, müsste hier eine Portweiterleitung vom öffentlichen Port 80 auf deinen (Haupt)Webserver im LAN definiert sein - alternativ einen sogenannten Exposed Host, bei dem einfach alles auf einen einzelnen Host geschleudert wird, was aus dem Internet kommt und nicht vorher angefragt wurde.

Hast du diese Umleitung bereits eingerichtet?

Um deine abschließende Frage zu beantworten, auch wenn ich jetzt noch nicht ins Detail gehe, wirst du eigentlich alle der genannten Module brauchen. ☺

Die Detailarmut hier hat nicht nur den Grund, dass ich erstmal die Frage mit der Portweiterleitung geklärt wissen will. Du möchtest anscheinend deine komplette Haussteuerung von außen zugänglich machen und das über eine nicht verschlüsselte Verbindung. Es lassen sich natürlich auch HTTP-Verbindungen über Port 80 verschlüsseln (man muss dann eben immer https://host.domain:80 eingeben), aber das wirst du voraussichtlich auch nicht so gern sehen.

Bitte mach dir klar, dass du mit einer solchen Konfiguration ein sehr hohes Risiko eingehst, dass Unbefugte Zugriff auf deine Haussteuerung erhalten. Wenn du den Komfort eines Fernzugriffs haben willst, empfehle ich dir die Benutzung einer VPN-Lösung (z.B. das VPN von der FritzBox selbst oder Wireguard).

Je nach Konfigurationsmöglichkeiten der VPN-Lösung kannst du einen eigenen (internen) DNS-Server angeben und dir deine eigene DNS-Domäne hochziehen. Dann hast du nicht xxx.myfritz.net/blubb, sondern haussteuerung.example.com, haustuere.example.com, …

Comandermech

(Themenstarter)

Anmeldungsdatum:
11. Februar 2020

Beiträge: 5

Danke Cranvil für die Infos.

Ja über myfritz geht dynamisches DNS, ist auch schon eingerichtet und auch die Portweiterleitung auf meinen (Haup)Webserver ist eingerichtet, aktuell über Port 80.

Die Weboberfläche ist dann mit Benutzername und Passwort geschützt. OK unverschlüsselt ist dass wohl nicht besonderst sicher, dass war mir noch nicht so richtig bewust. Wäre es nicht auch eine Möglichkeit das ganze über https (Port 443), also dann verschlüsselt zu realisieren?

VPN weis ich was es ist und habe gesehen wie das auf er Fritzbox eingerichtet wird, allerdings weis ich jetzt nicht, was ich auf Seite der Endgeräte (Handy, FirmenPC usw.) brauche. Oder ist es besser, wenn mein (Haup)Webserver auf die VPN verbindung antwortet?

Cranvil

Anmeldungsdatum:
9. März 2019

Beiträge: 990

Comandermech schrieb:

Wäre es nicht auch eine Möglichkeit das ganze über https (Port 443), also dann verschlüsselt zu realisieren?

Das würde das Sicherheitsniveau deutlich erhöhen, ja. Hier hast du wiederum unterschiedliche Möglichkeiten, wobei Let's Encrypt für öffentlich erreichbare Ressourcen die am wenigsten nervige Lösung bietet.

VPN weis ich was es ist und habe gesehen wie das auf er Fritzbox eingerichtet wird, allerdings weis ich jetzt nicht, was ich auf Seite der Endgeräte (Handy, FirmenPC usw.) brauche. Oder ist es besser, wenn mein (Haup)Webserver auf die VPN verbindung antwortet?

Das ist fast egal. Wenn ich mich recht entsinne, ist FritzBox-VPN ein verkapptes Cisco-VPN - ich kann aber auch daneben liegen. Ich hatte hier kürzlich jemandem eine Anleitung für Ubuntu 18.04 auf der avm-Website verlinkt, also gehe ich davon aus, dass du da was finden wirst. Machst du deinen Webserver zum VPN-Endpunkt, bist du natürlich mit der Auswahl deiner Lösungen (OpenVPN, Wireguard, …) und deren Konfiguration flexibler.

Gerade mit Blick auf den FirmenPC könnte es problematisch werden. Da hängt es sehr von den vorherrschenden Richtlinien und deren Umsetzung ab, was du darfst, kannst und machst.

Comandermech

(Themenstarter)

Anmeldungsdatum:
11. Februar 2020

Beiträge: 5

Gerade mit Blick auf den FirmenPC könnte es problematisch werden. Da hängt es sehr von den vorherrschenden Richtlinien und deren Umsetzung ab, was du darfst, kannst und machst.

Bezeiht sich das nur auf das VPN oder auch auf's https?

Ich weis, das ich von der Firma aus, per https auf meine Einstellungen der Fritzbox komme - https würde also gehen. Ich denke in diese Richtung sollte ich weiter gehen und wäre für jede Hilfe dankbar.

Cranvil

Anmeldungsdatum:
9. März 2019

Beiträge: 990

Comandermech schrieb:

Bezeiht sich das nur auf das VPN oder auch auf's https?

Gewissermaßen auf beides. Wenn dein Chef sagt, dass du auf deinem Arbeitsgerät bzw. im Unternehmensnetzwerk keinen Privatkram zu erledigen hast, kann der Zugriff rein technisch weiterhin möglich sein. Können heißt also nicht gleich dürfen. Nimm dir ein Beispiel am deutschen Recht: Du darfst nicht einfach auf die Straße gehen und Leute abstechen. Es ist aber auch nicht so, als würde dich jemand daran hindern, damit anzufangen - nur die Folgen sind eben so unschön.

Ich weis, das ich von der Firma aus, per https auf meine Einstellungen der Fritzbox komme - https würde also gehen. Ich denke in diese Richtung sollte ich weiter gehen und wäre für jede Hilfe dankbar.

Wenn du die Fritzbox weiterhin von extern steuern möchtest und das auch über den Standard-Port für HTTPS, musst du dich für einen alternativen Port entscheiden. Deine URL werden dann also nicht https://bla.myfritz.net/blubb lauten, sondern z.B. https://bla.myfritz.net:8443/blubb lauten.

Eine alternative Möglichkeit wäre, den Port 443 von der Fritzbox auf deinen Hauptwebserver umzuleiten und dann noch einen weiteren Reverse Proxy hierfür zu definieren oder das Webinterface der Fritzbox auf einen anderen Port zu legen. Hier weiß ich allerdings nicht, wieviel die Fritzbox überhaupt zulässt.

Damit wir dir weiterhelfen können, benötigen wir nochmal ein etwas genaueres Bild deines aktuellen Standpunktes. Ich verweise zunächst mal unverbindlich auf unser Wiki (Apache, TLS-Zertifikate - Abschnitt Let's Encrypt) und gehe davon aus, dass du in der Folge nicht die Frage stellen wirst, 100% deiner Konfiguration zu schreiben.

Comandermech

(Themenstarter)

Anmeldungsdatum:
11. Februar 2020

Beiträge: 5

Danke die Infos, sorry das ich mich erst jetzt melde aber ich hatte die letzte Wochen nicht so viel Zeit, um hier weiterzumachen.

Ich denke das ich das Ganze jetzt über den Port 443 versuche und für die Fritzbox einen Reverse Proxy einrichte. Von der Firma aus möchte ich nur sporadich zugreifen und bin mir der Problematik des "dürfens" bewust.

Ich werde mich jetzt mit Apache und TLS Zertifikate auseinandersetzen, um das mal zum laufen zu bekommen.

Melde mich wenn ich da weiter gekommen bin, kann nur etwas daueren die Zeit ist im Moment etwas knapp.

Cranvil

Anmeldungsdatum:
9. März 2019

Beiträge: 990

Comandermech schrieb:

Melde mich wenn ich da weiter gekommen bin, kann nur etwas daueren die Zeit ist im Moment etwas knapp.

Tu das. Von uns wird dir in der Regel auch keiner Fristen setzen. 😉

Comandermech

(Themenstarter)

Anmeldungsdatum:
11. Februar 2020

Beiträge: 5

Hallo,

ich bin jetzt schon etwas weiter gekommen. Ich habe jetzt ein privates Zertifikat erstellt, so das ich zumindest eine verschlüsselte Verbindung über https aufbaue. Wenn der Rest alles klappt werden ich dann auf ein öffentliches Zertifikat umstellen.

Die aufrufe ohne Verschlüsselung werden über eine ssl.conf schon auf https umgeleitet und die Proxy Weiterleitungen werden über Benutzername/Passwort geschützt.

In der Datei ssl.conf habe ich dafür folgende Zeilen eingefügt:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<VirtualHost *:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
RemoteIPHeader X-Forwarded-For
 
# Weiterleiten auf Haustuere
    ProxyPass /Haustuere/ http://192.168.0.BBB:8090/
    ProxyPassMatch ^/Haustuere/(.*) http://XXXX.myfritz.net/Haustuere/$1
    ProxyPassReverse /Haustuere/ http://192.168.0.BBB:8090/
    ProxyHTMLURLMap http://192.168.0.BBB:8090 /Haustuere/

....Gleiches für die anderen Weiterleitungen

# LogFiles 
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

    <Proxy *>
        AuthType Basic
        AuthName "Password for FHEM Required"
        AuthUserFile /etc/fhem-htpasswd
        Require valid-user
        Order deny,allow
        Allow from all
    </Proxy>

</VirtualHost>

Die Umleitung von .../Hausstuere geht damit schon mal, .../Heizung und .../Haussteuerung nicht richtig.

Bei der .../Haussteuerung (FHEM) fehlt die Formatierung (ccs) wird nur als Texte dargestellt.

Bei der .../Heizungssteuerung ist es so das ich im lokalen Netz 192.168.0.CCC aufrufen, kurz irgendeine Seite aufblinkt und dann in der Adresszeile "192.168.0.CCC/http/start/j_index.html" steht und ich die Startseite der Heizung sehe. Gehe ich jetzt über https://XXXX.myfritz.net/Heizung/ sehe ich auch kurz eine Webseite aufblinken und dann steht "https://XXXX.myfritz.net/http/index.html" in der Adresszeile. Wie finde ich da raus was passiert?

Noch eine Frage zur Angabe der Weiterleitung in der ssl.conf. Was ist eigentlich der unterschied zwischen den Angabe wie oben und dem folgenden?

1
2
3
4
5
6
<Location /Heustuere>
    ProxyPass http://192.168.0.BBB:8090/
    ProxyPassReverse http://192.168.0.BBB:8090/
    ProxyHTMLURLMap http://192.168.0.BBB:8090 /Haustuere/                   ???
    ProxyPassMatch ^/Haustuere/(.*) http://XXXX.myfritz.net/Haustuere/$1    ???
</Location>

Bei den Zeilen mit ??? bin ich mir nicht sicher ob ich die dort überhaupt eintragen darf.

Antworten |