Domači video nadzor. Shema za vzdrževanje video arhiva brez domačega snemalnika

Že kar nekaj časa sem si želel napisati članek o skripti za delo s kamero preko DVRIP protokola, vendar se je razprava nanašala na nedavno novico o Xiaomi me je spodbudilo, da najprej spregovorim o tem, kako sem doma postavil videonadzor, nato pa preidem na skripte in druge stvari.

Imeli smo 2 paketa ... Torej, počakajte, to ni ista zgodba.
Imeli smo 2 usmerjevalnika od TP-LINK, dostop do interneta za ponudnikom NAT, nadzorno kamero Partizan, ne spomnim se več katerega modela (pristaja vsaka IP kamera, ki podpira RSTP preko TCP ali DVRIP) in poceni VPS za 4 evre z značilnosti: 2 jedrni procesor 2.4 GHz, 4 GB RAM, 300 GB HDD, 100 Mbit/s vrata. In tudi nepripravljenost kupiti še kaj poleg tega, kar bi stalo več kot povezovalni kabel.

Predgovor

Iz očitnih razlogov ne moremo samo posredovati vrat kamere na usmerjevalniku in uživati ​​v življenju, poleg tega, tudi če bi lahko, tega ne bi smeli početi.

Kar naenkrat sem slišal, da obstaja nekaj možnosti s tuneliranjem IPv6, kjer se zdi, da je vse mogoče narediti tako, da vse naprave v omrežju prejmejo zunanji naslov IPv6, in to bi stvari nekoliko poenostavilo, čeprav še vedno pušča varnost tega zadevnega dogodka in podpora za ta čudež v standardni programski opremi TP-LINK je nekako čudna. Čeprav obstaja možnost, da v prejšnjem stavku govorim popolne neumnosti, pa se na to sploh ne ozirajte.

Toda na našo srečo skoraj vsaka vdelana programska oprema za kateri koli usmerjevalnik (pravzaprav precej neutemeljena izjava) vsebuje odjemalca PPTP/L2TP ali možnost namestitve vdelane programske opreme po meri z njim. In iz tega že lahko zgradimo nekakšno strategijo obnašanja.

Topologija

V napadu vročine so moji možgani porodili nekaj takega kot tale shema ožičenja:

in med drugim napadom sem ga narisal za objavo na HabruDomači video nadzor. Shema za vzdrževanje video arhiva brez domačega snemalnika

Naslov 169.178.59.82 je bil ustvarjen naključno in služi samo kot primer

No, ali če z besedami, potem:

  • Usmerjevalnik TP-LINK 1 (192.168.1.1), v katerega je vstavljen kabel, ki štrli iz stene. Radovedni bralec bo uganil, da je to kabel ponudnika, preko katerega dostopam do interneta. Različne domače naprave so povezane s tem usmerjevalnikom prek patch kabla ali Wi-Fi. To je omrežje 192.168.1.0
  • Usmerjevalnik TP-LINK 2 (192.168.0.1, 192.168.1.200), v katerega je vstavljen kabel, ki štrli iz usmerjevalnika TP-LINK 1. Zahvaljujoč temu kablu ima usmerjevalnik TP-LINK 2, kot tudi nanj povezane naprave, tudi dostop do interneta. Ta usmerjevalnik je konfiguriran s povezavo PPTP (10.0.5.100) s strežnikom 169.178.59.82. Kamera IP 192.168.0.200 je prav tako povezana s tem usmerjevalnikom in naslednja vrata so posredovana
    • 192.168.0.200:80 -> 49151 (webmord)
    • 192.168.0.200:34567 -> 49152 (DVRIP)
    • 192.168.0.200:554 -> 49153 (RTSP)
  • Strežnik (169.178.59.82, 10.0.5.1), na katerega je povezan usmerjevalnik TP-LINK 2. Strežnik poganja pptpd, shadowsocks in 3proxy, preko katerih lahko dostopate do naprav v omrežju 10.0.5.0 in tako imate dostop do usmerjevalnika TP-LINK 2.

Tako imajo vse domače naprave v omrežju 192.168.1.0 dostop do kamere prek TP-LINK 2 na 192.168.1.200, vse ostale pa se lahko povežejo prek pptp, shadowsocks ali socks5 in dostopajo do 10.0.5.100.

prilagoditev

Prvi korak je povezava vseh naprav v skladu z diagramom na zgornji sliki.

  • Nastavitev usmerjevalnika TP-LINK 1 se zmanjša na rezervacijo naslova 192.168.1.200 za TP-LINK 2. Izbirno, če potrebujete fiksni naslov za dostop iz omrežja 192.168.1.0. In po želji lahko zanj rezervirate 10-20 Mbit (10 je dovolj za en video tok 1080).
  • Na strežniku morate namestiti in konfigurirati pptpd. Imam Ubuntu 18.04 in koraki so bili približno naslednji (donator je bil primer blog.xenot.ru/bystraya-nastrojka-vpn-servera-pptp-na-ubuntu-server-18-04-lts.fuck):
    • Namestite potrebne pakete:
      sudo apt install pptpd iptables-persistent
    • Pripeljemo ga do naslednje oblike

      /etc/pptpd.conf

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

    • Urejamo

      /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
      
    • Dodajanje poverilnic v

      /etc/ppp/chap-secrets

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

      /etc/sysctl.conf

      net.ipv4.ip_forward=1

      in znova naloži sysctl

      sudo sysctl -p
    • Znova zaženite pptpd in ga dodajte v zagon
      sudo service pptpd restart
      sudo systemctl enable pptpd
    • Urejamo

      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

      In prihranite

      sudo netfilter-persistent save
      sudo netfilter-persistent reload
      
  • Nastavitev TP-LINK 2
    • Za našo kamero rezerviramo naslov 192.168.0.200:

      DHCP -> Rezervacija naslova — Naslov MAC — MAC kamere, si lahko ogledate v DHCP -> Seznam odjemalcev DHCP
      — Rezerviran naslov IP — 192.168.0.200

    • Vrata za posredovanje:
      Preusmeritev -> Virtualni strežniki — Storitvena vrata: 49151, Notranja vrata: 80, IP naslov: 192.168.0.200, Protokol: TCP
      — Storitvena vrata: 49152, Notranja vrata: 34567, IP naslov: 192.168.0.200, Protokol: TCP
      — Storitvena vrata: 49153, Notranja vrata: 554, IP naslov: 192.168.0.200, Protokol: TCP
    • Nastavitev povezave VPN:

      Omrežje -> WAN — Vrsta povezave WAN: PPTP
      — Uporabniško ime: uporabniško ime (glejte /etc/ppp/chap-secrets)
      — Geslo: geslo (glejte /etc/ppp/chap-secrets)
      — Potrdite geslo: geslo (glejte /etc/ppp/chap-secrets)
      - Dinamični IP
      — Naslov IP/ime strežnika: 169.178.59.82 (očitno zunanji IP vašega strežnika)
      — Način povezave: Samodejna povezava

    • Po želji omogočimo oddaljeni dostop do spletne strani usmerjevalnika
      Varnost -> Oddaljeno upravljanje - Vrata za spletno upravljanje: 80
      — IP naslov za oddaljeno upravljanje: 255.255.255.255
    • Znova zaženite usmerjevalnik TP-LINK 2

Namesto PPTP lahko uporabite L2TP ali, če imate custom firmware, pa kar vam srce poželi. Izbral sem PPTP, ker ta shema ni bila zgrajena iz varnostnih razlogov, pptpd pa je po mojih izkušnjah najhitrejši strežnik VPN. Poleg tega res nisem želel namestiti vdelane programske opreme po meri, kar je pomenilo, da sem moral izbirati med PPTP in L2TP.

Če se nikjer v priročniku nisem zmotil in ste vse naredili pravilno in imeli srečo, potem po vseh teh manipulacijah

  • najprej
    ifconfig

    bo prikazal vmesnik ppp0 inet 10.0.5.1 netmask 255.255.255.255 destination 10.0.5.100,

  • drugič, 10.0.5.100 mora pingati,
  • in tretjič
    ffprobe -rtsp_transport tcp "rtsp://10.0.5.100:49153/user=admin&password=password&channel=1&stream=0.sdp"

    Moral bi zaznati tok.
    Vrata rtsp, prijavo in geslo najdete v dokumentaciji vaše kamere

Zaključek

Načeloma to ni slabo, obstaja dostop do RTSP, če lastniška programska oprema deluje prek DVRIP, jo lahko uporabite. Tok lahko shranite z uporabo ffmpeg, pospešite video 2-3-5 krat, ga razdelite na enourne dele, vse skupaj naložite na Google Drive ali socialna omrežja in še veliko, veliko več.

Ni mi bil všeč RTSP prek TCP, ker ni deloval zelo stabilno, ampak prek UDP, iz razlogov, ker ne moremo (ali lahko, vendar tega ne želim) posredovati obsega vrat skozi katerega bo RTSP potisnil video tok, ne bo delovalo, napisal sem skript, ki vleče tok prek TCP prek DVRIP. Izkazalo se je bolj stabilno.

Ena od prednosti pristopa je, da lahko namesto usmerjevalnika TP-LINK 2 vzamemo nekaj, kar podpira 4G piščalko, vse skupaj s kamero napajamo iz UPS-a (ki bo nedvomno potreboval veliko manj zmogljivega kot takrat z uporabo snemalnika), poleg tega se posnetek skoraj v trenutku prenese na strežnik, tako da tudi če vsiljivci prodrejo na vaše spletno mesto, ne bodo mogli zaseči videa. Na splošno je manevrski prostor in vse je odvisno samo od vaše domišljije.

PS: Vem, da veliko proizvajalcev ponuja že pripravljene rešitve v oblaku, vendar so po ceni skoraj dvakrat dražje od mojega VPS (ki jih že imam 3, tako da moram nekam razporediti sredstva), zagotavljajo veliko manj nadzora in tudi niso zelo zadovoljive kakovosti.

Vir: www.habr.com

Dodaj komentar