IP kamera biztonságos elérése kívülről

írta: buherton, 3 éve

Vettem két Reolink E1 Zoom-t. Ezeket szerettem volna lokál hálózaton kívülről is elérni.

Az első gondolatom az volt, hogy a kamerák webes elérését a home szerveren reverse proxyzom. Ennek számos előnye lett volna, hiszen a home szerverhez tartozik domain név, valid certificate és még autentikálni is tudtam volna. Se hogyan sem ment.

A keresések között akadtam erre a toolra: restreamer. Ez azt tudja, hogy a kamera RTSP-ből csinál egy webes streamet és mindezt reverse proxyzható módon. Ami még jobb megoldás is mint az előző, mert csak a videót szerettem volna csak megosztani, de azt biztonságos módon.

Restreamer config

Indítsd el a restreamert:
# docker run -d --restart always --name restreamer-cam1 -e "RS_USERNAME=admin" -e "RS_PASSWORD=datarhei" -p 1500:8080 -v /mnt/restreamer/cam1:/restreamer/db datarhei/restreamer:latest

Nyisd meg a böngészőben:
localhost:1500

admin/datarheit

Töltsd ki az "RTMP/RTSP/HLS Video Source"-t értelemszerűen:

Az /mnt/restreamer/cam1-be kerül minden config, így egy esetleges újraindításnál ott fogja folytatni ahol abbahagyta.

A crontabba másoljuk ezt be, hogy mindig fusson:
@reboot docker run -d --restart always --name restreamer-cam1 -e "RS_USERNAME=admin" -e "RS_PASSWORD=datarhei" -p 1500:8080 -v /mnt/restreamer/cam1:/restreamer/db datarhei/restreamer:latest

Ezzel meg is volnánk.

Apache config

/etc/apache2/sites-available/default-ssl.conf

ProxyPass /cam1 http://localhost:1500
<Location /cam1>
AuthType Basic
AuthName "Authentication Required"
AuthUserFile "/etc/htpasswd/.htpasswd"
Require valid-user
Order allow,deny
Allow from all
</Location>

Save és apache újraindítás után próba:
https://<domain>/cam1/ -> ezzel betölti config oldalt
https://<domain>/cam1/player.html -> ezzel betölti a stream oldalt