Aktionen

PiKVM hinter Apache Reverse Proxy: Unterschied zwischen den Versionen

Aus znilwiki

(Die Seite wurde neu angelegt: „'''<u>Changelog:</u>''' * 2021-01-29 erste Version ---- ==Vorwort== Ich betreibe eigentlich immer alles unter einer jeweils eigenen Subdomain hinter einem Apac…“)
 
KKeine Bearbeitungszusammenfassung
 
(7 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''<u>Changelog:</u>'''
'''<u>Changelog:</u>'''
* 2021-01-29 erste Version
* 2021-01-29 erste Version
* 2021-10-05 Regeln für Terminal hinzugefügt, funktioniert nun auch
----
----
==Vorwort==
==Vorwort==
Hurra! mein PiKVM läuft! Sogar mit einem zusätzlichen 4 Port HDMI/USB KVM Switch! https://github.com/pikvm/pikvm<br>
Fehlt noch der Zugriff von extern darauf:<br>
<br>
Ich betreibe eigentlich immer alles unter einer jeweils eigenen Subdomain hinter einem Apache Revers Proxy. Dieser verwaltet dann auch die dazu passenden Lets Encrypt Zertifikate<br>
Ich betreibe eigentlich immer alles unter einer jeweils eigenen Subdomain hinter einem Apache Revers Proxy. Dieser verwaltet dann auch die dazu passenden Lets Encrypt Zertifikate<br>
Dementsprechent wollte ich auch meinen PiKVM so erreichbar machen, scheiterte aber zunächst an der WebSocket Konfiguration. Ein wenig davon kannte ich schon Gucamole, aber es zickte Anfangs rum.<br>
Dementsprechent wollte ich auch meinen PiKVM so erreichbar machen, scheiterte aber zunächst an der WebSocket Konfiguration. Ein wenig davon kannte ich schon Gucamole, aber es zickte Anfangs rum.<br>
Zeile 8: Zeile 12:
<br>
<br>
In diesem Beispiel gilt folgenden
In diesem Beispiel gilt folgenden
  192.168.1.2     = IP-Adresse des Apache Reverse Proxy Linux Servers (Ubuntu 20.04)
  192.168.178.2   = IP-Adresse des Apache Reverse Proxy Linux Servers (Ubuntu 20.04)
  192.168.1.18     = IP-Adresse des PiKVM
  192.168.178.18 = IP-Adresse des PiKVM
  kvm.znil.net     = Subdomain unter welcher der PiKVM per Reverse Proxy erreichbar sein soll
  kvm.znil.net   = Subdomain unter welcher der PiKVM per Reverse Proxy erreichbar sein soll
<br>
<br>
----
----
==Voraussetzungen Apache Reverse Proxy==
==Voraussetzungen Apache Reverse Proxy==
Folgende Module des Apache müssen aktiviert sein:
Folgende Module des Apache müssen aktiviert sein:
Zeile 26: Zeile 31:
mit folgendem Inhalt:<br>
mit folgendem Inhalt:<br>
<source>
<source>
<VirtualHost 192.168.1.2:80>
<VirtualHost 192.168.178.2:80>
         # Umleitung http zu https
         # Umleitung http zu https
         ServerName kvm.znil.net
         ServerName kvm.znil.net
Zeile 35: Zeile 40:
</VirtualHost>
</VirtualHost>


<VirtualHost 192.168.1.2:443>
<VirtualHost 192.168.178.2:443>
         ServerName kvm.znil.net
         ServerName kvm.znil.net
         ServerAdmin webmaster@kvm.znil.net
         ServerAdmin webmaster@kvm.znil.net
Zeile 52: Zeile 57:
         RewriteCond ${HTTP:UPGRADE} ^WebSocket$ [NC]
         RewriteCond ${HTTP:UPGRADE} ^WebSocket$ [NC]
         RewriteCond ${HTTP:CONNECTION} ^Upgrade$ [NC]
         RewriteCond ${HTTP:CONNECTION} ^Upgrade$ [NC]
         RewriteRule .* wss:/192.168.1.18%{REQUEST_URI} [P,L]
         RewriteRule .* wss:/192.168.178.18%{REQUEST_URI} [P,L]
 
        ProxyPass /extras/webterm/ttyd/ws wss://192.168.178.18/extras/webterm/ttyd/ws
        ProxyPass /extras/webterm/ttyd/ https://192.168.178.18/extras/webterm/ttyd/
        ProxyPassReverse /extras/webterm/ttyd/ https://192.168.178.18/extras/webterm/ttyd/


         ProxyPass / https://192.168.1.18/
         ProxyPass / https://192.168.178.18/
         ProxyPassReverse / https://192.168.1.18/
         ProxyPassReverse / https://192.168.178.18/


         <Location /api/ws>
         <Location /api/ws>
                 Order allow,deny
                 Order allow,deny
                 Allow from all
                 Allow from all
                 ProxyPass wss://192.168.1.18/api/ws
                 ProxyPass wss://192.168.178.18/api/ws
                 ProxyPassReverse wss://192.168.1.18/api/ws
                 ProxyPassReverse wss://192.168.178.18/api/ws
         </Location>
         </Location>


Zeile 68: Zeile 77:
</source>
</source>
Ihr müsste also alle
Ihr müsste also alle
  * <code>192.168.1.2</code> durch die lokale IP-Adresse von eurem Apache Revers Proxy ersetzen
  * <code>192.168.178.2</code> durch die lokale IP-Adresse von eurem Apache Revers Proxy ersetzen
  * <code>192.168.1.18</code> durch die IP-Adresse eures PiKVM ersetzen
  * <code>192.168.178.18</code> durch die IP-Adresse eures PiKVM ersetzen
  * <code>kvm.znil.net</code> durch eure Domäne/Subdomäne ersetzen
  * <code>kvm.znil.net</code> durch eure Domäne/Subdomäne ersetzen
  * <code>webmaster@kvm.znil.net</code> durch eine eurer Email-Adressen ersetzen
  * <code>webmaster@kvm.znil.net</code> durch eine eurer Email-Adressen ersetzen
Zeile 80: Zeile 89:
<br>
<br>
Jetzt müsste es gehen!<br>
Jetzt müsste es gehen!<br>
Für die Verlängerung des Lets Encrypt Zertifikates empfehle ich euch [[Lets Encrypte Zertifikate erneuern mit Apache Reverse Proxy]]
Für die Verlängerung des Lets Encrypt Zertifikates empfehle ich euch [[Lets Encrypt Zertifikate erneuern mit Apache Reverse Proxy]]
<br>
<br>
----
----
==Kommentare==
==Kommentare==
<comments />
<comments />

Aktuelle Version vom 5. Oktober 2021, 11:03 Uhr

Changelog:

  • 2021-01-29 erste Version
  • 2021-10-05 Regeln für Terminal hinzugefügt, funktioniert nun auch

Vorwort

Hurra! mein PiKVM läuft! Sogar mit einem zusätzlichen 4 Port HDMI/USB KVM Switch! https://github.com/pikvm/pikvm
Fehlt noch der Zugriff von extern darauf:

Ich betreibe eigentlich immer alles unter einer jeweils eigenen Subdomain hinter einem Apache Revers Proxy. Dieser verwaltet dann auch die dazu passenden Lets Encrypt Zertifikate
Dementsprechent wollte ich auch meinen PiKVM so erreichbar machen, scheiterte aber zunächst an der WebSocket Konfiguration. Ein wenig davon kannte ich schon Gucamole, aber es zickte Anfangs rum.
Wie so oft musste ich mir die Lösung aus vielen Quellen zusammensuchen

In diesem Beispiel gilt folgenden

192.168.178.2   = IP-Adresse des Apache Reverse Proxy Linux Servers (Ubuntu 20.04)
192.168.178.18  = IP-Adresse des PiKVM
kvm.znil.net    = Subdomain unter welcher der PiKVM per Reverse Proxy erreichbar sein soll



Voraussetzungen Apache Reverse Proxy

Folgende Module des Apache müssen aktiviert sein:

a2enmod rewrite
a2enmod proxy_http
a2enmod ssl
a2enmod proxy_wstunnel



Konfiguration der Subdomain

Hier eine eigene Konfigurationsdatei, angelegt als

/etc/apache2/sites-available/kvm.znil.net.vhost

mit folgendem Inhalt:

<VirtualHost 192.168.178.2:80>
        # Umleitung http zu https
        ServerName kvm.znil.net
        ServerAdmin webmaster@znil.net
        RewriteEngine On
        RewriteCond %{HTTPS} !=on
        RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
</VirtualHost>

<VirtualHost 192.168.178.2:443>
        ServerName kvm.znil.net
        ServerAdmin webmaster@kvm.znil.net
        SSLEngine on
        SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
        SSLCertificateFile /etc/letsencrypt/live/kvm.znil.net/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/kvm.znil.org/privkey.pem

        SSLProxyEngine On
        SSLProxyVerify none
        SSLProxyCheckPeerCN off
        SSLProxyCheckPeerName off
        SSLProxyCheckPeerExpire off

        RewriteEngine on
        RewriteCond ${HTTP:UPGRADE} ^WebSocket$ [NC]
        RewriteCond ${HTTP:CONNECTION} ^Upgrade$ [NC]
        RewriteRule .* wss:/192.168.178.18%{REQUEST_URI} [P,L]

        ProxyPass /extras/webterm/ttyd/ws wss://192.168.178.18/extras/webterm/ttyd/ws
        ProxyPass /extras/webterm/ttyd/ https://192.168.178.18/extras/webterm/ttyd/
        ProxyPassReverse /extras/webterm/ttyd/ https://192.168.178.18/extras/webterm/ttyd/

        ProxyPass / https://192.168.178.18/
        ProxyPassReverse / https://192.168.178.18/

        <Location /api/ws>
                Order allow,deny
                Allow from all
                ProxyPass wss://192.168.178.18/api/ws
                ProxyPassReverse wss://192.168.178.18/api/ws
        </Location>

        ProxyRequests off
</VirtualHost>

Ihr müsste also alle

* 192.168.178.2 durch die lokale IP-Adresse von eurem Apache Revers Proxy ersetzen
* 192.168.178.18 durch die IP-Adresse eures PiKVM ersetzen
* kvm.znil.net durch eure Domäne/Subdomäne ersetzen
* webmaster@kvm.znil.net durch eine eurer Email-Adressen ersetzen
* /etc/letsencrypt/live/kvm.znil.net/ mit den Pfaden zu eurem Zertifikat ersetzen


Jetzt könnt die die Seite noch aktivieren

a2ensite kvm.znil.net.vhost

und den Apache neu starten:

systemctl restart apache2.service


Jetzt müsste es gehen!
Für die Verlängerung des Lets Encrypt Zertifikates empfehle ich euch Lets Encrypt Zertifikate erneuern mit Apache Reverse Proxy


Kommentare

Loading comments...