Videoovervågning i hjemmet. Ordning for vedligeholdelse af et videoarkiv uden en hjemmeregistrator

Jeg har længe haft lyst til at skrive en artikel om et script til at arbejde med et kamera via DVRIP-protokollen, men diskussionen vedrørte de seneste nyheder om Xiaomi fik mig til først at tale om, hvordan jeg sætter videoovervågning op derhjemme, og derefter gå videre til scripts og andre ting.

Vi havde 2 pakker... Så vent, det er ikke den samme historie.
Vi havde 2 routere fra TP-LINK, internetadgang bag udbyderen NAT, et Partizan overvågningskamera, jeg kan ikke huske hvilken model (ethvert IP-kamera, der understøtter RSTP over TCP eller DVRIP vil gøre) og en billig VPS til 4 euro med egenskaber: 2 core CPU 2.4 GHz, 4 GB RAM, 300 GB HDD, 100 Mbit/s port. Og også modviljen mod at købe noget udover dette, der ville koste mere end en patch-ledning.

Forord

Af indlysende grunde kan vi ikke bare videresende kameraportene på routeren og nyde livet, desuden, selvom vi kunne, skulle vi ikke gøre det.

Jeg hørte ud af det blå, at der er nogle muligheder med IPv6-tunneling, hvor det ser ud til, at alt kan lade sig gøre, så alle enheder på netværket modtager en ekstern IPv6-adresse, og det ville forenkle tingene lidt, selvom det stadig efterlader sikkerheden af denne pågældende begivenhed, og støtten til dette mirakel i standard TP-LINK-firmwaren er på en eller anden måde mærkelig. Selvom der er en mulighed for, at jeg i den foregående sætning taler fuldstændig nonsens, så vær slet ikke opmærksom på det.

Men heldigvis for os indeholder næsten enhver firmware til enhver router (en ret ubegrundet udtalelse faktisk) en PPTP/L2TP-klient eller muligheden for at installere brugerdefineret firmware med den. Og ud fra dette kan vi allerede bygge en form for adfærdsstrategi.

Topologi

I et feberanfald fødte min hjerne noget som dette ledningsdiagram:

og under et andet angreb tegnede jeg det til at poste på HabrVideoovervågning i hjemmet. Ordning for vedligeholdelse af et videoarkiv uden en hjemmeregistrator

Adressen 169.178.59.82 blev genereret tilfældigt og tjener kun som et eksempel

Nå, eller hvis i ord, så:

  • Router TP-LINK 1 (192.168.1.1), hvori der indsættes et kabel, der stikker ud af væggen. En nysgerrig læser vil gætte på, at dette er udbyderkablet, hvorigennem jeg får adgang til internettet. Forskellige hjemmeenheder er forbundet til denne router via patchledning eller Wi-Fi. Dette er netværket 192.168.1.0
  • Router TP-LINK 2 (192.168.0.1, 192.168.1.200), hvori der indsættes et kabel, der stikker ud af TP-LINK 1-routeren. Takket være dette kabel har TP-LINK 2-routeren, samt de enheder, der er tilsluttet den, også adgang til internettet. Denne router er konfigureret med en PPTP-forbindelse (10.0.5.100) til server 169.178.59.82. IP-kamera 192.168.0.200 er også forbundet til denne router, og følgende porte videresendes
    • 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), som TP-LINK 2-routeren er tilsluttet til. Serveren kører pptpd, shadowsocks og 3proxy, hvorigennem man kan tilgå enheder på 10.0.5.0-netværket og dermed få adgang til TP-LINK 2-routeren.

Således har alle hjemmeenheder på 192.168.1.0 netværket adgang til kameraet via TP-LINK 2 på 192.168.1.200, og alle andre kan tilsluttes via pptp, shadowsocks eller socks5 og få adgang til 10.0.5.100.

justering

Det første trin er at tilslutte alle enheder i henhold til diagrammet i figuren ovenfor.

  • Opsætning af TP-LINK 1-routeren handler om at reservere adressen 192.168.1.200 til TP-LINK 2. Valgfrit, hvis du har brug for en fast adresse til adgang fra 192.168.1.0-netværket. Og hvis det ønskes, kan du reservere 10-20 Mbit til det (10 er nok til en 1080 videostream).
  • Du skal installere og konfigurere pptpd på serveren. Jeg har Ubuntu 18.04, og trinene var omtrent følgende (donoren var et eksempel blog.xenot.ru/bystraya-nastrojka-vpn-servera-pptp-na-ubuntu-server-18-04-lts.fuck):
    • Installer de nødvendige pakker:
      sudo apt install pptpd iptables-persistent
    • Vi bringer det til følgende form

      /etc/pptpd.conf

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

    • Herske

      /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
      
    • Tilføjelse af legitimationsoplysninger til

      /etc/ppp/chap-secrets

      # Secrets for authentication using CHAP
      # client	server	secret			IP addresses
      username pptpd password *
    • Tilføj til

      /etc/sysctl.conf

      net.ipv4.ip_forward=1

      og genindlæs sysctl

      sudo sysctl -p
    • Genstart pptpd og tilføj det til opstart
      sudo service pptpd restart
      sudo systemctl enable pptpd
    • Herske

      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

      Og spar

      sudo netfilter-persistent save
      sudo netfilter-persistent reload
      
  • Opsætning af TP-LINK 2
    • Vi reserverer adressen 192.168.0.200 til vores kamera:

      DHCP -> Adressereservation — MAC-adresse — kamera-MAC, kan ses i DHCP -> Liste over DHCP-klienter
      — Reserveret IP-adresse — 192.168.0.200

    • Videresendelsesporte:
      Omdirigering -> Virtuelle servere — Serviceport: 49151, Intern port: 80, IP-adresse: 192.168.0.200, Protokol: TCP
      — Serviceport: 49152, Intern port: 34567, IP-adresse: 192.168.0.200, Protokol: TCP
      — Serviceport: 49153, Intern port: 554, IP-adresse: 192.168.0.200, Protokol: TCP
    • Opsætning af en VPN-forbindelse:

      Netværk -> WAN — WAN-forbindelsestype: PPTP
      — Brugernavn: brugernavn (se /etc/ppp/chap-secrets)
      — Adgangskode: adgangskode (se /etc/ppp/chap-secrets)
      — Bekræft adgangskode: adgangskode (se /etc/ppp/chap-secrets)
      - Dynamisk IP
      — IP-adresse/servernavn: 169.178.59.82 (naturligvis den eksterne IP på din server)
      — Tilslutningstilstand: Tilslut automatisk

    • Eventuelt tillader vi fjernadgang til routerens web-ansigt
      Sikkerhed -> Fjernstyring - Webadministrationsport: 80
      — IP-adresse til fjernstyring: 255.255.255.255
    • Genstart TP-LINK 2-routeren

I stedet for PPTP kan du bruge L2TP eller, hvis du har tilpasset firmware, så hvad dit hjerte begærer. Jeg valgte PPTP, da denne ordning ikke blev bygget af sikkerhedsmæssige årsager, og pptpd, efter min erfaring, er den hurtigste VPN-server. Desuden ville jeg virkelig ikke installere brugerdefineret firmware, hvilket betød, at jeg skulle vælge mellem PPTP og L2TP.

Hvis jeg ikke lavede en fejl nogen steder i manualen, og du gjorde alt korrekt og var heldig, så efter alle disse manipulationer

  • først
    ifconfig

    vil vise grænsefladen ppp0 inet 10.0.5.1 netmask 255.255.255.255 destination 10.0.5.100,

  • for det andet skal 10.0.5.100 pinge,
  • og for det tredje
    ffprobe -rtsp_transport tcp "rtsp://10.0.5.100:49153/user=admin&password=password&channel=1&stream=0.sdp"

    Bør registrere strømmen.
    Du kan finde rtsp-porten, login og adgangskode i dokumentationen til dit kamera

Konklusion

I princippet er dette ikke dårligt, der er adgang til RTSP, hvis proprietær software virker via DVRIP, så kan du bruge det. Du kan gemme streamen ved hjælp af ffmpeg, fremskynde videoen 2-3-5 gange, opdele den i timelange stykker, uploade det hele til Google Drev eller sociale netværk og meget, meget mere.

Jeg kunne ikke lide RTSP over TCP, fordi det ikke fungerede meget stabilt, men over UDP, af de grunde, at vi ikke kan (eller vi kan, men jeg vil ikke gøre det) videresende rækken af ​​porte hvorigennem RTSP vil skubbe videostrømmen, vil det ikke virke, jeg skrev et script, der trækker en stream over TCP via DVRIP. Det viste sig at være mere stabilt.

En af fordelene ved tilgangen er, at vi kan tage noget, der understøtter en 2G-fløjte i stedet for TP-LINK 4-routeren, forsyne det hele med kameraet fra en UPS (som uden tvivl har brug for en meget mindre rummelig en, end når ved hjælp af en optager), derudover overføres optagelsen næsten øjeblikkeligt til serveren, så selvom ubudne gæster trænger ind på dit websted, vil de ikke være i stand til at gribe videoen. Generelt er der plads til manøvre, og alt afhænger kun af din fantasi.

PS: Jeg ved godt, at mange producenter tilbyder færdige cloud-løsninger, men i pris er de næsten dobbelt så dyre som min VPS (som jeg allerede har 3 af, så jeg skal allokere ressourcer et sted), giver meget mindre kontrol, og også ikke særlig tilfredsstillende kvalitet.

Kilde: www.habr.com

Tilføj en kommentar