Der Kamerarechner ist zu schwach, um beispielsweise das Bild zu skalieren oder
beschriften. Ausserdem ist er im Allgemeinen im Netzwerk nicht so erreichbar,
dass er auch als Webserver dienen soll. Deshalb wird man in der Praxis sowohl
den Kamerarechner als auch einen Server mit vollem Internetzugriff brauchen.
Je nach Gegebenheiten gibt es mehrere Möglichkeiten zu kommunizieren:
Der Kamerarechner befindet sich im lokalen Netz des Servers bzw. kann sonstwie direkt erreicht werden. Das ist der einfachste Fall: Ein Login per ssh ist direkt möglich. Das bedarf keiner weiteren Beschreibung, dürfte aber mit den üblichen privaten IP-Adressen per NAT hinter einem Router nur in den wenigsten Fällen realisierbar sein.
Kamerarechner und Server unterhalten eine permanente VPN-Verbindung per SSH. Auf die Weise kann der Server die Kamera jederzeit erreichen und ggf. können Wartungsarbeiten verrichtet werden.
Das ist die zuverlässigste Variante und wird bei allen Foto-Webcam.eu Kameras verwendet.
Der Kamerarechner verbindet sich mit http(s) zum Server und wartet dort auf Befehle: Das ist eine Kompromisslösung, die ebenfalls eine Steuerung des Kamerarechners ermöglicht, aber z.B. keine Änderung von Dateien unterstützt.
Der Kamerarechner arbeitet ohne Fernsteuerung und sendet nur die Bilder zum Server. Auch das ist möglich, dürfte aber schwer beherrschbar sein weil kein korrigierender Eingriff im Fehlerfall möglich ist. Ein solcher Betrieb ist theoretisch möglich, aber erfahrungsgemäß nicht wünschenswert.
Im Folgenden werden die unterschiedlichen Topologien konkret beschrieben:
Um den Kamerarechner auch hinter einem Router mit einer privaten IP-Adresse
betreiben zu können, ist es praktsch wenn er zum Server einen Tunnel aufbaut
und stehen lässt. Dadurch ist es am Server jederzeit möglich, den Kamerarechner
zu erreichen, um Konfigurations- oder Wartungsarbeiten zu verrichten.
Um diesen Tunnel aufzubaun steht unter OpenWRT ein fertiges Paket zur
Verfügung:
sshtunnel: Hier wird über SSH eine Verbindung ohne Nutzdaten aufgebaut und ständig aufrecht erhalten. Über Port Forwarding kann eine eingehende Verbindung ermöglicht werden, die idealerweise wiederum am SSH-Port herauskommt. Der Server muss dazu lediglich mit SSH im Internet erreichbar sein. Die Konfiguration erfolgt über die Datei /etc/config/sshtunnel
theoretisch ist auch OpenVPN zu diesem Zweck geeignet, erfordert aber eine weitaus aufwendigere Infrastruktur, die sich in der Praxis als nicht wirklich notwendig erwiesen hat.
Der Kamerarechner muss im Besitz eines privaten Schlüssels sein, der am Server
per „authorized_keys“ die eingehende Verbindung ermöglicht. Aus
Sicherheitsgründen sollte am Server ein Login nur für diesen Zweck eingerichtet
werden, der keine Login-Shell (/bin/false) hat und deshalb nicht interaktiv
verwendet werden kann. Im Zweifelsfall hilft die Dokumentation von OpenSSH
weiter.
Beide Verfahren ermöglichen, dass der Server einen SSH-Befehl am Kamerarechner
absetzen kann. Die Zeitsteuerung und Auslösung der Bilder kann dadurch bequem
am Server stattfinden, der Kamerarechner muss keine Initiative ergreifen.