Hejma videogvatado. Skemo pri konservado de video-arkivo sen hejma registristo

Mi deziras verki artikolon pri skripto por labori kun fotilo per la DVRIP-protokolo de sufiĉe da tempo, sed la diskuto rilatis al la lastatempaj novaĵoj pri Xiaomi instigis min unue paroli pri kiel mi aranĝas videogvatadon hejme, kaj poste pluiri al skriptoj kaj aliaj aferoj.

Ni havis 2 pakaĵojn... Do, atendu, ĉi tio ne estas la sama rakonto.
Ni havis 2 enkursigilojn de TP-LINK, retaliron malantaŭ la provizanto NAT, kontrolkameraon Partizan Mi ne memoras, kian modelon (ĉiu IP-fotilo kiu subtenas RSTP super TCP aŭ DVRIP faros) kaj malmultekosta VPS kontraŭ 4 eŭroj kun la karakterizaĵoj: 2 kerno CPU 2.4GHz, 4GB RAM, 300 GB HDD, 100 Mbit/s haveno. Kaj ankaŭ la malemo aĉeti ion krom tio, kio kostus pli ol flikŝnureton.

Antaŭparolo

Pro evidentaj kialoj, ni ne povas simple plusendi la fotilajn havenojn sur la enkursigilo kaj ĝui la vivon, krome, eĉ se ni povus, ni ne devus fari tion.

Mi tute aŭdis, ke ekzistas iuj ebloj kun IPv6-tunelado, kie ŝajnas, ke ĉio povas esti farita por ke ĉiuj aparatoj en la reto ricevu eksteran IPv6-adreson, kaj ĉi tio iom simpligus la aferojn, kvankam ĝi ankoraŭ lasas la sekurecon. de ĉi tiu koncerna evento, kaj la subteno por ĉi tiu miraklo en la norma TP-LINK-firmvaro estas iel stranga. Kvankam estas ebleco, ke en la antaŭa frazo mi parolas kompletan sensencaĵon, do tute ne atentu ĝin.

Sed, feliĉe por ni, preskaŭ ajna firmvaro por iu ajn enkursigilo (sufiĉe senbaza deklaro fakte) enhavas PPTP/L2TP-klienton aŭ la kapablon instali laŭmendan firmware per ĝi. Kaj el tio ni jam povas konstrui ian kondutstrategion.

Topologio

En febro, mia cerbo naskis ion similan al ĉi tiu kabliga diagramo:

kaj dum alia atako mi tiris ĝin por afiŝi sur HabrHejma videogvatado. Skemo pri konservado de video-arkivo sen hejma registristo

La adreso 169.178.59.82 estis kreita hazarde kaj funkcias nur kiel ekzemplo

Nu, aŭ se en vortoj, tiam:

  • Router TP-LINK 1 (192.168.1.1), en kiun oni enmetas kablon, kiu elstaras el la muro. Sciema leganto divenos, ke ĉi tiu estas la provizanta kablo per kiu mi aliras la Interreton. Diversaj hejmaj aparatoj estas konektitaj al ĉi tiu enkursigilo per flikŝnuro aŭ Wi-Fi. Ĉi tio estas la reto 192.168.1.0
  • Router TP-LINK 2 (192.168.0.1, 192.168.1.200), en kiun oni enmetas kablon, kiu elstaras el la enkursigilo TP-LINK 1. Danke al ĉi tiu kablo, ankaŭ la enkursigilo TP-LINK 2, same kiel la aparatoj konektitaj al ĝi, havas aliron al Interreto. Ĉi tiu enkursigilo estas agordita kun PPTP-konekto (10.0.5.100) al servilo 169.178.59.82. IP Fotilo 192.168.0.200 ankaŭ estas konektita al ĉi tiu enkursigilo kaj la sekvaj havenoj estas plusenditaj
    • 192.168.0.200:80 -> 49151 (webmord)
    • 192.168.0.200:34567 -> 49152 (DVRIP)
    • 192.168.0.200:554 -> 49153 (RTSP)
  • Servilo (169.178.59.82, 10.0.5.1), al kiu estas konektita la enkursigilo TP-LINK 2. La servilo funkcias pptpd, shadowsocks kaj 3proxy, per kiuj vi povas aliri aparatojn en la reto 10.0.5.0 kaj tiel havi aliron al la enkursigilo TP-LINK 2.

Tiel, ĉiuj hejmaj aparatoj en la reto 192.168.1.0 havas aliron al la fotilo per TP-LINK 2 ĉe 192.168.1.200, kaj ĉiuj aliaj povas konektiĝi per pptp, shadowsocks aŭ ŝtrumpetoj5 kaj aliri 10.0.5.100.

alĝustigo

La unua paŝo estas konekti ĉiujn aparatojn laŭ la diagramo en la supra figuro.

  • Agordi la enkursigilon TP-LINK 1 signifas rezervi la adreson 192.168.1.200 por TP-LINK 2. Laŭvola se vi bezonas fiksan adreson por aliro de la reto 192.168.1.0. Kaj, se vi volas, vi povas rezervi 10-20 Mbit por ĝi (10 sufiĉas por unu 1080-vidfluo).
  • Vi devas instali kaj agordi pptpd sur la servilo. Mi havas Ubuntu 18.04 kaj la paŝoj estis proksimume la sekvaj (la donacanto estis ekzemplo blog.xenot.ru/bystraya-nastrojka-vpn-servera-pptp-na-ubuntu-server-18-04-lts.fuck):
    • Instalu la necesajn pakaĵojn:
      sudo apt install pptpd iptables-persistent
    • Ni alportas ĝin al la sekva formo

      /etc/pptpd.conf

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

    • Ni redaktas

      /etc/ppp/pptpd-opcioj

      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
      
    • Aldonante akreditaĵojn al

      /etc/ppp/chap-secrets

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

      /etc/sysctl.conf

      net.ipv4.ip_forward=1

      kaj reŝargi sysctl

      sudo sysctl -p
    • Rekomencu pptpd kaj aldonu ĝin al ekfunkciigo
      sudo service pptpd restart
      sudo systemctl enable pptpd
    • Ni redaktas

      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

      Kaj ŝparu

      sudo netfilter-persistent save
      sudo netfilter-persistent reload
      
  • Agordo de TP-LINK 2
    • Ni rezervas la adreson 192.168.0.200 por nia fotilo:

      DHCP -> Adresrezervado — MAC-adreso — fotilo MAC, videbla en DHCP -> Listo de DHCP-klientoj
      — Rezervita IP-adreso — 192.168.0.200

    • Transdonaj havenoj:
      Redirekto -> Virtualaj Serviloj — Serva haveno: 49151, Interna haveno: 80, IP-adreso: 192.168.0.200, Protokolo: TCP
      — Serva haveno: 49152, Interna haveno: 34567, IP-adreso: 192.168.0.200, Protokolo: TCP
      — Serva haveno: 49153, Interna haveno: 554, IP-adreso: 192.168.0.200, Protokolo: TCP
    • Agordi VPN-konekton:

      Reto -> WAN — Tipo de konekto WAN: PPTP
      — Uzantnomo: uzantnomo (vidu /etc/ppp/chap-secrets)
      — Pasvorto: pasvorto (vidu /etc/ppp/chap-secrets)
      — Konfirmu pasvorton: pasvorton (vidu /etc/ppp/chap-secrets)
      - Dinamika IP
      — IP-adreso/Servilonomo: 169.178.59.82 (evidente, la ekstera IP de via servilo)
      — Konekta reĝimo: Konekti aŭtomate

    • Laŭvole, ni permesas foran aliron al la retvizaĝo de la enkursigilo
      Sekureco -> Malproksima Administrado - Retadministrada haveno: 80
      — IP-adreso de fora administrado: 255.255.255.255
    • Rekomencu la enkursigilon TP-LINK 2

Anstataŭ PPTP, vi povas uzi L2TP aŭ, se vi havas kutiman firmvaron, tiam kion ajn via koro deziras. Mi elektis PPTP, ĉar ĉi tiu skemo ne estis konstruita pro sekurecaj kialoj, kaj pptpd, laŭ mia sperto, estas la plej rapida VPN-servilo. Plie, mi vere ne volis instali kutiman firmvaron, kio signifis, ke mi devis elekti inter PPTP kaj L2TP.

Se mi ne faris eraron ie ajn en la manlibro, kaj vi faris ĉion ĝuste kaj bonŝancis, tiam post ĉiuj ĉi tiuj manipuladoj

  • en la unua loko
    ifconfig

    montros la interfacon ppp0 inet 10.0.5.1 netmask 255.255.255.255 destination 10.0.5.100,

  • due, 10.0.5.100 devas ping,
  • kaj trie
    ffprobe -rtsp_transport tcp "rtsp://10.0.5.100:49153/user=admin&password=password&channel=1&stream=0.sdp"

    Devus detekti la rivereton.
    Vi povas trovi la rtsp-havenon, ensaluton kaj pasvorton en la dokumentado por via fotilo

konkludo

Principe, ĉi tio ne estas malbona, ekzistas aliro al RTSP, se proprieta programaro funkcias per DVRIP, tiam vi povas uzi ĝin. Vi povas konservi la rivereton uzante ffmpeg, akceli la videon 2-3-5 fojojn, rompi ĝin en horojn longajn pecojn, alŝuti ĉion al Google Drive aŭ sociaj retoj kaj multe, multe pli.

Mi ne ŝatis RTSP super TCP, ĉar ĝi ne funkciis tre stabile, sed super UDP, pro la kialoj ke ni ne povas (aŭ ni povas, sed mi ne volas fari ĝin) plusendi la gamon da havenoj. tra kiu RTSP puŝos la videofluon , ĝi ne funkcios, mi skribis skripton kiu trenas fluon super TCP per DVRIP. Ĝi montriĝis pli stabila.

Unu el la avantaĝoj de la aliro estas, ke ni povas preni ion, kio subtenas 2G-fajfilon anstataŭ la TP-LINK 4-enkursigilo, funkciigi ĝin ĉion kune kun la fotilo de UPS (kiu sendube bezonos multe malpli ampleksan ol kiam kiam). uzante registrilon), krome, la registrado estas transdonita preskaŭ tuj al la servilo, do eĉ se entruduloj penetras vian retejon, ili ne povos kapti la videon. Ĝenerale, estas loko por manovro kaj ĉio dependas nur de via imago.

P.S.: Mi scias, ke multaj fabrikistoj proponas pretajn nubajn solvojn, sed laŭpreze ili estas preskaŭ duoble pli multekostaj ol mia VPS (el kiuj mi jam havas 3, do mi bezonas asigni rimedojn ie), provizas multe malpli da kontrolo, kaj ankaŭ ne tre kontentiga kvalito.

fonto: www.habr.com

Aldoni komenton