Pagsubaybay sa video sa bahay. Scheme para sa pagpapanatili ng isang video archive na walang home recorder

Matagal ko nang gustong magsulat ng isang artikulo tungkol sa isang script para sa pagtatrabaho sa isang camera sa pamamagitan ng DVRIP protocol, ngunit ang talakayan na nauugnay sa kamakailang balita tungkol sa Xiaomi nag-udyok sa akin na magsalita muna tungkol sa kung paano ako nag-set up ng video surveillance sa bahay, at pagkatapos ay lumipat sa mga script at iba pang mga bagay.

We had 2 packages... So, wait, this is not the same story.
Mayroon kaming 2 router mula sa TP-LINK, Internet access sa likod ng provider NAT, isang Partizan surveillance camera Hindi ko matandaan kung anong modelo (anumang IP camera na sumusuporta sa RSTP sa TCP o DVRIP ang gagawin) at isang murang VPS sa halagang 4 euro na may mga katangian: 2 core CPU 2.4GHz, 4GB RAM, 300 GB HDD, 100 Mbit/s port. At gayundin ang pag-aatubili na bumili ng anuman bilang karagdagan dito na nagkakahalaga ng higit sa isang patch cord.

paunang salita

Para sa mga malinaw na dahilan, hindi natin maipapasa ang mga port ng camera sa router at i-enjoy ang buhay, bukod pa, kahit na magagawa natin, hindi natin dapat gawin iyon.

Narinig ko nang biglaan na mayroong ilang mga opsyon sa IPv6 tunneling, kung saan tila magagawa ang lahat upang ang lahat ng mga device sa network ay makatanggap ng isang panlabas na IPv6 address, at ito ay magpapasimple ng mga bagay nang kaunti, kahit na umalis pa rin ito sa seguridad. ng kaganapang ito na pinag-uusapan , at ang suporta para sa himalang ito sa karaniwang TP-LINK firmware ay kakaiba. Bagaman may posibilidad na sa nakaraang pangungusap ay nagsasalita ako ng kumpletong kalokohan, kaya't huwag mo itong pansinin.

Ngunit, sa kabutihang palad para sa amin, halos anumang firmware para sa anumang router (isang medyo walang batayan na pahayag sa katunayan) ay naglalaman ng isang PPTP/L2TP client o ang kakayahang mag-install ng custom na firmware dito. At mula dito maaari na tayong bumuo ng ilang uri ng diskarte sa pag-uugali.

Topology

Dahil sa lagnat, nanganak ang utak ko ng isang tulad nitong wiring diagram:

at sa panahon ng isa pang pag-atake ay iginuhit ko ito upang i-post sa HabrPagsubaybay sa video sa bahay. Scheme para sa pagpapanatili ng isang video archive na walang home recorder

Ang address na 169.178.59.82 ay random na nabuo at nagsisilbing halimbawa lamang

Well, o kung sa mga salita, kung gayon:

  • Ruta TP-LINK 1 (192.168.1.1), kung saan may ipinapasok na cable na dumidikit sa dingding. Hulaan ng isang matanong na mambabasa na ito ang cable ng provider kung saan ako nag-a-access sa Internet. Nakakonekta ang iba't ibang device sa bahay sa router na ito sa pamamagitan ng patch cord o Wi-Fi. Ito ang network 192.168.1.0
  • Ruta TP-LINK 2 (192.168.0.1, 192.168.1.200), kung saan ipinasok ang isang cable na dumidikit sa TP-LINK 1 router. Salamat sa cable na ito, ang TP-LINK 2 router, pati na rin ang mga device na nakakonekta dito, ay mayroon ding access sa Internet. Ang router na ito ay na-configure na may koneksyon sa PPTP (10.0.5.100) sa server 169.178.59.82. Ang IP Camera 192.168.0.200 ay konektado din sa router na ito at ang mga sumusunod na port ay ipinapasa
    • 192.168.0.200:80 -> 49151 (webmord)
    • 192.168.0.200:34567 -> 49152 (DVRIP)
    • 192.168.0.200:554 -> 49153 (RTSP)
  • Server (169.178.59.82, 10.0.5.1), kung saan nakakonekta ang TP-LINK 2 router. Ang server ay nagpapatakbo ng pptpd, shadowsocks at 3proxy, kung saan maaari mong ma-access ang mga device sa 10.0.5.0 network at sa gayon ay may access sa TP-LINK 2 router.

Kaya, lahat ng home device sa 192.168.1.0 network ay may access sa camera sa pamamagitan ng TP-LINK 2 sa 192.168.1.200, at lahat ng iba ay maaaring kumonekta sa pamamagitan ng pptp, shadowsocks o socks5 at ma-access ang 10.0.5.100.

pag-aayos

Ang unang hakbang ay upang ikonekta ang lahat ng mga aparato ayon sa diagram sa figure sa itaas.

  • Ang pag-set up ng TP-LINK 1 router ay bumababa sa pagreserba ng address na 192.168.1.200 para sa TP-LINK 2. Opsyonal kung kailangan mo ng nakapirming address para sa pag-access mula sa 192.168.1.0 network. At, kung ninanais, maaari kang magreserba ng 10-20 Mbit para dito (10 ay sapat para sa isang 1080 video stream).
  • Kailangan mong i-install at i-configure ang pptpd sa server. Mayroon akong Ubuntu 18.04 at ang mga hakbang ay humigit-kumulang sa mga sumusunod (ang donor ay isang halimbawa blog.xenot.ru/bystraya-nastrojka-vpn-servera-pptp-na-ubuntu-server-18-04-lts.fuck):
    • I-install ang mga kinakailangang pakete:
      sudo apt install pptpd iptables-persistent
    • Dinadala namin ito sa sumusunod na form

      /etc/pptpd.conf

      option /etc/ppp/pptpd-options
      bcrelay eth0 # Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ваш сСрвСр Ρ…ΠΎΠ΄ΠΈΡ‚ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Ρ‹
      logwtmp
      localip 10.0.5.1
      remoteip 10.0.5.100-200

    • Inedit namin

      /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
      
    • Pagdaragdag ng mga kredensyal sa

      /etc/ppp/chap-secrets

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

      /etc/sysctl.conf

      net.ipv4.ip_forward=1

      at i-reload ang sysctl

      sudo sysctl -p
    • I-reboot ang pptpd at idagdag ito sa startup
      sudo service pptpd restart
      sudo systemctl enable pptpd
    • Inedit namin

      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

      At i-save

      sudo netfilter-persistent save
      sudo netfilter-persistent reload
      
  • Pag-set up ng TP-LINK 2
    • Inilalaan namin ang address na 192.168.0.200 para sa aming camera:

      DHCP -> Pagrereserba ng Address β€” MAC address β€” camera MAC, maaaring matingnan sa DHCP -> Listahan ng mga DHCP client
      β€” Nakareserbang IP address β€” 192.168.0.200

    • Mga port ng pagpapasa:
      Pag-redirect -> Mga Virtual Server β€” Port ng serbisyo: 49151, Panloob na port: 80, IP address: 192.168.0.200, Protocol: TCP
      β€” Port ng serbisyo: 49152, Panloob na port: 34567, IP address: 192.168.0.200, Protocol: TCP
      β€” Port ng serbisyo: 49153, Panloob na port: 554, IP address: 192.168.0.200, Protocol: TCP
    • Pag-set up ng koneksyon sa VPN:

      Network -> WAN β€” Uri ng koneksyon ng WAN: PPTP
      β€” Username: username (tingnan ang /etc/ppp/chap-secrets)
      β€” Password: password (tingnan ang /etc/ppp/chap-secrets)
      β€” Kumpirmahin ang password: password (tingnan ang /etc/ppp/chap-secrets)
      - Dinamikong IP
      β€” IP address/Pangalan ng server: 169.178.59.82 (malinaw, ang panlabas na IP ng iyong server)
      β€” Mode ng koneksyon: Awtomatikong kumonekta

    • Opsyonal, pinapayagan namin ang malayuang pag-access sa web face ng router
      Seguridad -> Malayong Pamamahala - Port ng pamamahala sa web: 80
      β€” Remote management IP address: 255.255.255.255
    • I-reboot ang TP-LINK 2 router

Sa halip na PPTP, maaari mong gamitin ang L2TP o, kung mayroon kang custom na firmware, kung ano ang gusto ng iyong puso. Pinili ko ang PPTP, dahil ang scheme na ito ay hindi binuo para sa mga kadahilanang pangseguridad, at ang pptpd, sa aking karanasan, ay ang pinakamabilis na VPN server. Bukod dito, talagang ayaw kong mag-install ng custom na firmware, na nangangahulugang kailangan kong pumili sa pagitan ng PPTP at L2TP.

Kung hindi ako nagkamali kahit saan sa manwal, at ginawa mo ang lahat ng tama at masuwerte, pagkatapos ng lahat ng mga manipulasyong ito

  • una
    ifconfig

    ay magpapakita ng interface ppp0 inet 10.0.5.1 netmask 255.255.255.255 destination 10.0.5.100,

  • pangalawa, dapat mag-ping ang 10.0.5.100,
  • at pangatlo
    ffprobe -rtsp_transport tcp "rtsp://10.0.5.100:49153/user=admin&password=password&channel=1&stream=0.sdp"

    Dapat makita ang stream.
    Mahahanap mo ang rtsp port, login at password sa dokumentasyon para sa iyong camera

Konklusyon

Sa prinsipyo, hindi ito masama, may access sa RTSP, kung gumagana ang proprietary software sa pamamagitan ng DVRIP, maaari mo itong gamitin. Maaari mong i-save ang stream gamit ang ffmpeg, pabilisin ang video 2-3-5 beses, hatiin ito sa isang oras na piraso, i-upload ang lahat ng ito sa Google Drive o mga social network at marami pa.

Hindi ko gusto ang RTSP sa TCP, dahil hindi ito gumana nang napaka-stable, ngunit sa UDP, para sa mga kadahilanang hindi namin magawa (o kaya namin, ngunit ayaw kong gawin ito) ipasa ang hanay ng mga port kung saan itulak ng RTSP ang video stream , hindi ito gagana, nagsulat ako ng script na nag-drag ng stream sa TCP sa pamamagitan ng DVRIP. Ito ay naging mas matatag.

Ang isa sa mga bentahe ng diskarte ay maaari tayong kumuha ng isang bagay na sumusuporta sa isang 2G whistle sa halip na ang TP-LINK 4 router, i-power ang lahat ng ito kasama ang camera mula sa isang UPS (na walang alinlangan na nangangailangan ng mas kaunting kapasidad kaysa sa kapag gamit ang isang recorder), bilang karagdagan, ang pag-record ay ipinadala halos kaagad sa server, kaya kahit na ang mga nanghihimasok ay tumagos sa iyong site, hindi nila magagawang sakupin ang video. Sa pangkalahatan, mayroong puwang para sa pagmamaniobra at ang lahat ay nakasalalay lamang sa iyong imahinasyon.

PS: Alam ko na maraming mga tagagawa ang nag-aalok ng mga handa na solusyon sa ulap, ngunit sa presyo ay halos dalawang beses na mas mahal kaysa sa aking VPS (kung saan mayroon na akong 3, kaya kailangan kong maglaan ng mga mapagkukunan sa isang lugar), magbigay ng mas kaunting kontrol, at gayundin hindi masyadong kasiya-siya ang kalidad.

Pinagmulan: www.habr.com

Magdagdag ng komento