Vidéosurveillance à domicile. Schéma de maintenance d'archives vidéo sans registraire à domicile

Cela fait un certain temps que je voulais écrire un article sur un script permettant de travailler avec une caméra via le protocole DVRIP, mais la discussion liée aux nouvelles récentes concernant Xiaomi m'a incité à parler d'abord de la façon dont j'ai mis en place la vidéosurveillance à la maison, puis à passer aux scripts et à d'autres choses.

Nous avions 2 forfaits... Alors attendez, ce n'est pas la même histoire.
Nous avions 2 routeurs de TP-LINK, un accès Internet derrière le fournisseur NAT, une caméra de surveillance Partizan je ne me souviens plus quel modèle (n'importe quelle caméra IP prenant en charge RSTP sur TCP ou DVRIP fera l'affaire) et un VPS bon marché pour 4 euros avec le caractéristiques : CPU 2 cœurs 2.4 GHz, 4 Go de RAM, disque dur 300 Go, port 100 Mbit/s. Et aussi la réticence à acheter quoi que ce soit en plus qui coûterait plus cher qu'un cordon de brassage.

Avant-propos

Pour des raisons évidentes, nous ne pouvons pas simplement transférer les ports de caméra sur le routeur et profiter de la vie. De plus, même si nous le pouvions, nous ne devrions pas le faire.

J'ai entendu de nulle part qu'il existe certaines options avec le tunneling IPv6, où il semble que tout puisse être fait pour que tous les appareils du réseau reçoivent une adresse IPv6 externe, et cela simplifierait un peu les choses, même si cela laisse toujours la sécurité de cet événement en question , et la prise en charge de ce miracle dans le firmware standard TP-LINK est en quelque sorte étrange. Bien qu’il soit possible que dans la phrase précédente, je dise des bêtises totales, n’y prêtez pas du tout attention.

Mais heureusement pour nous, presque tous les micrologiciels de n'importe quel routeur (une affirmation plutôt infondée en fait) contiennent un client PPTP/L2TP ou la possibilité d'installer un micrologiciel personnalisé avec celui-ci. Et à partir de là, nous pouvons déjà construire une sorte de stratégie comportementale.

Topologie

Dans un accès de fièvre, mon cerveau a donné naissance à quelque chose comme ce schéma de câblage :

et lors d'une autre attaque je l'ai dessiné pour le poster sur HabrVidéosurveillance à domicile. Schéma de maintenance d'archives vidéo sans registraire à domicile

L'adresse 169.178.59.82 a été générée aléatoirement et sert uniquement d'exemple

Eh bien, ou si c'est en mots, alors :

  • Routeur TP-LINK1 (192.168.1.1), dans lequel est inséré un câble qui dépasse du mur. Un lecteur curieux devinera qu'il s'agit du câble du fournisseur par lequel j'accède à Internet. Divers appareils domestiques sont connectés à ce routeur via un cordon de raccordement ou une connexion Wi-Fi. C'est le réseau 192.168.1.0
  • Routeur TP-LINK2 (192.168.0.1, 192.168.1.200), dans lequel est inséré un câble qui dépasse du routeur TP-LINK 1. Grâce à ce câble, le routeur TP-LINK 2, ainsi que les appareils qui y sont connectés, ont également accès à Internet. Ce routeur est configuré avec une connexion PPTP (10.0.5.100) au serveur 169.178.59.82. La caméra IP 192.168.0.200 est également connectée à ce routeur et les ports suivants sont transférés
    • 192.168.0.200:80 -> 49151 (webmord)
    • 192.168.0.200:34567 -> 49152 (DVRIP)
    • 192.168.0.200:554 -> 49153 (RTSP)
  • Serveur (169.178.59.82, 10.0.5.1), auquel est connecté le routeur TP-LINK 2. Le serveur exécute pptpd, shadowsocks et 3proxy, via lesquels vous pouvez accéder aux appareils du réseau 10.0.5.0 et ainsi avoir accès au routeur TP-LINK 2.

Ainsi, tous les appareils domestiques du réseau 192.168.1.0 ont accès à la caméra via TP-LINK 2 au 192.168.1.200, et tous les autres peuvent se connecter via pptp, shadowsocks ou chaussettes5 et accéder au 10.0.5.100.

réglage

La première étape consiste à connecter tous les appareils selon le schéma de la figure ci-dessus.

  • Configurer le routeur TP-LINK 1 revient à réserver l'adresse 192.168.1.200 pour TP-LINK 2. Facultatif si vous avez besoin d'une adresse fixe pour accéder depuis le réseau 192.168.1.0. Et, si vous le souhaitez, vous pouvez lui réserver 10 à 20 Mbits (10 suffisent pour un flux vidéo 1080).
  • Vous devez installer et configurer pptpd sur le serveur. J'ai Ubuntu 18.04 et les étapes étaient approximativement les suivantes (le donateur était un exemple blog.xenot.ru/bystraya-nastrojka-vpn-servera-pptp-na-ubuntu-server-18-04-lts.fuck):
    • Installez les packages requis :
      sudo apt install pptpd iptables-persistent
    • Nous le mettons sous la forme suivante

      /etc/pptpd.conf

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

    • Règle

      /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
      
    • Ajout d'informations d'identification à

      /etc/ppp/chap-secrets

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

      /etc/sysctl.conf

      net.ipv4.ip_forward=1

      et rechargez sysctl

      sudo sysctl -p
    • Redémarrez pptpd et ajoutez-le au démarrage
      sudo service pptpd restart
      sudo systemctl enable pptpd
    • Règle

      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

      Et enregistrer

      sudo netfilter-persistent save
      sudo netfilter-persistent reload
      
  • Configuration de TP-LINK 2
    • Nous réservons l'adresse 192.168.0.200 pour notre caméra :

      DHCP -> Réservation d'adresse — Adresse MAC — MAC de la caméra, visible dans DHCP -> Liste des clients DHCP
      — Adresse IP réservée — 192.168.0.200

    • Ports de transfert :
      Redirection -> Serveurs virtuels — Port de service : 49151, Port interne : 80, Adresse IP : 192.168.0.200, Protocole : TCP
      — Port de service : 49152, Port interne : 34567, Adresse IP : 192.168.0.200, Protocole : TCP
      — Port de service : 49153, Port interne : 554, Adresse IP : 192.168.0.200, Protocole : TCP
    • Configuration d'une connexion VPN :

      Réseau -> WAN — Type de connexion WAN : PPTP
      — Nom d'utilisateur : nom d'utilisateur (voir /etc/ppp/chap-secrets)
      — Mot de passe : mot de passe (voir /etc/ppp/chap-secrets)
      — Confirmer le mot de passe : mot de passe (voir /etc/ppp/chap-secrets)
      - IP dynamique
      — Adresse IP/Nom du serveur : 169.178.59.82 (évidemment, l'IP externe de votre serveur)
      — Mode de connexion : Connectez-vous automatiquement

    • En option, nous autorisons l'accès à distance à la face Web du routeur
      Sécurité -> Gestion à distance - Port de gestion Web : 80
      — Adresse IP de gestion à distance : 255.255.255.255
    • Redémarrez le routeur TP-LINK 2

Au lieu de PPTP, vous pouvez utiliser L2TP ou, si vous disposez d'un micrologiciel personnalisé, tout ce que votre cœur désire. J'ai choisi PPTP, car ce schéma n'a pas été conçu pour des raisons de sécurité, et pptpd, d'après mon expérience, est le serveur VPN le plus rapide. De plus, je ne voulais vraiment pas installer de firmware personnalisé, ce qui signifiait que je devais choisir entre PPTP et L2TP.

Si je n'ai fait d'erreur nulle part dans le manuel, et que vous avez tout fait correctement et que vous avez eu de la chance, alors après toutes ces manipulations

  • d'abord
    ifconfig

    affichera l'interface ppp0 inet 10.0.5.1 netmask 255.255.255.255 destination 10.0.5.100,

  • deuxièmement, 10.0.5.100 doit faire un ping,
  • et troisièmement
    ffprobe -rtsp_transport tcp "rtsp://10.0.5.100:49153/user=admin&password=password&channel=1&stream=0.sdp"

    Devrait détecter le flux.
    Vous pouvez trouver le port rtsp, le login et le mot de passe dans la documentation de votre caméra

Conclusion

En principe, ce n'est pas mal, il y a un accès au RTSP, si un logiciel propriétaire fonctionne via DVRIP, alors vous pouvez l'utiliser. Vous pouvez enregistrer le flux à l'aide de ffmpeg, accélérer la vidéo 2 à 3 à 5 fois, la diviser en morceaux d'une heure, le télécharger sur Google Drive ou sur les réseaux sociaux et bien plus encore.

Je n'aimais pas RTSP sur TCP, car cela ne fonctionnait pas de manière très stable, mais sur UDP, pour la raison que nous ne pouvons pas (ou nous pouvons, mais je ne veux pas le faire) transférer la gamme de ports à travers lequel RTSP poussera le flux vidéo, cela ne fonctionnera pas, j'ai écrit un script qui fait glisser un flux sur TCP via DVRIP. Il s'est avéré plus stable.

L'un des avantages de cette approche est que nous pouvons prendre quelque chose qui prend en charge un sifflet 2G à la place du routeur TP-LINK 4, alimenter le tout avec la caméra à partir d'un UPS (qui aura sans doute besoin d'un système beaucoup moins volumineux que lorsque à l'aide d'un enregistreur), de plus, l'enregistrement est transmis presque instantanément au serveur, donc même si des intrus pénètrent sur votre site, ils ne pourront pas s'emparer de la vidéo. En général, il y a une marge de manœuvre et tout dépend uniquement de votre imagination.

P.S. : je sais que de nombreux fabricants proposent des solutions cloud toutes faites, mais en termes de prix, elles sont presque deux fois plus chères que mon VPS (dont j'en ai déjà 3, je dois donc allouer des ressources quelque part), offrent beaucoup moins de contrôle, et aussi ne qualité pas très satisfaisante.

Source: habr.com

Ajouter un commentaire