Otthoni videó megfigyelés. Videoarchívum karbantartásának sémája otthoni regisztrátor nélkül

Már régóta szerettem volna cikket írni egy DVRIP protokollon keresztüli kamerával való munkavégzés szkriptjéről, de a vita a legutóbbi hírekkel kapcsolatos Xiaomi Arra késztetett, hogy először beszéljek arról, hogyan állítottam be a videó megfigyelést otthon, majd térjek át a forgatókönyvekre és egyéb dolgokra.

2 csomagunk volt... Szóval várj, ez nem ugyanaz a történet.
Volt 2 routerünk a TP-LINK-ről, internet hozzáférés a szolgáltató NAT mögött, egy Partizan térfigyelő kamera, nem emlékszem milyen modellel (bármilyen IP kamera, ami támogatja az RSTP-t TCP-n vagy DVRIP-en keresztül) és egy olcsó VPS 4 euróért a Jellemzők: 2 magos CPU 2.4 GHz, 4 GB RAM, 300 GB HDD, 100 Mbit/s port. És az a vonakodás is, hogy ezen felül bármit megvegyenek, ami többe kerülne, mint egy patch zsinór.

Előszó

Nyilvánvaló okokból nem tudjuk csak úgy továbbítani a routeren a kameraportokat, és élvezni az életet, ráadásul még ha tudnánk is, ezt nem szabad megtenni.

A fülem sarkából hallottam, hogy van néhány lehetőség az IPv6 tunnelingnél, ahol úgy tűnik, mindent meg lehet tenni, hogy a hálózaton lévő összes eszköz külső IPv6 címet kapjon, és ez egy kicsit leegyszerűsítené a dolgokat, bár még mindig meghagyja ennek az eseménynek a biztonságát, és a csoda támogatása a szabványos TP-LINK firmware-ben valahogy furcsa. Bár lehet, hogy az előző mondatban teljes hülyeségeket beszélek, szóval ne figyelj rá.

De szerencsére minden routerhez szinte minden firmware (sőt, meglehetősen alaptalan kijelentés) tartalmaz PPTP/L2TP klienst vagy egyedi firmware telepítésének lehetőségét. Ebből pedig már építhetünk valamiféle viselkedési stratégiát.

Topológia

Lázrohamban az agyam valami ehhez hasonló kapcsolási rajzot szült:

és egy másik támadás során lerajzoltam, hogy a HabrOtthoni videó megfigyelés. Videoarchívum karbantartásának sémája otthoni regisztrátor nélkül

A 169.178.59.82 cím véletlenszerűen jött létre, és csak példaként szolgál

Nos, vagy ha szavakkal, akkor:

  • router TP-LINK 1 (192.168.1.1), amelybe a falból kilógó kábel van behelyezve. Egy érdeklődő olvasó kitalálja, hogy ez az a szolgáltatói kábel, amelyen keresztül elérem az internetet. Különféle otthoni eszközök csatlakoznak ehhez az útválasztóhoz patch kábelen vagy Wi-Fi-n keresztül. Ez a hálózat 192.168.1.0
  • router TP-LINK 2 (192.168.0.1, 192.168.1.200), amelybe a TP-LINK 1 routerből kilógó kábel van behelyezve.Ennek a kábelnek köszönhetően a TP-LINK 2 router, valamint a hozzá csatlakozó eszközök is hozzáférnek az internethez. Ez az útválasztó PPTP-kapcsolattal (10.0.5.100) van konfigurálva a 169.178.59.82 szerverhez. A 192.168.0.200 IP-kamera is csatlakozik ehhez az útválasztóhoz, és a következő portok vannak továbbítva
    • 192.168.0.200:80 -> 49151 (webmord)
    • 192.168.0.200:34567 -> 49152 (DVRIP)
    • 192.168.0.200:554 -> 49153 (RTSP)
  • Szerver (169.178.59.82, 10.0.5.1), amelyre a TP-LINK 2 router csatlakozik A szerveren pptpd, shadowsocks és 3proxy fut, melyen keresztül elérheti a 10.0.5.0 hálózaton lévő eszközöket és így hozzáférhet a TP-LINK 2 routerhez.

Így a 192.168.1.0 hálózaton lévő összes otthoni eszköz hozzáfér a kamerához a 2-as TP-LINK 192.168.1.200-n keresztül, az összes többi pedig pptp-n, shadowsockon vagy socks5-ön keresztül csatlakozhat, és elérheti a 10.0.5.100-at.

beállítás

Az első lépés az összes eszköz csatlakoztatása a fenti ábra diagramja szerint.

  • A TP-LINK 1 útválasztó beállítása a 192.168.1.200 cím lefoglalását jelenti a TP-LINK 2 számára. Nem kötelező, ha fix címre van szüksége a 192.168.1.0 hálózatról való hozzáféréshez. És ha kívánja, 10-20 Mbit-et is foglalhat rá (10 elég egy 1080-as videofolyamhoz).
  • Telepítenie és konfigurálnia kell a pptpd-t a szerveren. Ubuntu 18.04-em van, és a lépések hozzávetőleg a következők voltak (az adományozó volt egy példa blog.xenot.ru/bystraya-nastrojka-vpn-servera-pptp-na-ubuntu-server-18-04-lts.fuck):
    • Telepítse a szükséges csomagokat:
      sudo apt install pptpd iptables-persistent
    • A következő formába hozzuk

      /etc/pptpd.conf

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

    • Szerkesztünk

      /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
      
    • Hitelesítési adatok hozzáadása a következőhöz

      /etc/ppp/chap-secrets

      # Secrets for authentication using CHAP
      # client	server	secret			IP addresses
      username pptpd password *
    • Hozzáadás

      /etc/sysctl.conf

      net.ipv4.ip_forward=1

      és töltse be újra a sysctl-t

      sudo sysctl -p
    • Indítsa újra a pptpd-t, és adja hozzá az indításhoz
      sudo service pptpd restart
      sudo systemctl enable pptpd
    • Szerkesztünk

      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

      És menteni

      sudo netfilter-persistent save
      sudo netfilter-persistent reload
      
  • A TP-LINK beállítása 2
    • Fenntartjuk a 192.168.0.200 címet a kameránknak:

      DHCP -> Címfoglalás — MAC cím — kamera MAC, megtekinthető a DHCP -> DHCP kliensek listája menüpontban
      — Fenntartott IP-cím — 192.168.0.200

    • Továbbítási portok:
      Átirányítás -> Virtuális szerverek — Szerviz port: 49151, Belső port: 80, IP-cím: 192.168.0.200, Protokoll: TCP
      — Szerviz port: 49152, Belső port: 34567, IP-cím: 192.168.0.200, Protokoll: TCP
      — Szerviz port: 49153, Belső port: 554, IP-cím: 192.168.0.200, Protokoll: TCP
    • VPN-kapcsolat beállítása:

      Hálózat -> WAN — WAN kapcsolat típusa: PPTP
      — Felhasználónév: felhasználónév (lásd /etc/ppp/chap-secrets)
      — Jelszó: jelszó (lásd /etc/ppp/chap-secrets)
      — Erősítse meg a jelszót: jelszó (lásd /etc/ppp/chap-secrets)
      - Dinamikus IP
      — IP-cím/szervernév: 169.178.59.82 (nyilvánvalóan a szerver külső IP-címe)
      — Csatlakozási mód: Automatikus csatlakozás

    • Opcionálisan engedélyezzük a távoli hozzáférést az útválasztó weblapjához
      Biztonság -> Távkezelés - Webkezelő port: 80
      — Távoli kezelési IP-cím: 255.255.255.255
    • Indítsa újra a TP-LINK 2 útválasztót

A PPTP helyett használhat L2TP-t, vagy ha egyedi firmware-rel rendelkezik, akkor bármit, amit a szíve kíván. A PPTP-t választottam, mivel ez a séma nem biztonsági okokból készült, és tapasztalatom szerint a pptpd a leggyorsabb VPN-kiszolgáló. Sőt, igazán nem akartam egyedi firmware-t telepíteni, ami azt jelentette, hogy választanom kellett a PPTP és az L2TP között.

Ha nem hibáztam sehol a kézikönyvben, és mindent helyesen csináltál, és szerencséd volt, akkor mindezen manipulációk után

  • először
    ifconfig

    megmutatja a felületet ppp0 inet 10.0.5.1 netmask 255.255.255.255 destination 10.0.5.100,

  • másodszor, a 10.0.5.100-nak pingelnie kell,
  • és harmadszor
    ffprobe -rtsp_transport tcp "rtsp://10.0.5.100:49153/user=admin&password=password&channel=1&stream=0.sdp"

    Érzékelni kell a folyamot.
    Az rtsp portot, a bejelentkezési nevet és a jelszót a fényképezőgép dokumentációjában találja

Következtetés

Ez elvileg nem rossz, van hozzáférés RTSP-hez, ha DVRIP-en keresztül működik a védett szoftver, akkor használhatod. Az ffmpeg segítségével mentheti a streamet, 2-3-5-ször felgyorsíthatja a videót, több órás darabokra bonthatja, feltöltheti a Google Drive-ra vagy a közösségi oldalakra és még sok minden más.

Nem szerettem a TCP feletti RTSP-t, mert nem túl stabilan működött, hanem UDP-n, azon okok miatt, hogy nem tudjuk (vagy tudjuk, de nem akarom) továbbítani a portok tartományát. amelyen keresztül az RTSP fogja nyomni a video streamet , nem fog működni, írtam egy scriptet, ami DVRIP-en keresztül áthúz egy streamet TCP-n keresztül. Stabilabbnak bizonyult.

A megközelítés egyik előnye, hogy a TP-LINK 2 router helyett vehetünk valamit, ami támogatja a 4G sípot, és mindezt a kamerával együtt egy UPS-ről tápláljuk (amihez kétségtelenül sokkal kisebb kapacitású kell, mint amikor felvevő használatával), ráadásul a felvétel szinte azonnal továbbításra kerül a szerverre, így még ha behatolók is behatolnak a webhelyére, nem tudják lefoglalni a videót. Általában van mozgástér, és minden csak a képzeletétől függ.

PS: Tudom, hogy sok gyártó kínál kész felhőmegoldásokat, de árban majdnem kétszer olyan drágábbak, mint az én VPS-em (amiből már 3 van, ezért kell valahol erőforrásokat allokálnom), sokkal kevesebb vezérlést biztosítanak, és nem túl kielégítő minőségű.

Forrás: will.com

Hozzászólás