Günther Obermaiers Webseite



upCam Cyclone HD PRO Netzwerkkamera

Kamera einrichten

Zuerst schloss ich die Kamera ans LAN an und fummelte die IP Adresse mittels Netzwerkscan heraus.
DEFAULT IP:     192.168.1.126
Default User:   admin
Default Pass:   admin
Mit dem Browser wird die http://192.168.1.126 eingegeben und an der Kamera angemeldet. Als erstes wird die IP Adresse und Netzwerkeinstellungen unter Einstellungen - Netzwerk geändert. Da die Kamera später im WLAN der Frizubox und damit ausserhalb der Firewall hängt, vergebe ich eine IP aus dem Transfernetz zwischen Router und Firewall:
Netzwerk-IP:    192.168.178.85
Gateway:        192.168.178.201		(in Augsburg ec die IP des Routers: 192.168.50.1)
DNS:            192.168.178.201		(in Augsburg ec die IP des Routers: 192.168.50.1)
nach Speichern muss der Client PC auch wieder auf das 192.168.178.-Netz umkonfiguriert werden. Die Namen der Netzwerkkameras wählte ich aus den Pleiaden/Hyaden, was jetzt konfiguriert wird:
System-Geraetename
    Name:               taygeta
System-Zeit:
    Zone:               GMT+1
    NTP:                time.nist.gov
    Sommerzeit:         ON
System-Benutzer:
    Admin:              root
    Pass:               ADMINPASS
    Betr:               gogo
    Pass:               USERPASS 
    Gast:               guest
    Pass:               GUESTPASS
nach Speichern der User erfolgt ein Automatischer Reboot. Danach als root mit neuem Passwort anmelden.
Netzwerk-WLAN	
    aktiv:              ON
    SSID Liste:         asmodeus
    SSID:               asmodeus
    Key:                WPA2KEY         # 20 Stellen lang, wichtig wegen bekanntem Angriff
mehr Einstellungen
    Versch:             AES
    Sicherheit:         WPA2-PSK
in Vachendorf (zum Einrichten): Verschlüsselung: TKIP, Sicherheit: WPA-PSK
Netzwerk-UPNP	
    UPNP:               OFF
    P2P:                OFF
Netzwerk-ddns	
    Herst DDNS:	        OFF
    Dritt DDNS:         OFF
LiveAnsicht - Nachtmodus 
    AUS/AN:			    fest AUS
Normalerweise fährt die Kamera nach reboot oder Stromausfall in Mittelposition. Damit sie stattdessen in die gewünschte, gerade eingestellte fährt: Im Live Modus auf Voreinstellung
auf1, dann setzen klicken, dann unter Einstellungen
Andere-Pan/Tilt Motor	
    Voreinst n. Neust:	1
    Mittig ausrichten:	OFF
Bei den Einstellungen ist das der Default, aber setzen muss man die Voreinstellungen 1(oder 2-4) jedenfalls.

Bilder im Alarmfall speichern

Die Cyclone HD-PRO hat praktischerweise einen PIR-Sensor, so dass man nicht auf Softwarealarm via Bildänderung angewiesen ist. Bei einigen Kameras will ich im Alarmfall nämlich Bilder per FTP speichern:
Alarm bei PIR Bewegung
    Alarm via PIR:      aktiviert
    PIR Flag:           PIR Flag 1
    Kombi-Schaltung:    gesamter Bereich
Alarm Aktionen
    AlarmEinzelB FTP:   aktiviert
    AlarmVideo FTP:     aktiviert
FTP
    FTP Server:         192.168.178.201	
    FTP Benutzern:      cam
    FTP Passwort:       FTPPASSWORT
    Pfad:               ./taygeta
    Passiver Modus:     aktiviert
    Port:               21

FTP Server einrichten

Auf dem Server/Firewall wega wird der FTP Server installiert. Ebenso die Firewallregeln, die den FTP-Zugriff von aussen erlaubt. Das würde ich normalerweise nicht tun, ist in diesem Fall aber unkritisch, da der FTP-Zugriff aus dem Internet schon durch die Regeln am Router blockiert wird.
# apt install proftpd-basic
nach der Installation wird die Konfigurationsdatei des proftp Daemons bearbeit:
# vi /etc/proftpd/conf.d/custom.conf
# Ftp user doesn't need a valid shell
<Global>
  RequireValidShell off
  PassivePorts 49500 49600
</Global>
# If desired turn off IPv6
UseIPv6 off
# Default directory is ftpusers home
DefaultRoot ~ ftpuser
# Limit login to the ftpuser group
<Limit LOGIN>
    DenyGroup !ftpuser
</Limit>
Für die Kameras wird der User cam verwendet. in der /etc/passwd
cam:x:880:880:Camera User:/home/cam:/bin/false
dann in der /etc/shadow die Zeile für den User cam anlegen
und in der /etc/group
ftpuser:x:880:cam,go
Schliesslich wird das Passwort für dem User cam gesetzt, Home-Verzeichnis angelegt und an den User übergeben:
# passwd cam FTPPASSWORT
# mkdir /home/cam
# chown cam:ftpuser /home/cam
# chmod 770 /home/cam
# mkdir /home/cam/taygeta
# chown cam:ftpuser /home/cam/taygeta
# chmod 770 /home/cam/taygeta
Die Unterverzeichnisse müssen für jede Kamera angelegt werden (letzte 3 Zeilen).
Damit echte User der Gruppe common diese Dateien auch löschen können, benötigt man eine ACL:
# setfacl -R -m g:ftpuser:rw,g:common:rw,u:cam:rwx,d:g:common:rw,d:u::rwx,d:m::rwx,o::- /home/cam
So ganz wichtig: Die Firewallregeln am Server so anpassen, dass die Datenübertragung auf die FTP Freigabe nicht blockiert wird. Dazu werden folgende Zeilen in die /usr/local/bin/fwstart2 eingetragen:
iptables -A INPUT -i "$EXT_IF" -p tcp --dport 21 -m state --state NEW -j ACCEPT
iptables -A INPUT -i "$EXT_IF" -p tcp --dport 49500:49600 -m state --state NEW -j ACCEPT
Anschliessend wird das Firewallskript neu gestartet.

Zusatzinfos

Da ich die Kameras in eine PHP Applikation integriert habe, um via https (was die Cyclone nicht unterstützt) aus dem Internet zugreifen zu könen, musste ich die grundlegendsten Teile des Benutzerinterfaches selbst nachbauen und dazu die Steuerung der Kameras über Sniffer und Logfiles analysieren. Später bin ich dann auf der Website von upCam über eine Beschreibung der API gestolpert.

erster Stream:
rtsp://IPCAM:554/11 
Bild auslesen:
http://IPCAM/tmpfs/snap.jpg
Bild ueber das Internet auslesen, wnn im apache via Proxy eine Weiterleitung eingerichtet ist. Das geht auch ueber https, wenn der Proxy die Weiterleitung auf http besorgt:
https://guest:GUESTPASS@DYNDNSIP/CAMNAME/tmpfs/snap.jpg
schwenkt Kamera nach links:
http://IPCAM/web/cgi-bin/hi3510/ptzctrl.cgi?-step=1&-act=left&-speed=15
LOG: der Kamera lesen
GET /web/tmpfs/syslog.txt
Kamerabild Umkehren
http://IPCAMweb/cgi-bin/hi3510/param.cgi?cmd=setimageattr&-image_type=1&-flip=on&-mirror=on&-imgmode=1 
http://IPCAMweb/cgi-bin/hi3510/param.cgi?cmd=setimageattr&-image_type=1&-flip=off&-mirror=off&-imgmode=1