Kućni video nadzor. Shema za održavanje video arhive bez kućnog snimača

Već neko vrijeme želim napisati članak o skripti za rad s kamerom preko DVRIP protokola, no rasprava se odnosila na nedavne vijesti o Xiaomi ponukalo me da prvo pričam o tome kako sam postavio videonadzor kod kuće, a zatim prijeđem na skripte i ostalo.

Imali smo 2 paketa... Pa čekaj, nije to ista priča.
Imali smo 2 rutera od TP-LINK-a, pristup Internetu iza provajdera NAT, Partizan nadzornu kameru ne sjećam se koji model (bilo koja IP kamera koja podržava RSTP preko TCP-a ili DVRIP će poslužiti) i jeftini VPS za 4 eura sa karakteristike: 2 jezgre CPU 2.4GHz, 4GB RAM, 300 GB HDD, 100 Mbit/s port. A također i nevoljkost da se osim ovoga kupi bilo što što bi koštalo više od patch kabela.

predgovor

Iz očitih razloga, ne možemo samo proslijediti priključke za kameru na ruteru i uživati ​​u životu, osim toga, čak i da možemo, ne bismo to trebali činiti.

Čuo sam iz vedra neba da postoje neke opcije s IPv6 tuneliranjem, gdje se čini da se sve može učiniti tako da svi uređaji na mreži dobiju vanjsku IPv6 adresu, a to bi malo pojednostavilo stvari, iako još uvijek ostavlja sigurnost ovog dotičnog događaja, a podrška za ovo čudo u standardnom TP-LINK firmware-u je nekako čudna. Iako postoji mogućnost da u prethodnoj rečenici pričam potpune besmislice, pa nemojte uopće obraćati pažnju na to.

Ali, na našu sreću, gotovo svaki firmware za bilo koji router (zapravo prilično neutemeljena izjava) sadrži PPTP/L2TP klijent ili mogućnost instaliranja prilagođenog firmware-a s njim. I iz ovoga već možemo izgraditi neku vrstu strategije ponašanja.

Topologija

U napadu groznice, moj mozak je rodio nešto poput ovog dijagrama ožičenja:

a prilikom drugog napada sam ga nacrtao da objavim na HabruKućni video nadzor. Shema za održavanje video arhive bez kućnog snimača

Adresa 169.178.59.82 generirana je nasumično i služi samo kao primjer

Pa, ili ako riječima, onda:

  • usmjerivač TP-LINK 1 (192.168.1.1), u koji je umetnut kabel koji viri iz zida. Znatiželjni čitatelj će pogoditi da je to kabel provajdera preko kojeg pristupam Internetu. Razni kućni uređaji povezani su s ovim usmjerivačem putem patch kabela ili Wi-Fi-ja. Ovo je mreža 192.168.1.0
  • usmjerivač TP-LINK 2 (192.168.0.1, 192.168.1.200), u koji se umetne kabel koji viri iz routera TP-LINK 1. Zahvaljujući ovom kabelu router TP-LINK 2, kao i uređaji spojeni na njega, imaju i pristup internetu. Ovaj usmjerivač ima konfiguriranu PPTP vezu (10.0.5.100) s poslužiteljem 169.178.59.82. IP kamera 192.168.0.200 također je povezana s ovim usmjerivačem i prosljeđuju se sljedeći portovi
    • 192.168.0.200:80 -> 49151 (webmord)
    • 192.168.0.200:34567 -> 49152 (DVRIP)
    • 192.168.0.200:554 -> 49153 (RTSP)
  • Poslužitelj (169.178.59.82, 10.0.5.1), na koji je spojen router TP-LINK 2. Poslužitelj pokreće pptpd, shadowsocks i 3proxy, preko kojih možete pristupiti uređajima na 10.0.5.0 mreži i na taj način imati pristup routeru TP-LINK 2.

Tako svi kućni uređaji na 192.168.1.0 mreži imaju pristup kameri putem TP-LINK 2 na 192.168.1.200, a svi ostali se mogu spojiti putem pptp-a, shadowsocksa ili socksa5 i pristupiti 10.0.5.100.

podešavanje

Prvi korak je povezivanje svih uređaja prema dijagramu na gornjoj slici.

  • Postavljanje TP-LINK 1 usmjerivača svodi se na rezerviranje adrese 192.168.1.200 za TP-LINK 2. Opcionalno ako vam je potrebna fiksna adresa za pristup s mreže 192.168.1.0. I, ako želite, možete rezervirati 10-20 Mbit za njega (10 je dovoljno za jedan 1080 video stream).
  • Morate instalirati i konfigurirati pptpd na poslužitelju. Imam Ubuntu 18.04 i koraci su bili otprilike sljedeći (donator je bio primjer blog.xenot.ru/bystraya-nastrojka-vpn-servera-pptp-na-ubuntu-server-18-04-lts.fuck):
    • Instalirajte potrebne pakete:
      sudo apt install pptpd iptables-persistent
    • Dovodimo ga do sljedeće forme

      /etc/pptpd.conf

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

    • Mi uređujemo

      /etc/ppp/pptpd-opcije

      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
      
    • Dodavanje vjerodajnica u

      /etc/ppp/chap-secrets

      # Secrets for authentication using CHAP
      # client	server	secret			IP addresses
      username pptpd password *
    • Dodaj u

      /etc/sysctl.conf

      net.ipv4.ip_forward=1

      i ponovno učitaj sysctl

      sudo sysctl -p
    • Ponovno pokrenite pptpd i dodajte ga u startup
      sudo service pptpd restart
      sudo systemctl enable pptpd
    • Mi uređujemo

      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

      I spasiti

      sudo netfilter-persistent save
      sudo netfilter-persistent reload
      
  • Postavljanje TP-LINK 2
    • Rezerviramo adresu 192.168.0.200 za našu kameru:

      DHCP -> Rezervacija adrese — MAC adresa — MAC kamere, može se vidjeti u DHCP -> Popis DHCP klijenata
      — Rezervirana IP adresa — 192.168.0.200

    • Portovi za prosljeđivanje:
      Preusmjeravanje -> Virtualni poslužitelji — Servisni port: 49151, Interni port: 80, IP adresa: 192.168.0.200, Protokol: TCP
      — Servisni port: 49152, Interni port: 34567, IP adresa: 192.168.0.200, Protokol: TCP
      — Servisni port: 49153, Interni port: 554, IP adresa: 192.168.0.200, Protokol: TCP
    • Postavljanje VPN veze:

      Mreža -> WAN — Vrsta WAN veze: PPTP
      — Korisničko ime: korisničko ime (pogledajte /etc/ppp/chap-secrets)
      — Lozinka: lozinka (pogledajte /etc/ppp/chap-secrets)
      — Potvrdite lozinku: lozinka (pogledajte /etc/ppp/chap-secrets)
      - Dinamički IP
      — IP adresa/naziv poslužitelja: 169.178.59.82 (očito vanjski IP vašeg poslužitelja)
      — Način povezivanja: Povežite se automatski

    • Opcionalno, dopuštamo daljinski pristup web-stranici usmjerivača
      Sigurnost -> Daljinsko upravljanje - Port za web upravljanje: 80
      — IP adresa daljinskog upravljanja: 255.255.255.255
    • Ponovno pokrenite TP-LINK 2 usmjerivač

Umjesto PPTP-a možete koristiti L2TP ili, ako imate custom firmware, onda što vam srce poželi. Odabrao sam PPTP, jer ova shema nije izgrađena iz sigurnosnih razloga, a pptpd je, prema mom iskustvu, najbrži VPN poslužitelj. Štoviše, stvarno nisam želio instalirati prilagođeni firmware, što je značilo da sam morao birati između PPTP-a i L2TP-a.

Ako nigdje u priručniku nisam pogriješio, a vi ste sve učinili ispravno i imali sreće, onda nakon svih ovih manipulacija

  • prvo
    ifconfig

    pokazat će sučelje ppp0 inet 10.0.5.1 netmask 255.255.255.255 destination 10.0.5.100,

  • drugo, 10.0.5.100 mora pingati,
  • i treće
    ffprobe -rtsp_transport tcp "rtsp://10.0.5.100:49153/user=admin&password=password&channel=1&stream=0.sdp"

    Treba otkriti potok.
    Možete pronaći rtsp port, prijavu i lozinku u dokumentaciji za vašu kameru

Zaključak

U principu, ovo nije loše, postoji pristup RTSP-u, ako vlasnički softver radi putem DVRIP-a, onda ga možete koristiti. Možete spremiti stream koristeći ffmpeg, ubrzati video 2-3-5 puta, podijeliti ga na sat vremena, sve to uploadati na Google Drive ili društvene mreže i još mnogo, mnogo više.

Nije mi se sviđao RTSP preko TCP-a jer nije radio baš stabilno, ali preko UDP-a, iz razloga što ne možemo (ili možemo, ali ja to ne želim) proslijediti niz portova kroz koji će RTSP gurnuti video stream, neće raditi, napisao sam skriptu koja vuče stream preko TCP-a putem DVRIP-a. Pokazalo se stabilnijim.

Jedna od prednosti pristupa je ta što možemo uzeti nešto što podržava 2G zviždaljku umjesto TP-LINK 4 rutera, napajati sve zajedno s kamerom iz UPS-a (za koji će nedvojbeno trebati puno manje kapacitet nego kada pomoću snimača), osim toga, snimka se gotovo trenutno prenosi na poslužitelj, pa čak i ako uljezi prodru na vašu stranicu, neće moći preuzeti video. Općenito, postoji prostor za manevar i sve ovisi samo o vašoj mašti.

PS: Znam da mnogi proizvođači nude gotova rješenja u oblaku, ali cijenom su gotovo dvostruko skuplji od mog VPS-a (od kojih već imam 3, pa moram negdje alocirati resurse), pružaju puno manju kontrolu, a također nisu baš zadovoljavajuće kvalitete.

Izvor: www.habr.com

Dodajte komentar