Heimvideoüberwachung. Schema zur Führung eines Videoarchivs ohne Heimregistrator

Ich wollte schon seit einiger Zeit einen Artikel über ein Skript für die Arbeit mit einer Kamera über das DVRIP-Protokoll schreiben, aber die Diskussion über die neuesten Nachrichten darüber Xiaomi veranlasste mich, zunächst darüber zu sprechen, wie ich die Videoüberwachung bei mir zu Hause einrichte, und dann zu Skripten und mehr überzugehen.

Wir hatten 2 Packungen ... Also warte, das ist nicht die Geschichte.
Wir hatten 2 TP-LINK-Router, Internetzugang hinter einem Provider-NAT, eine Partizan-Überwachungskamera, ich weiß nicht mehr, welches Modell (jede IP-Kamera, die RSTP über TCP oder DVRIP unterstützt, reicht aus) und einen günstigen VPS für 4 Euro mit dem Eigenschaften: 2-Kern-CPU 2.4 GHz, 4 GB RAM, 300 GB Festplatte, 100 Mbit/s-Anschluss. Und auch die Zurückhaltung, dafür etwas zu kaufen, was mehr kosten würde als ein Patchkabel.

Vorwort

Aus offensichtlichen Gründen können wir nicht einfach die Kamera-Ports am Router weiterleiten und das Leben genießen, und selbst wenn wir könnten, sollten wir es nicht tun.

Aus dem Ohrenwinkel habe ich gehört, dass es einige Optionen mit IPv6-Tunneling gibt, bei denen man anscheinend alles so machen kann, dass alle Geräte im Netzwerk eine externe IPv6-Adresse erhalten, und das würde die Sache jedoch etwas vereinfachen. Die Sicherheit dieser Veranstaltung bleibt immer noch fraglich, und auch die Unterstützung in der Standard-TP-LINK-Firmware für dieses Wunder ist irgendwie seltsam. Obwohl es möglich ist, dass ich im vorherigen Satz völligen Unsinn rede, achten Sie überhaupt nicht darauf.

Aber zum Glück für uns enthält fast jede Firmware für jeden Router (eigentlich eine eher unbegründete Aussage) einen PPTP/L2TP-Client oder die Möglichkeit, benutzerdefinierte Firmware mit seiner Anwesenheit zu installieren. Und daraus können wir bereits eine Art Verhaltensstrategie aufbauen.

Topologie

In einem Fieberanfall brachte mein Gehirn so etwas wie diesen Schaltplan hervor:

und während eines weiteren Angriffs zog ich, um es auf Habr zu legenHeimvideoüberwachung. Schema zur Führung eines Videoarchivs ohne Heimregistrator

Die Adresse 169.178.59.82 wird zufällig generiert und dient nur als Beispiel

Naja, oder wenn in Worten, dann:

  • Router TP-LINK 1 (192.168.1.1), in den ein Kabel eingeführt wird, das aus der Wand herausragt. Ein neugieriger Leser wird vermuten, dass es sich hierbei um ein Anbieterkabel handelt, über das ich Zugang zum Internet bekomme. Über ein Patchkabel oder WLAN werden verschiedene Heimgeräte mit diesem Router verbunden. Es ist ein Netzwerk 192.168.1.0
  • Router TP-LINK 2 (192.168.0.1, 192.168.1.200), in das ein Kabel eingesteckt wird, das aus dem TP-LINK 1-Router herausragt. Dank dieses Kabels haben auch der TP-LINK 2-Router sowie daran angeschlossene Geräte Zugang zum Internet. Dieser Router verfügt über eine PPTP-Verbindung (10.0.5.100), die zum Server 169.178.59.82 konfiguriert ist. An diesen Router ist auch die IP-Kamera 192.168.0.200 angeschlossen und die folgenden Ports werden weitergeleitet
    • 192.168.0.200:80 -> 49151 (Webseite)
    • 192.168.0.200:34567 -> 49152 (DVRIP)
    • 192.168.0.200:554 -> 49153 (RTSP)
  • Server (169.178.59.82, 10.0.5.1), an den der TP-LINK 2-Router angeschlossen ist. Auf dem Server laufen Pptpd, Shadowsocks und 3proxy, über die Sie auf Geräte im 10.0.5.0-Netzwerk zugreifen können und somit Zugriff auf den TP-LINK 2-Router haben.

Somit können alle Heimgeräte im Netzwerk 192.168.1.0 über TP-LINK 2 unter 192.168.1.200 auf die Kamera zugreifen, und alle anderen Geräte können sich über pptp, Shadowsocks oder Socks5 verbinden und auf 10.0.5.100 zugreifen.

Einstellung

Der erste Schritt besteht darin, alle Geräte gemäß dem Diagramm in der Abbildung oben anzuschließen.

  • Beim Einrichten eines TP-LINK 1-Routers geht es darum, die Adresse 192.168.1.200 für TP-LINK 2 zu reservieren. Optional, wenn Sie eine feste Adresse für den Zugriff aus dem Netzwerk 192.168.1.0 benötigen. Und auf Wunsch können Sie dafür 10-20 Mbit/s reservieren (10 reichen für einen Videostream in 1080 mit Kopf).
  • Auf dem Server müssen Sie pptpd installieren und konfigurieren. Ich habe Ubuntu 18.04 und die Schritte waren ungefähr wie folgt (der Spender war ein Beispiel). blog.xenot.ru/bystraya-nastrojka-vpn-servera-pptp-na-ubuntu-server-18-04-lts.fuck):
    • Installieren Sie die erforderlichen Pakete:
      sudo apt install pptpd iptables-persistent
    • Wir bringen zum folgenden Formular

      /etc/pptpd.conf

      option /etc/ppp/pptpd-options
      bcrelay eth0 # Интерфейс, через который ваш сервер ходит в интернеты
      logwtmp
      localip 10.0.5.1
      remoteip 10.0.5.100-200

    • Regel

      /etc/ppp/pptpd-options

      novj
      novjccomp
      nologfd
      
      name pptpd
      refuse-pap
      refuse-chap
      refuse-mschap
      require-mschap-v2
      #require-mppe-128 # Можно раскомментировать, но мой TP-LINK c ним не дружит
      
      ms-dns 8.8.8.8
      ms-dns 1.1.1.1
      ms-dns  77.88.8.8
      ms-dns 8.8.4.4
      ms-dns 1.0.0.1
      ms-dns  77.88.8.1
      
      proxyarp
      nodefaultroute
      lock
      nobsdcomp
      
    • Anmeldeinformationen hinzufügen zu

      /etc/ppp/chap-secrets

      # Secrets for authentication using CHAP
      # client	server	secret			IP addresses
      username pptpd password *
    • ergänzen

      /etc/sysctl.conf

      net.ipv4.ip_forward=1

      und sysctl neu laden

      sudo sysctl -p
    • Starten Sie pptpd neu und fügen Sie es zum automatischen Laden hinzu
      sudo service pptpd restart
      sudo systemctl enable pptpd
    • Regel

      iptables

      sudo iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
      sudo iptables -A INPUT -p tcp -m tcp --dport 1723 -j ACCEPT
      sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
      sudo iptables --table nat --append POSTROUTING --out-interface ppp+ -j MASQUERADE
      sudo iptables -I INPUT -s 10.0.5.0/24 -i ppp+ -j ACCEPT
      sudo iptables --append FORWARD --in-interface eth0 -j ACCEPT

      Und speichern

      sudo netfilter-persistent save
      sudo netfilter-persistent reload
      
  • TP-LINK 2 einrichten
    • Für unsere Kamera reservieren wir die Adresse 192.168.0.200:

      DHCP -> Adressreservierung - MAC-Adresse – MAC der Kamera, einsehbar unter DHCP -> Liste der DHCP-Clients
      - Reservierte IP-Adresse – 192.168.0.200

    • Weiterleitungsports:
      Weiterleitung -> Virtuelle Server - Service-Port: 49151, interner Port: 80, IP-Adresse: 192.168.0.200, Protokoll: TCP
      - Service-Port: 49152, interner Port: 34567, IP-Adresse: 192.168.0.200, Protokoll: TCP
      - Service-Port: 49153, interner Port: 554, IP-Adresse: 192.168.0.200, Protokoll: TCP
    • VPN-Verbindung einrichten:

      Netzwerk -> WAN - WAN-Verbindungstyp: PPTP
      - Benutzername: Benutzername (siehe /etc/ppp/chap-secrets)
      - Passwort: Passwort (siehe /etc/ppp/chap-secrets)
      - Passwort bestätigen: Passwort (siehe /etc/ppp/chap-secrets)
      - Dynamische IP
      - IP-Adresse/Servername: 169.178.59.82 (natürlich die externe IP Ihres Servers)
      - Verbindungsmodus: Automatisch verbinden

    • Erlauben Sie optional den Fernzugriff auf das Router-Webmord
      Sicherheit -> Fernverwaltung - Webverwaltungsport: 80
      - IP-Adresse für die Fernverwaltung: 255.255.255.255
    • Neustart des TP-LINK 2-Routers

Anstelle von PPTP können Sie L2TP oder, wenn Sie über eine benutzerdefinierte Firmware verfügen, alles verwenden, was Ihr Herz begehrt. Ich habe mich für PPTP entschieden, da dieses Schema nicht auf Sicherheitsaspekten beruhte und pptpd meiner Erfahrung nach der schnellste VPN-Server ist. Außerdem wollte ich keine benutzerdefinierte Firmware installieren, was bedeutete, dass ich mich zwischen PPTP und L2TP entscheiden musste.

Wenn ich im Handbuch nirgendwo einen Fehler gemacht habe und Sie alles richtig gemacht haben und Glück hatten, dann nach all diesen Manipulationen

  • erstens
    ifconfig

    zeigt die Schnittstelle an ppp0 inet 10.0.5.1 netmask 255.255.255.255 destination 10.0.5.100,

  • Zweitens muss 10.0.5.100 gepingt werden,
  • und drittens
    ffprobe -rtsp_transport tcp "rtsp://10.0.5.100:49153/user=admin&password=password&channel=1&stream=0.sdp"

    Sollte den Stream erkennen.
    RTSP-Port, Login und Passwort finden Sie in der Dokumentation Ihrer Kamera

Abschluss

Im Prinzip ist es schon nicht schlecht, es gibt Zugang zu RTSP, wenn proprietäre Software über DVRIP funktioniert, dann kann man sie nutzen. Sie können den Stream mit ffmpeg speichern, das Video um das 2-3-5-fache beschleunigen, es für eine Stunde in Stücke aufteilen, alles auf Google Drive oder soziale Netzwerke hochladen und vieles mehr.

Mir gefiel RTSP über TCP nicht, weil es irgendwie nicht sehr stabil funktionierte, aber über UDP, weil wir den Portbereich nicht weiterleiten können (oder wir können, aber ich möchte das nicht). Welcher RTSP den Videostream verschiebt, wird nicht funktionieren. Ich habe ein Skript geschrieben, das den Stream über TCP über DVRIP zieht. Es schien stabiler zu sein.

Aufgrund der Vorteile des Ansatzes können wir anstelle des TP-LINK 2-Routers etwas nehmen, das eine 4G-Pfeife unterstützt, und alles zusammen mit der Kamera über die USV mit Strom versorgen (was zweifellos viel weniger Kapazität erfordert als bei Verwendung des Registrars). ), außerdem wird die Aufzeichnung fast augenblicklich an den Server übertragen, sodass Angreifer, selbst wenn sie in Ihr Haus eindringen, das Video nicht von ihnen entfernen können. Im Allgemeinen gibt es Spielraum und alles hängt von Ihrer Vorstellungskraft ab.

PS: Ich weiß, dass viele Hersteller fertige Cloud-Lösungen anbieten, aber zu einem Preis, der fast doppelt so hoch ist wie die Kosten meines VPS (von denen ich bereits 3 habe, also muss ich irgendwo Ressourcen unterbringen), bieten sie viel weniger Kontrolle und auch nicht sehr zufriedenstellende Qualität.

Source: habr.com

Kommentar hinzufügen