https Reverse Proxy für Sicheren CCU Zugriff von Unterwegs

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

PaulG4H
Beiträge: 1184
Registriert: 11.08.2011, 10:09

https Reverse Proxy für Sicheren CCU Zugriff von Unterwegs

Beitrag von PaulG4H » 08.03.2014, 17:03

Hallo,

nachdem ich mir die Informationen dieser Anleitung in der Vergangenheit mühsam zusammensuchen musste möchte ich diese hier für euch Zusammengefasst veröffentlichen.
Was kann das:
  • https (ssl verschlüsselter) Zugriff von Extern auf das CCU Webinterface über einen Apache Proxy welcher den Zugriff auch noch durch eine Authentifizierung absichert
  • Zugriff mit Homedroid durch diesen Proxy von Unterwegs ohne Kostenpflichtige Dienstleister oder VPN
  • Es ist auch Möglich diesen Proxy für weitere Internet Geräte zu erweitern (Webcams, Receiver und so ziemlich alles was ein Web Interface hat!)
Hier nun die Anleitung in der
Version 0.2: 364-mal heruntergeladen
Version 0.3: 114-mal heruntergeladen
Version 0.4: 1016-mal heruntergeladen
Ab jetzt nur mehr Online immer aktuell verfügbar und dort als PDF Exportierbar:
http://www.lxccu.com/manuals:apache-rev ... oxy-manual

Changelog:
  • 0.1 Erste Version
  • 0.2 Komplettes Beispiel der Apache SSL Konfigurationsdatei eingefügt
  • 0.3 CCU.IO und DASHUI Beispiel
  • 0.4 Grundsätzliche Änderung der Authentifizierung, Enigma2 und Logitech Mediaserver Beispiel
[*] Online immer die aktuelle Version
Diese Anleitung ist aus dem Originalen Post von Erik mit einer Schritt für Schritt Anleitung auf einem Raspberry!
http://homematic-forum.de/forum/viewtop ... 12&p=75150

Es wird unbedingt die Online Version der Anleitung hier http://www.lxccu.com/manuals:apache-rev ... oxy-manual empfohlen!

Paul
Zuletzt geändert von PaulG4H am 11.08.2015, 15:38, insgesamt 7-mal geändert.
Apache Reverse Proxy fuer sicheren Zugriff auf die CCU von Unterwegs
Zeitgesteuertes LXCCU / CCU2 Backup damit es immer eine Aktuelle Sicherung gibt!
Diverse weitere Anleitungen für CCU / LXCCU / Raspberry PI

Xel66
Beiträge: 14085
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 580 Mal
Danksagung erhalten: 1492 Mal

Re: https Reverse Proxy für Sicheren CCU Zugriff von Unterwe

Beitrag von Xel66 » 08.03.2014, 23:34

Wollte nur mal Danke sagen.

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

Benutzeravatar
unlight
Beiträge: 484
Registriert: 23.12.2012, 13:03
Wohnort: Ruhrpott

Re: https Reverse Proxy für Sicheren CCU Zugriff von Unterwe

Beitrag von unlight » 09.03.2014, 00:36

Danke auch von mir!
Einzig die Einrichtung des Reverse Proxy haut bei mir nicht hin.
Wenn ich den angepassten Block in das Virtualhost Tag setze startet der Apache nicht neu.
Wo genau kommt der Block hin? (Hab glaub ich alle Positionen durch)
Und weitere Seiten einbinden klappt auch nicht, zumindest nicht wenn ich es lokal teste.
Liegt das am loopback oder müßte das auch gehen wenn ich den pi innerhalb des netzwerkes anspreche?

Gute Nacht
Unlight
“Sometimes I think the surest sign that intelligent life exists elsewhere in the universe is that none of it has tried to contact us.”

PaulG4H
Beiträge: 1184
Registriert: 11.08.2011, 10:09

Re: https Reverse Proxy für Sicheren CCU Zugriff von Unterwe

Beitrag von PaulG4H » 09.03.2014, 10:33

Hallo Unlight,

der Reverse Proxy Funktioniert nur dann von Intern wenn der dsn (fQDN http://de.wikipedia.org/wiki/Domain_%28 ... .28FQDN.29) Name auch Lokal richtig Aufgelöst wird!

Mach mal einen ping auf den dns namen und schau ob eine Antwort und wenn ja von welcher IP Zurückkommt!

Damit dies geht gibt es mehrere Möglichkeiten:
a) Verwende deine eigene Domain auch für das Interne Netzwerk, dazu müsst ihr euch eine Domain kaufen (mieten) und auch einen A Record auf die IP nach Hause (wenn die IP Statisch / Fix ist) oder einen C Name Record auf den dyndns Namen eintragen das euer Router / Firewall immer über den Namen Erreichbar ist! Auch muss der Linux Rechner Name Intern dann den ersten Teil des FQDN haben also wenn der DNS name haus.meinedomain.com ist dann muss der Rechner den Namen haus haben! Allen Jenen die sich diese Arbeit Kosten zumuten sei gesagt sie werden dadurch belohnt das Apps wie z.B. Homedroid dann aus dem Internen Netzwerk wie auch von Extern immer gleich auf die CCU Zugreifen können, somit Entfällt das Erkennen ob zuhause oder Unterwegs sondern es Funktioniert ganz einfach :D .
b) Zu Testzwecken ohne den Aufwand / Kosten im Punkt a kann auch ein lokaler Eintrag in der hosts Datei auf die IP des Linux Rechners gemacht werden, wo die Datei ist und wie das geht findet ihr hier http://de.wikipedia.org/wiki/Hosts-Datei

LG

Paul
Apache Reverse Proxy fuer sicheren Zugriff auf die CCU von Unterwegs
Zeitgesteuertes LXCCU / CCU2 Backup damit es immer eine Aktuelle Sicherung gibt!
Diverse weitere Anleitungen für CCU / LXCCU / Raspberry PI

Benutzeravatar
unlight
Beiträge: 484
Registriert: 23.12.2012, 13:03
Wohnort: Ruhrpott

Re: https Reverse Proxy für Sicheren CCU Zugriff von Unterwe

Beitrag von unlight » 09.03.2014, 12:26

Also ping kommt von unserer IP zurück , passt also.
Cname record ist auch kein problem, ich hab ein paar domains die ich benutzen kann.
ich scheitere wie gesagt nur daran das ich den proxy block nicht in der config datei unterbekomme.
jedesmal wenn ich den apache neu starte bekomme ich eine fehlermeldung.

wenn das das ende des 443 tags ist:

Code: Alles auswählen

        #   keep-alive for those clients, too. Use variable "nokeepalive" for this.
        #   Similarly, one has to force some clients to use HTTP/1.0 to workaround
        #   their broken HTTP/1.1 implementation. Use variables "downgrade-1.0" and
        #   "force-response-1.0" for this.
        BrowserMatch "MSIE [2-6]" \
                nokeepalive ssl-unclean-shutdown \
                downgrade-1.0 force-response-1.0
        # MSIE 7 and newer should be able to use keepalive
        BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>
</IfModule>
wo packe ich dann den <IfModule mod_proxy.c> block hin? oder die weiteren proxy pass zeilen?


ps: in der anleitung hast du eine zeile

Code: Alles auswählen

sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -out
/etc/apache2/ssl/server.crt -keyout /etc/apache2/ssl/server.key
da ist ein RETURN zwischen; wenn man sich nicht ein wenig auskennt gibt das beim copy/paste ins terminal stress.

Nochmals Danke für die ausführliche Anleitung!
“Sometimes I think the surest sign that intelligent life exists elsewhere in the universe is that none of it has tried to contact us.”

PaulG4H
Beiträge: 1184
Registriert: 11.08.2011, 10:09

Re: AW: https Reverse Proxy für Sicheren CCU Zugriff von Unt

Beitrag von PaulG4H » 09.03.2014, 15:33

Hallo Unlight,

Schau dir bitte in der Version 0.2 das Beispiel der gesamten default-ssl Datei an das ich hinzugefügt habe.

LG

Paul
Apache Reverse Proxy fuer sicheren Zugriff auf die CCU von Unterwegs
Zeitgesteuertes LXCCU / CCU2 Backup damit es immer eine Aktuelle Sicherung gibt!
Diverse weitere Anleitungen für CCU / LXCCU / Raspberry PI

Benutzeravatar
unlight
Beiträge: 484
Registriert: 23.12.2012, 13:03
Wohnort: Ruhrpott

Re: https Reverse Proxy für Sicheren CCU Zugriff von Unterwe

Beitrag von unlight » 09.03.2014, 20:44

Danke, ich checks trotzdem nicht. :(
pack ich das in die default-ssl:

Code: Alles auswählen

<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
AuthType basic
AuthName "home"
AuthUserFile /etc/apache2/ssl/httpsusers
Require valid-user
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
SSLCertificateFile /etc/apache2/ssl/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/server.key
ErrorLog ${APACHE_LOG_DIR}/error.log
<IfModule mod_proxy.c>
ProxyRequests off
RewriteEngine On
redirectmatch ^/ccu$ /ccu/
rewritecond %{REQUEST_URI} ^/ccu/
rewriterule (.*) $1 [PT]
rewritecond %{HTTP_REFERER} https://haus.domain.de/ccu/ [OR]
rewritecond %{HTTP_REFERER} https://haus.domain.de/webui/ [OR]
rewritecond %{HTTP_REFERER} https://haus.domain.de/pda/ [OR]
rewritecond %{HTTP_REFERER} https://haus.domain.de/api/ [OR]
rewritecond %{HTTP_REFERER} https://haus.domain.de/addons/cuxd/
[OR]
rewritecond %{HTTP_REFERER} \?sid\=\@.+\@ [OR]
rewritecond %{THE_REQUEST} \?sid\=\@.+\@
rewriterule ^/(.*) /ccu/$1 [PT]
rewriterule ^/pda/(.*) /ccu/pda/$1
rewriterule ^/webui/(.*) /ccu/webui/$1
rewriterule ^/addons/db/(.*) /ccu/addons/db/$1
rewriterule ^/addons/cuxd/(.*) /ccu/addons/cuxd/$1
ProxyPass /ccu/ http://192.168.0.5/ timeout=1200
<Location /ccu/>
#SecFilterEngine Off
allow from all
AuthType basic
AuthName "HOMEMATIC Proxy"
AuthUserFile /etc/apache2/ssl/httpsusers
require valid-user
ProxyPassReverse /
</Location>
</IfModule>
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined
SSLEngine on
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
# MSIE 7 and newer should be able to use keepalive
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>
</IfModule>
dann kommt beim restart das:

Code: Alles auswählen

pi@raspberrypi ~ $ sudo service apache2 reload
[FAIL] Reloading web server config: apache2 failed!
Nehme ich den Proxy Block raus startet er wieder!

Bin ich der einzige bei dems nicht klappt?

Gruß
Unlight
“Sometimes I think the surest sign that intelligent life exists elsewhere in the universe is that none of it has tried to contact us.”

PaulG4H
Beiträge: 1184
Registriert: 11.08.2011, 10:09

Re: https Reverse Proxy für Sicheren CCU Zugriff von Unterwe

Beitrag von PaulG4H » 09.03.2014, 21:04

Hallo unlight,

hast du sicher alle Apache Module Installiert und auch Aktiviert?
Pakete Installieren:

Code: Alles auswählen

sudo aptitude install apache2 apache2-utils libapache2-mod-proxy-html vim -y
Module aktivieren:

Code: Alles auswählen

sudo a2enmod ssl rewrite proxy proxy_http
Ansonsten kann der Proxy nicht Funktionieren, wenn der Fehler damit nicht behoben ist dann poste mal die letzten Zeilen der Datei

Code: Alles auswählen

/var/log/apache2/error.log
LG

Paul
Apache Reverse Proxy fuer sicheren Zugriff auf die CCU von Unterwegs
Zeitgesteuertes LXCCU / CCU2 Backup damit es immer eine Aktuelle Sicherung gibt!
Diverse weitere Anleitungen für CCU / LXCCU / Raspberry PI

Benutzeravatar
unlight
Beiträge: 484
Registriert: 23.12.2012, 13:03
Wohnort: Ruhrpott

Re: https Reverse Proxy für Sicheren CCU Zugriff von Unterwe

Beitrag von unlight » 09.03.2014, 21:12

denke schon:

Code: Alles auswählen

pi@raspberrypi ~ $ sudo aptitude install apache2 apache2-utils libapache2-mod-proxy-html vim -y
No packages will be installed, upgraded, or removed.
0 packages upgraded, 0 newly installed, 0 to remove and 14 not upgraded.
Need to get 0 B of archives. After unpacking 0 B will be used.
                                         
pi@raspberrypi ~ $ sudo a2enmod ssl rewrite proxy proxy_http
Module ssl already enabled
Module rewrite already enabled
Module proxy already enabled
Considering dependency proxy for proxy_http:
Module proxy already enabled
Module proxy_http already enabled
hab aber grad mal restart anstatt reload probiert:

Code: Alles auswählen

pi@raspberrypi ~ $ sudo service apache2 restart
Syntax error on line 40 of /etc/apache2/sites-enabled/default-ssl:
Invalid command '[OR]', perhaps misspelled or defined by a module not included in the server configuration
Action 'configtest' failed.
The Apache error log may have more information.
 failed!
Im errorlog steht gar nix zu der zeit des rumprobierens.
“Sometimes I think the surest sign that intelligent life exists elsewhere in the universe is that none of it has tried to contact us.”

Benutzeravatar
unlight
Beiträge: 484
Registriert: 23.12.2012, 13:03
Wohnort: Ruhrpott

Re: https Reverse Proxy für Sicheren CCU Zugriff von Unterwe

Beitrag von unlight » 09.03.2014, 21:21

bin echt zu doof , habs grad selber gemerkt

wieder das RETURN phänomen beim copy and paste!

Besten Dank!
“Sometimes I think the surest sign that intelligent life exists elsewhere in the universe is that none of it has tried to contact us.”

Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“