Zum Inhalt springen
Startseite » IP Kameras mit Reverse Proxy absichern

IP Kameras mit Reverse Proxy absichern

Ich habe hier zwei IP Kameras laufen, die ich normalerweise mit zoneminder überwache.
Manchmal möchte man aber auch auf das Webinterface der Kamera direkt zugreifen, da ich aber nicht für jede Kamera einen extra dyndns einrichten wollte, zumal der direkte Zugriff über’s Internet nicht abgesichert werden kann, forschte ich mal ein wenig, wie man das Ganze anders bewerkstelligen kann.

Dabei stolperte ich über Apaches Reverse-Proxy-Methode, die z.B. für Foscam Kameras an dieser Stelle beschrieben wird, aber natürlich auch mit anderen IP Kameras funktioniert. Dieser Bericht ist allerdings schon etwas alt und führte bei mir nicht gleich zum Erfolg.
Mein Server läuft unter Debian mit Apache, aber sicher geht es mit anderen Linuxderivaten und Webservern ähnlich.
Zuerst muß man das mod_proxy Modul für den Apache installieren und aktivieren.

In diesem Artikel nehme ich folgende Konfiguration an:

1 IP Kamera:      192.168.1.99 auf Port  8500

1 (Proxy-)Server: 192.168.1.10 auf Port 10500

Aufpassen! Damit das funktioniert, muß man im vorgeschalteten (WLAN-)Router eine Portfreigabe des Ports 10500 auf den Server 192.168.1.10 eintragen, damit man über das Internet auf den (Proxy-)Server zugreifen kann.

Soll der Apache mitbekommen was auf Port 10500 passiert, muß man als erstes in der ports.conf folgendes eintragen:

⁄etc⁄apache2⁄ports.conf
<IfModule ssl_module>
Listen 443
Listen 10500
<⁄IfModule&gt

Da ich SSL benutzen möchte, wird die Listen Direktive innerhalb des ssl Blocks eingetragen.

Als nächstes nimmt man sich die /etc/apache2/sites-enabled/default-ssl.conf vor, sollte sie dort noch nicht vorhanden sein, verlinkt man sie von /etc/apache2/sites-available/default-ssl.conf herüber. Es wird ein neuer Virtual Host Block erzeugt und entsprechend dem o.a. Beispiel folgendes eingetragen.(die Beispiele und Pfade müssen natürlich den eigenen Gegebenheiten angepasst werden!)

/etc/apache2/sites-enabled/default-ssl.conf
# Kamera #1
<VirtualHost ∗:10500>
ProxyRequests Off
ProxyPreserveHost On
ProxyVia On
<Proxy ∗>
Order deny,allow
Allow from all
<⁄Proxy>
ProxyPass / http://192.168.1.99:8500/
ProxyPassReverse / http://192.168.1.99:8500/
CustomLog /var/log/apache2/access_cam1.log combined
ErrorLog /var/log/apache2/error_cam1.log
SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/meinzertifikat/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/meinzertifikat/privkey.pem
<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>

Bevor man jetzt den apache neu startet muß man die Zertifakte erzeugen, inzwischen kann man das kostenlos mit letsencrpyt, wie man die Zertifkate erzeugt findet man z.B. auf linux-scout.de

Hat man die Zertifikate angelegt und die Pfad in default-ssl.conf entsprechend angepasst, kann man den Apache neu starten.
service apache2 restart
Danach sollte man mittels eines Webbrowsers und der URL https://192.168.1.10:10500 bzw. https://meine_server.ip:10500 auf die Kamera zugreifen können.
Möchte man auf mehrere Kameras zugreifen, legt man für jede Kamera einen VirtualHost Block mit unterschiedlichen Ports und IPs an, das war’s schon.
Dann wünsche ich happy lookie, lookie.;-D

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert