Als der Postbote gestern mit dem erhofften Paket um die Ecke kam, musste ich mich natürlich direkt mal dran begeben dieses kleine Technikwunder auszuprobieren und mit dem Projekt Hausüberwachung zu beginnen.
Image herunterladen, installieren und der erste Start
Ein Betriebssystem Image habe ich mir vorab schon mal runtergeladen. Meine Wahl ist erst mal auf Raspbian gefallen, da es das am meisten verbreitetste Image ist. Eine Sammlung von Images gibt es hier. Als nächstes muss das Image mit Hilfe des Tools Win32DiskImager auf die SD-Karte kopiert werden. Ein manuelles Kopieren ohne das Tool wird nicht funktionieren. Das Tool ist recht einfach gehalten. Image und Ziellaufwerk auswählen, fertig.
Hat man das Image auf der SD-Karte steht dem Start eigentlich schon nichts mehr im Wege. Mini-USB zur Stromversorgung anschließen, Maus + Tastatur via USB verbinden, Netzwerkkabel und SD-Karte einstellen und loslegen. Wichtig: Die Stromversorgung erst anschließen wenn alles andere angeschlossen ist, da der Pi sofort mit dem Bootvorgang beginnt.
Als erstes erscheint eine kurze Konfiguration auf die ich jetzt nicht weiter eingehe da sie recht selbsterklärend ist. In der Konfiguration habe ich mich für die grafische Benutzeroberfläche entschieden und nach einem Reboot startet der Pi auch schon in die Oberfläche und ist dank DHCP auch direkt via LAN mit dem Internet verbunden.
Mit dem Terminal Befehl sudo apt-get update bringt man erst mal alles auf dem neuesten Stand.
RDP (Remote Desktop) Installation
Da ich an meinem Monitor nur einen HDMI Anschluss habe und nicht ständig zwischen PC und Pi hin und her stöpsel wollte, habe ich mich nach einer Remote-Lösung umgeschaut. Teamviewer war zu diesem Zeitpunkt noch nicht für ARM Plattformen verfügbar, also habe ich mich für das Microsoft RDP Protokoll entschieden.
Das benötigte Paket wird mit dem Befehl sudo apt-get install xrdp installiert. Anschließend kann man den Pi bequem aus der Ferne mit RDP fernsteuern und die weitere Konfiguration vernehmen. Der Benutzername lautet pi und das Passwort ist das in der anfänglich erwähnten Konfiguration vergebene Passwort.
SSH mittels Putty ist natürlich auch möglich, aber wer es gerne grafisch mag sollte auf die RDP Lösung zurückgreifen.
FTP Server Installation & Konfiguration
Als nächstes ging es darum einen FTP Server zu installieren damit die Überwachungskamera die Bilder hochladen kann. Das geschieht z.B. mit dem Befehl sudo apt-get install vsftpd.
Anschließend ist ein Anonymous Lese-Zugriff möglich. Da wir aber auch schreiben wollen, müssen wir nun weiter in die Konfiguration eintauchen.
Mit dem Befehl sudo nano /etc/vsftpd.conf bearbeiten wir die FTP Konfigurationsdatei und setzen folgende Parameter:
- anonymous_enable=NO
- local_enable=YES
- write_enable=YES
- chroot_local_user=YES
- local_umask=022
Diese Parameter deaktivieren den Anonymous Zugriff und erlauben es sich mit den lokalen Benutzern des Systems anzumelden inkl. Schreibberechtigung. Der Benutzer wird mit chroot_local_user in seinem Homeverzeichnis eingesperrt. Da wir natürlich nicht den root (pi) Benutzer dafür verwenden wollen, legen wir mit dem Befehl sudo useradd -m -s /sbin/false -g users cam einen neuen an und verpassen ihm anschließend ein Passwort sudo passwd cam. local_umask bewirkt dass die lokale umask für die Rechte von neuen Dateien genutzt wird, da die Cam Bilder ansonsten nicht lesbar für den Webserver wären.
Da wir beim Hinzufügen des Benutzers aus Sicherheitsgründen die Login-Shell (/sbin/false) unterbunden haben, ist somit auch keine Verbindung zum FTP möglich.
Um den FTP Zugriff wieder zu ermöglichen muss PAM konfiguriert werden: sudo nano /etc/pam.d/vsftpd
Standardmäßig sieht die Datei folgendermaßen aus:
# Standard behaviour for ftpd(8). auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed # Note: vsftpd handles anonymous logins on its own. Do not enable pam_ftp.so. # Standard pam includes @include common-account @include common-session @include common-auth auth required pam_shells.so
Um den Zugriff wieder zu aktivieren kommentieren wir die letzte Zeile mit einer # aus und speichern die Datei ab.
#auth required pam_shells.so
Anschließend den FTP Dienst neustarten sudo service vsftpd restart damit die neue Konfiguration geladen wird.
Da wir aber nun einen Fehler (500 OOPS: vsftpd: refusing to run with writable root inside chroot()) beim Verbinden bekommen, muss dem cam-Benutzer die Schreibberechtigung auf seinem Homelaufwerk entzogen werden sudo chmod a-w /home/cam und mit dem Befehl sudo mkdir cam_images ein neues Verzeichnis für die Bilder erstellt werden. Mit sudo chown cam cam_images wird anschließend der Besitzer des Verzeichnisses geändert.
5. Dezember 2013 um 16:25
Schöne Anleitung, wie klappt es mit der Kameraanbindung?
Würde gerne meinen hinteren Gartenbereich überwachen und das Projekt hört sich sehr interessant an. Taugt die Wansview NZB-541W Kamera auch was bei nacht?
5. Dezember 2013 um 20:22
Danke.
Hat ganz gut geklappt. Der/die Kleine hat bisher 16.000 Bilder gespeichert 🙂 , da ich die Cam halt rund um die Uhr laufen habe und dort mehrmals am Tag jemand durch geht.
Werde noch ein kleines Script schreiben das nur die Bilder der letzten X Tage aufbewahrt.
Nachtsicht ist ganz OK. Für den Preis vollkommen OK. Bei schnellen Bewegungen wirds leider etwas unscharf.
Werde demnächst mal ein paar Bilder reinstellen inkl. der Webserver Konfiguration.
Die Cam ist allerdings nicht für draußen geeignet!
14. Dezember 2013 um 16:04
Hallo,
die Anleitung hat mich gleich begeistert. Von dem gesparten Geld von der i-drive Reparatur habe ich gleich einen Raspberry Pi gekauft. Ist phänomenal was alles in dem kleinen Ding steckt.
Nebenbei: Schon mal die NETMF Gadgeteer Produkte angesehen?
-https://www.ghielectronics.com/community
Mit C# programmieren zu können hat schon was für sich.
16. Dezember 2013 um 06:38
Das ist ja lustig 🙂
Freut mich dass so viele Erfolgreich waren mit der Anleitung für das iDrive.
NETMF sagt mir nichts, aber klingt auch interessant. Habe eben mal rein geschaut.
Leider bin ich in C# nicht wirklich fit.
Wollte ich mir immer mal angeschaut haben, aber die Zeit… 😉
10. Januar 2015 um 01:22
Hallo
Ist es auch möglich das Video welches man empfängt abzuspeichern ?!
10. Januar 2015 um 19:24
Mit der von mir verwendeten Cam bin ich mir nicht sicher. Habe mich gerade mal durchs Menü geklickt, aber ich kann nichts finden. Für mich reicht das Bild bzw. es werden mehrere Bilder im Abstand von 1 Sekunde gemacht.
Mit einer anderen Cam sollte es aber durchaus möglich sein.