Videobewaking thuis. Schema voor het onderhouden van een videoarchief zonder thuisregistreerder

Ik wilde al een tijdje een artikel schrijven over een script voor het werken met een camera via het DVRIP-protocol, maar de discussie had betrekking op het recente nieuws over Xiaomi bracht mij ertoe om eerst te praten over hoe ik thuis videobewaking instelde, en daarna verder te gaan met scripts en andere dingen.

We hadden 2 pakketten... Dus wacht, dit is niet hetzelfde verhaal.
We hadden 2 routers van TP-LINK, internettoegang achter de provider NAT, een Partizan-bewakingscamera, ik weet niet meer welk model (elke IP-camera die RSTP via TCP of DVRIP ondersteunt, is voldoende) en een goedkope VPS voor 4 euro met de kenmerken: 2 core CPU 2.4 GHz, 4 GB RAM, 300 GB HDD, 100 Mbit/s poort. En ook de onwil om daarnaast nog iets te kopen dat meer kost dan een patchsnoer.

Voorwoord

Om voor de hand liggende redenen kunnen we niet zomaar de camerapoorten op de router doorsturen en van het leven genieten, en zelfs als we dat wel zouden kunnen, zouden we dat niet moeten doen.

Ik hoorde uit het niets dat er enkele opties zijn met IPv6-tunneling, waarbij het erop lijkt dat alles kan worden gedaan zodat alle apparaten op het netwerk een extern IPv6-adres ontvangen, en dit zou de zaken een beetje vereenvoudigen, hoewel de beveiliging nog steeds overblijft van deze gebeurtenis in kwestie, en de ondersteuning voor dit wonder in de standaard TP-LINK-firmware is op de een of andere manier vreemd. Hoewel de mogelijkheid bestaat dat ik in de vorige zin complete onzin praat, besteed er dus helemaal geen aandacht aan.

Maar gelukkig voor ons bevat bijna elke firmware voor elke router (in feite een nogal ongegronde bewering) een PPTP/L2TP-client of de mogelijkheid om er aangepaste firmware mee te installeren. En hieruit kunnen we al een soort gedragsstrategie bouwen.

Topologie

In een koortsaanval kregen mijn hersenen zoiets als dit bedradingsschema:

en tijdens een andere aanval tekende ik het om op Habr te plaatsenVideobewaking thuis. Schema voor het onderhouden van een videoarchief zonder thuisregistreerder

Het adres 169.178.59.82 is willekeurig gegenereerd en dient uitsluitend als voorbeeld

Nou ja, of in woorden, dan:

  • Router TP-LINK 1 (192.168.1.1), waarin een kabel wordt gestoken die uit de muur steekt. Een nieuwsgierige lezer zal raden dat dit de kabel van de provider is waarmee ik toegang krijg tot internet. Via patchkabel of Wi-Fi zijn diverse thuisapparaten met deze router verbonden. Dit is het netwerk 192.168.1.0
  • Router TP-LINK 2 (192.168.0.1, 192.168.1.200), waarin een kabel wordt gestoken die uit de router TP-LINK 1 steekt. Dankzij deze kabel heeft de TP-LINK 2 router, evenals de daarop aangesloten apparaten, ook toegang tot internet. Deze router is geconfigureerd met een PPTP-verbinding (10.0.5.100) met server 169.178.59.82. IP Camera 192.168.0.200 is ook op deze router aangesloten en de volgende poorten worden doorgestuurd
    • 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), waarop de TP-LINK 2-router is aangesloten. De server draait pptpd, shadowsocks en 3proxy, waarmee je toegang krijgt tot apparaten op het 10.0.5.0-netwerk en dus toegang hebt tot de TP-LINK 2-router.

Alle thuisapparaten op het 192.168.1.0-netwerk hebben dus toegang tot de camera via TP-LINK 2 op 192.168.1.200, en alle andere kunnen verbinding maken via pptp, shadowsocks of sokken5 en toegang krijgen tot 10.0.5.100.

afstelling

De eerste stap is het aansluiten van alle apparaten volgens het diagram in de bovenstaande afbeelding.

  • Het instellen van de TP-LINK 1-router komt neer op het reserveren van het adres 192.168.1.200 voor TP-LINK 2. Optioneel als je een vast adres nodig hebt voor toegang vanaf het 192.168.1.0-netwerk. En desgewenst kun je er 10-20 Mbit voor reserveren (10 is genoeg voor één 1080 videostream).
  • U moet pptpd op de server installeren en configureren. Ik heb Ubuntu 18.04 en de stappen waren ongeveer als volgt (de donor was een voorbeeld blog.xenot.ru/bystraya-nastrojka-vpn-servera-pptp-na-ubuntu-server-18-04-lts.fuck):
    • Installeer de vereiste pakketten:
      sudo apt install pptpd iptables-persistent
    • We brengen het naar de volgende vorm

      /etc/pptpd.conf

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

    • Wij bewerken

      /etc/ppp/pptpd-opties

      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
      
    • Inloggegevens toevoegen aan

      /etc/ppp/chap-secrets

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

      /etc/sysctl.conf

      net.ipv4.ip_forward=1

      en herlaad sysctl

      sudo sysctl -p
    • Start pptpd opnieuw op en voeg het toe aan het opstarten
      sudo service pptpd restart
      sudo systemctl enable pptpd
    • Wij bewerken

      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

      En bespaar

      sudo netfilter-persistent save
      sudo netfilter-persistent reload
      
  • TP-LINK instellen 2
    • Voor onze camera reserveren wij het adres 192.168.0.200:

      DHCP -> Adresreservering — MAC-adres — MAC van de camera, kan worden bekeken in DHCP -> Lijst met DHCP-clients
      — Gereserveerd IP-adres — 192.168.0.200

    • Poorten doorsturen:
      Omleiding -> Virtuele servers — Servicepoort: 49151, interne poort: 80, IP-adres: 192.168.0.200, Protocol: TCP
      — Servicepoort: 49152, interne poort: 34567, IP-adres: 192.168.0.200, Protocol: TCP
      — Servicepoort: 49153, interne poort: 554, IP-adres: 192.168.0.200, Protocol: TCP
    • Een VPN-verbinding instellen:

      Netwerk -> WAN — WAN-verbindingstype: PPTP
      — Gebruikersnaam: gebruikersnaam (zie /etc/ppp/chap-secrets)
      — Wachtwoord: wachtwoord (zie /etc/ppp/chap-secrets)
      — Wachtwoord bevestigen: wachtwoord (zie /etc/ppp/chap-secrets)
      - Dynamische IP
      — IP-adres/servernaam: 169.178.59.82 (uiteraard het externe IP-adres van uw server)
      — Verbindingsmodus: automatisch verbinding maken

    • Optioneel staan ​​we externe toegang tot de webface van de router toe
      Beveiliging -> Beheer op afstand - Webbeheerpoort: 80
      — IP-adres voor beheer op afstand: 255.255.255.255
    • Start de TP-LINK 2-router opnieuw op

In plaats van PPTP kunt u L2TP gebruiken of, als u over aangepaste firmware beschikt, wat uw hartje begeert. Ik heb voor PPTP gekozen, omdat dit schema om veiligheidsredenen niet is gebouwd, en pptpd, naar mijn ervaring, de snelste VPN-server is. Bovendien wilde ik echt geen aangepaste firmware installeren, waardoor ik moest kiezen tussen PPTP en L2TP.

Als ik nergens in de handleiding een fout heb gemaakt en je alles correct hebt gedaan en geluk hebt gehad, dan na al deze manipulaties

  • in de eerste plaats
    ifconfig

    zal de interface tonen ppp0 inet 10.0.5.1 netmask 255.255.255.255 destination 10.0.5.100,

  • ten tweede moet 10.0.5.100 pingen,
  • en ten derde
    ffprobe -rtsp_transport tcp "rtsp://10.0.5.100:49153/user=admin&password=password&channel=1&stream=0.sdp"

    Zou de stream moeten detecteren.
    De rtsp-poort, login en wachtwoord vindt u in de documentatie van uw camera

Conclusie

In principe is dit niet erg, er is toegang tot RTSP, als propriëtaire software via DVRIP werkt, dan kun je deze gebruiken. Je kunt de stream opslaan met ffmpeg, de video 2-3-5 keer versnellen, opdelen in stukken van een uur, alles uploaden naar Google Drive of sociale netwerken en nog veel, veel meer.

Ik hield niet van RTSP via TCP, omdat het niet erg stabiel werkte, maar via UDP, om de reden dat we het bereik van poorten niet kunnen doorsturen (of dat kunnen we wel, maar ik wil het niet doen). waardoor RTSP de videostream zal pushen, het werkt niet, ik heb een script geschreven dat via DVRIP een stream over TCP sleept. Het bleek stabieler te zijn.

Een van de voordelen van deze aanpak is dat we in plaats van de TP-LINK 2-router iets kunnen nemen dat een 4G-fluit ondersteunt, en dit allemaal samen met de camera van stroom kunnen voorzien via een UPS (die ongetwijfeld een veel minder grote unit nodig heeft dan wanneer met behulp van een recorder), wordt de opname bovendien vrijwel onmiddellijk naar de server verzonden, dus zelfs als indringers uw site binnendringen, kunnen ze de video niet onderscheppen. Over het algemeen is er manoeuvreerruimte en hangt alles alleen af ​​van je verbeeldingskracht.

PS: ik weet dat veel fabrikanten kant-en-klare cloudoplossingen aanbieden, maar qua prijs zijn ze bijna twee keer zo duur als mijn VPS (waarvan ik er al 3 heb, dus ik moet ergens middelen toewijzen), bieden veel minder controle, en ook niet erg bevredigende kwaliteit.

Bron: www.habr.com

Voeg een reactie