Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste ÜberarbeitungBeide Seiten der Revision
wetter:mobotix:kommunikation_mit_der_kamera [19.02.2009 15:26. ] – angelegt michiwetter:mobotix:kommunikation_mit_der_kamera [03.08.2011 20:22. ] – [Stufe 3: Webcam-User] django
Zeile 1: Zeile 1:
 +====== Kommunikation mit der Kamera ======
 +Aus dem Intranet im SOHO is der Zugriff auf die Kamera, ja direkt ohne Umwege über die private IP-Adresse (192.168.100.60) bzw. über den FQDN (M22M-WEST.nausch.org) möglich.\\
 +\\
 +===== Stufe 1: Apache reverse proxy =====
 +Möchten wir nun direkt aus dem **WWW** auf unsere Kamera zugreifen, so könnten wir freilich einen festen beliebigen Port auf den Webserver der Kamera weiterreichen. Weitaus eleganter finde ich die Variante, bestimmte Anfragen auf den V-Host unseres Apachen von diesem an den Webserver der Kamera weiterzureichen.\\
 +\\
 +Hierzu nutzen wir die **//reverse proxy Funktionalitäten//** unseres Webservers.
  
 +Die Definition unseres V-Hostes legen wir also wie folgt an:
 +<code>#
 +# camera.nausch.org
 +#
 +<VirtualHost *:80>
 +        ServerAdmin webmaster@nausch.org
 +        ServerName camera.nausch.org:80
 +        ServerAlias camera.nausch.org *.camera.nausch.org
 +        ServerPath /
 +        DocumentRoot "/var/www/html/camera"
 +        <Directory "/var/www/html/camera">
 +                Options FollowSymLinks
 +                Order allow,deny
 +                Allow from all
 +        </Directory>
 +        DirectoryIndex index.html index.php
 +        ErrorLog logs/camera_error.log
 +        CustomLog logs/camera_access.log combined
 +        <IfModule mod_proxy.c>
 +                RewriteEngine     On
 +                RewriteLogLevel   1
 +                ProxyRequests     Off
 +                RewriteRule       ^/admin/(.*)   http://192.168.100.60/admin/$1   [P,L]
 +                RewriteRule       ^/cgi-bin/(.*) http://192.168.100.60/cgi-bin/$1 [P,L]
 +                RewriteRule       ^/control/(.*) http://192.168.100.60/control/$1 [P,L]
 +                RewriteRule       ^/decor/(.*)   http://192.168.100.60/decor/$1   [P,L]
 +                RewriteRule       ^/help/(.*)    http://192.168.100.60/help/$1    [P,L]
 +                RewriteRule       ^/record/(.*)  http://192.168.100.60/record/$1  [P,L]
 +                RewriteRule       ^/webcam/(.*)  http://192.168.100.60/$1         [P,L]
 +        </IfModule>
 +</VirtualHost></code>
 +Die Rewrite-Funktion müssen wir nutzen, da sonst die Adressierung der vom Webserver der Kamera zum Webbroser des Nutzers zurückgeschickten Adressen nicht passen würde. In unserem Fall werden somit die Adressen richtig in **webcam.nausch.org/webcam/** ergänzt. Ohne diese Rewrite-Funktionalität würden die Adressen ohne **webcam** zurückgeschickt, was unweigerlich bei weiteren Clientzugriffen zum Scheitern verurteilt wäre.\\
 +===== Stufe 2: Zugriffsschutz mittels .htaccess =====
 +Mit der vorgenannten Konfiguration kann nun natürlich jedermann auf Bereiche der Kamera zugreifen, die wir so nicht wünschen. Denn was sich schließlich alles im **__cgi-bin__**-Verzeichnis der Webcam an Scripten tummelt, ist so ohne weiteres nicht für uns ersichtlich.
 +Wir schützen also unser **//DocumentRoot//** mittels einer **.htaccess**-Datei.
 +<code>AuthType Basic
 +AuthName "Wetterwebcam der Wetterstation Pliening"
 +AuthBasicProvider ldap
 +AuthzLDAPAuthoritative off
 +AuthLDAPURL "ldap://ldap.domain.de:389/dc=domain,dc=de?uid"
 +Require ldap-user webcam-root</code>
 +
 +<code>#
 +# camera.nausch.org
 +#
 +<VirtualHost *:80>
 +        ServerAdmin webmaster@nausch.org
 +        ServerName camera.nausch.org:80
 +        ServerAlias camera.nausch.org *.camera.nausch.org
 +        ServerPath /
 +        DocumentRoot "/var/www/html/camera"
 +        <Directory "/var/www/html/camera">
 +                Options FollowSymLinks
 +                AllowOverride AuthConfig
 +                Order allow,deny
 +                Allow from all
 +        </Directory>
 +        DirectoryIndex index.html index.php
 +        ErrorLog logs/camera_error.log
 +        CustomLog logs/camera_access.log combined
 +        <IfModule mod_proxy.c>
 +                RewriteEngine     On
 +                RewriteLogLevel   1
 +                ProxyRequests     Off
 +                RewriteRule       ^/admin/(.*)   http://192.168.100.60/admin/$1   [P,L]
 +                RewriteRule       ^/cgi-bin/(.*) http://192.168.100.60/cgi-bin/$1 [P,L]
 +                RewriteRule       ^/control/(.*) http://192.168.100.60/control/$1 [P,L]
 +                RewriteRule       ^/decor/(.*)   http://192.168.100.60/decor/$1   [P,L]
 +                RewriteRule       ^/help/(.*)    http://192.168.100.60/help/$1    [P,L]
 +                RewriteRule       ^/record/(.*)  http://192.168.100.60/record/$1  [P,L]
 +                RewriteRule       ^/webcam/(.*)  http://192.168.100.60/$1         [P,L]
 +        </IfModule>
 +</VirtualHost></code>
 +Die Authentifizierung erfolgt nunmehr gegen unseren zentralen LDAP-Server.\\
 +\\
 +Der Zugriffsschutz greift damit aber __**NUR**__ für das Hauptverzeichnis **camera.nausch.org**, __**NICHT**__ für die Unterverzeichnisse, die wir an unsere Mobotix-Kamera weiterreichen. Damit auch diese geschützt werden, erweiteren wir unsere erste V-Host-Definition entsprechend:
 +<code>#
 +# camera.nausch.org
 +#
 +<VirtualHost *:80>
 +        ServerAdmin webmaster@nausch.org
 +        ServerName camera.nausch.org:80
 +        ServerAlias camera.nausch.org *.camera.nausch.org
 +        ServerPath /
 +        DocumentRoot "/var/www/html/camera"
 +        <Directory "/var/www/html/camera">
 +                Options FollowSymLinks
 +                AllowOverride AuthConfig
 +                Order allow,deny
 +                Allow from all
 +        </Directory>
 +        <Location "/admin">
 +                AuthType Basic
 +                AuthName "Wetterwebcam der Wetterstation Pliening"
 +                AuthBasicProvider ldap
 +                AuthzLDAPAuthoritative off
 +                AuthLDAPURL "ldap://ldap.domain.de:389/dc=domain,dc=de?uid"
 +                Require ldap-user webcam-root
 +        </Location>
 +        <Location "/cgi-bin">
 +                AuthType Basic
 +                AuthName "Wetterwebcam der Wetterstation Pliening"
 +                AuthBasicProvider ldap
 +                AuthzLDAPAuthoritative off
 +                AuthLDAPURL "ldap://ldap.domain.de:389/dc=domain,dc=de?uid"
 +                Require ldap-user webcam-root
 +        </Location>
 +        <Location "/control">
 +                AuthType Basic
 +                AuthName "Wetterwebcam der Wetterstation Pliening"
 +                AuthBasicProvider ldap
 +                AuthzLDAPAuthoritative off
 +                AuthLDAPURL "ldap://ldap.domain.de:389/dc=domain,dc=de?uid"
 +                Require ldap-user webcam-root
 +        </Location>
 +        <Location "/decor">
 +                AuthType Basic
 +                AuthName "Wetterwebcam der Wetterstation Pliening"
 +                AuthBasicProvider ldap
 +                AuthzLDAPAuthoritative off
 +                AuthLDAPURL "ldap://ldap.domain.de:389/dc=domain,dc=de?uid"
 +                Require ldap-user webcam-root
 +        </Location>
 +        <Location "/help">
 +                AuthType Basic
 +                AuthName "Wetterwebcam der Wetterstation Pliening"
 +                AuthBasicProvider ldap
 +                AuthzLDAPAuthoritative off
 +                AuthLDAPURL "ldap://ldap.domain.de:389/dc=domain,dc=de?uid"
 +                Require ldap-user webcam-root
 +        </Location>
 +        <Location "/record">
 +                AuthType Basic
 +                AuthName "Wetterwebcam der Wetterstation Pliening"
 +                AuthBasicProvider ldap
 +                AuthzLDAPAuthoritative off
 +                AuthLDAPURL "ldap://ldap.domain.de:389/dc=domain,dc=de?uid"
 +                Require ldap-user webcam-root
 +        </Location>
 +        <Location "/webcam">
 +                AuthType Basic
 +                AuthName "Wetterwebcam der Wetterstation Pliening"
 +                AuthBasicProvider ldap
 +                AuthzLDAPAuthoritative off
 +                AuthLDAPURL "ldap://ldap.domain.de:389/dc=domain,dc=de?uid"
 +                Require ldap-user webcam-root
 +        </Location>
 +        DirectoryIndex index.html index.php
 +        ErrorLog logs/camera_error.log
 +        CustomLog logs/camera_access.log combined
 +        <IfModule mod_proxy.c>
 +                RewriteEngine     On
 +                RewriteLogLevel   1
 +                ProxyRequests     Off
 +                RewriteRule       ^/admin/(.*)   http://192.168.100.60/admin/$1   [P,L]
 +                RewriteRule       ^/cgi-bin/(.*) http://192.168.100.60/cgi-bin/$1 [P,L]
 +                RewriteRule       ^/control/(.*) http://192.168.100.60/control/$1 [P,L]
 +                RewriteRule       ^/decor/(.*)   http://192.168.100.60/decor/$1   [P,L]
 +                RewriteRule       ^/help/(.*)    http://192.168.100.60/help/$1    [P,L]
 +                RewriteRule       ^/record/(.*)  http://192.168.100.60/record/$1  [P,L]
 +                RewriteRule       ^/webcam/(.*)  http://192.168.100.60/$1         [P,L]
 +        </IfModule>
 +</VirtualHost></code>
 +Somit ist nunmehr auch der Zugriff auf die Unterverzeichnisse der Mobotix-Kamera gesichert; d.h nicht mehr Gott und die Welt haben Zugriff auf die Kamera, in dem Sie die Adresse http://cam1.nausch.org/cgi-bin/guestimage.html eingeben.
 +===== Stufe 3: Webcam-User =====
 +Damit der Zugriff auf die gesicherten Bereiche der Kamera auch mit dem richtigen Systemuser erfolgt, legen wir den vorgenannten User **webcam-root** aus unserem zentralen Verzeichnisserver, noch in der Mobotix-Kamera an. Hierzu wählen wir im **Admin-Menü** den Punkt **Sicherheit - //Benutzer und Kennwörter//** aus und tragen dort den User **webcam-root** mit den entsprechenden Rechten ein.
 +{{ :ws:m22m-benutzer.png?250 }}
 +
 +~~DISCUSSION~~
  • wetter/mobotix/kommunikation_mit_der_kamera.txt
  • Zuletzt geändert: 31.10.2023 18:38.
  • von 127.0.0.1