ubuntuusers.de

Zwei physische Hosts als Webserver mit vier Domains managen

Status: Gelöst | Ubuntu-Version: Ubuntu 23.04 (Lunar Lobster)
Antworten |

EnHerrman

Anmeldungsdatum:
23. März 2021

Beiträge: Zähle...

Hallo Leute,

ich stehe gerade voll auf dem Schlauch:

Habe in meinem LAN hinter einer FritzBox zwei physische Hosts (Beispiel "Betrieb" und "Privat"). Auf jedem Host läuft Ubuntu Server mit Apache als Webserver mit jeweils 2 vHosts und den entsprechenden Webanwendungen: www.Betrieb.de, cloud.Betrieb.de – und – www.Privat.de, cloud.Privat.de Die Domains sind mit DynDNS eingerichtet. Alles soweit gut es läuft, die Inhalte von "Betrieb" sind direkt über das Internet erreichbar.

Was mich stört: aktuell laufen www.Privat.de und cloud.Privat.de noch über Portforwarding (:20443) an den physischen Host "Privat". Lasse ich die Portkennung in der Webadresse weg, lande ich auf den Host, der die Betrieb-Inhalte bereit stellt. Da geht dann natürlich nichts, weil ich Probleme mit den Zertifikaten bekomme.

Was ich will ist, dass ich auf das Portforwarding in meiner FritzBox verzichten kann. Auch die Inhalte vom physischen Host "Privat" sollen ganz normal über den Port 443 erreichbar sein. Ich habe keine Ahnung, wo ich da ansetzen soll und wie ich das in meinem LAN managen kann. Vielen Dank für Eure Hilfe.

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14382

EnHerrman schrieb:

Was ich will ist, dass ich auf das Portforwarding in meiner FritzBox verzichten kann.

Auf Portforwarding (Portweiterleitung) kannst Du nur dann verzichten, wenn deine (physische) Hosts "border device" werden. D. h. sie bekommen entweder eine externe/öffentliche IPv6-Adresse oder(/und) Du hast einen Tarif mit mind. 2 zusätzlichen externen/statischen IPv4-Adressen für diese Hosts an der FritzBox. In beiden Fällen brauchst Du Portfreigabe (statt Portweiterleitung, weil kein NAT geamcht wird) in der IPv6/v4-Firewall vom Router (FritzBox in deinem Fall).

sebix Team-Icon

Ehemalige

Anmeldungsdatum:
14. April 2009

Beiträge: 5584

Der Betriebsserver kann auch Reverse-Proxy fuer die privaten Seiten sein

EnHerrman

(Themenstarter)

Anmeldungsdatum:
23. März 2021

Beiträge: 25

sebix schrieb:

Der Betriebsserver kann auch Reverse-Proxy fuer die privaten Seiten sein

Vielen Dank, soweit ich bisher weiß, läuft dann aber der gesamte Datenverkehr vom "Privat"-Server durch den "Betriebsserver"? Ist, wenn ich damit richtig liege, keine gute Option. :-\

EnHerrman

(Themenstarter)

Anmeldungsdatum:
23. März 2021

Beiträge: 25

lubux schrieb:

EnHerrman schrieb:

Was ich will ist, dass ich auf das Portforwarding in meiner FritzBox verzichten kann.

Auf Portforwarding (Portweiterleitung) kannst Du nur dann verzichten, wenn deine (physische) Hosts "border device" werden. D. h. sie bekommen entweder eine externe/öffentliche IPv6-Adresse oder(/und) Du hast einen Tarif mit mind. 2 zusätzlichen externen/statischen IPv4-Adressen für diese Hosts an der FritzBox. In beiden Fällen brauchst Du Portfreigabe (statt Portweiterleitung, weil kein NAT geamcht wird) in der IPv6/v4-Firewall vom Router (FritzBox in deinem Fall).

Leider stehen mir keine zusätzliche IP-Adressen zu.

raketenwilli

Anmeldungsdatum:
13. Juli 2023

Beiträge: 51

EnHerrman schrieb:

sebix schrieb:

Der Betriebsserver kann auch Reverse-Proxy fuer die privaten Seiten sein

Vielen Dank, soweit ich bisher weiß, läuft dann aber der gesamte Datenverkehr vom "Privat"-Server durch den "Betriebsserver"? Ist, wenn ich damit richtig liege, keine gute Option. :-\

Doch, ist es.

  • Du richtest den „Betriebsserver“ so ein, dass er für den „Betriebsserver“ ganz normal und für den „PrivatServer“ ausschießlich als Reverse-Proxy arbeitet. (Achtung: Die Kommunikation zwischen dem „Betriebsserver“ und dem „PrivatServer“ ist dann unverschlüsselt!)

  • Du leitest von der Fritzbox via Portforwarding alle Zugriffe auf die Ports 80/TCP und 443/TCP (oder was Du willst...) auf den „Betriebsserver“.

  • Auf dem Betriebsserver richtest Du (z.b. mit certbot) alle Schlüssel und Zertifikate ein.

  • Wenn alles läuft ist dann der Proxy für das Abholen der Daten und die Verschlüsselung vor dem Weiterversand zuständig. Das erzeugt regelmäßig nur wenig Last.

  • Flaschenhals bei Deiner Konstallation dürfte weder die Belastung des „Betriebsserver“ noch die Multibelastung (Die Daten gehen ja zweimal durch) Deines lokales Netzes sein. Ich vermute nämlich, der zumeist schmale Upload in Richtung Internet-Provider begrenzt das.

EnHerrman

(Themenstarter)

Anmeldungsdatum:
23. März 2021

Beiträge: 25

@Raketenwilli: Vielen Dank, daran habe ich noch nicht gedacht, die Verschlüsselung für den PrivateServer auf dem Rechner mit der öffentlichen IP (Betriebsserver) zu machen. Der Datenverkehr zwischen beiden kann durchaus unverschlüsselt bleiben. Das werde ich morgen mal testen.

EnHerrman

(Themenstarter)

Anmeldungsdatum:
23. März 2021

Beiträge: 25

Vielen Dank Euch,

Mit dem Vorschlag von Raketenwilli kann ich nun erst einmal leben, obwohl doch beim Aufruf von Inhalten von beiden Servern gleichzeitig, der Trafic in die Knie geht. Aber das liegt an der Hardware von meinem BetriebsServer.

Hier habe ich einen neuen VirtualHost angelegt:

 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
28
29
30
31
32
33
34
35
36
# HTTP - Forwarding
<VirtualHost *:80>
        ServerName cloud.betrieb.de
        ServerAlias cloud.betrieb.de
        Redirect 301 / https://cloud.betrieb.de
</VirtualHost>

# HTTPS - Forwarding
<IfModule mod_ssl.c>

<VirtualHost *:443>
        ServerName cloud.privat.de
        ServerName cloud.privat.de

        ProxyPreserveHost On

        ProxyPass /.well-known !
        ProxyPass / http://192.168.xxx.yyy:80/
        ProxyPassReverse / http://192.168.xxx.yyy:80/

        SSLCertificateFile /etc/letsencrypt/live/cloud.privat.de/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/cloud.privat.de/privkey.pem
        Include /etc/letsencrypt/options-ssl-apache.conf

        <Directory /var/www/>
                AllowOverride All
        </Directory>

        # Das hier ist nötig nur für die Nextcloud
        Redirect 301 /.well-known/carddav https://cloud.privat.de/remote.php/dav
        Redirect 301 /.well-known/caldav https://cloud.privat.de/remote.php/dav
        Redirect 301 /.well-known/webfinger https://cloud.privat.de/index.php/.well-known/webfinger
        Redirect 301 /.well-known/nodeinfo https://cloud.privat.de/index.php/.well-known/nodeinfo
</VirtualHost>

</IfModule>

Auf dem PrivateServer läuft Apache nun nur noch innerhalb des LANs ohne Verschlüsselung:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
<VirtualHost *:80>
        ServerName cloud.privat.de
        ServerAlias cloud.privat.de
        ServerAdmin HierstehteineMail@abc.de
        DocumentRoot  /var/www/cloud.privat.de

        CustomLog ${APACHE_LOG_DIR}/access.log common

        <IfModule mod_headers.c>
                Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
        </IfModule>

        <Directory /var/www/>
                AllowOverride All
        </Directory>
</VirtualHost>

Den zweiten VHost für "www.privat.de" habe ich genau so konfiguriert.

Antworten |