Videovigilancia en el hogar. Esquema de mantener un archivo de video sin un registrador casero

Durante bastante tiempo quise escribir un artículo sobre un guión para trabajar con una cámara a través del protocolo DVRIP, pero una discusión sobre las noticias recientes sobre Xiaomi me llevó a hablar primero sobre cómo configuré la videovigilancia en casa, y luego pasar a los guiones y más.

Teníamos 2 paquetes ... Entonces, para, esta no es la historia.
Teníamos 2 enrutadores TP-LINK, acceso a Internet para el proveedor NAT, cámara de vigilancia Partizan, no recuerdo qué modelo (cualquier cámara IP que admita RTSP sobre TCP o DVRIP saldrá) y VPS barato por 4 euros con características: 2 núcleos CPU de 2,4 GHz, 4 GB de RAM, disco duro de 300 GB, puerto de 100 Mbit / s. Y también la renuencia a comprar cualquier otra cosa que costaría más que un cable de conexión.

Prólogo


Por razones obvias, no podemos simplemente reenviar los puertos de la cámara en el enrutador y disfrutar de la vida, además, incluso si pudiéramos, no deberíamos hacer esto.

Fuera de mi oído, escuché que hay algunas opciones con el túnel IPv6, donde parece que puedes hacer todo para que todos los dispositivos en la red reciban una dirección IPv6 externa, y esto simplificaría un poco las cosas, aunque aún deja la seguridad de este evento en cuestión , y también el soporte en el firmware estándar de TP-LINK para este milagro es de alguna manera extraño. Aunque es probable que en la oración anterior no diga tonterías, no le preste atención.

Pero, afortunadamente, casi cualquier firmware para cualquier enrutador (una declaración bastante infundada en realidad) contiene un cliente PPTP / L2TP o la capacidad de instalar firmware personalizado con su presencia. Y a partir de esto ya podemos construir algún tipo de estrategia de comportamiento.

Topología


En un ataque de fiebre, mi cerebro dio a luz a algo como este esquema de conexión,

y durante otro ataque dibujó para poner una revista geek


La dirección 169.178.59.82 se genera aleatoriamente y sirve solo como un ejemplo.

Bueno, o si en palabras, entonces:

  • Enrutador TP-LINK 1 (192.168.1.1) , en el que se inserta un cable, que sobresale de la pared. Un lector curioso adivinará que este es un cable de proveedor a través del cual obtengo acceso a Internet. Una variedad de dispositivos domésticos están conectados a este enrutador a través de un cable de conexión o Wi-Fi. Esta es una red 192.168.1.0
  • El enrutador TP-LINK 2 (192.168.0.1, 192.168.1.200) , en el que se inserta el cable, que sobresale del enrutador TP-LINK 1. Gracias a este cable, el enrutador TP-LINK 2, así como los dispositivos conectados a él, también tienen acceso a Internet En este enrutador, se configura la conexión PPTP (10.0.5.100) al servidor 169.178.59.82. La cámara IP 192.168.0.200 también está conectada a este enrutador y se reenvían los siguientes puertos
    • 192.168.0.200:80 -> 49151 (webmord)
    • 192.168.0.200 ∗ 4567 -> 49152 (DVRIP)
    • 192.168.0.200/1054 -> 49153 (RTSP)
  • El servidor (169.178.59.82, 10.0.5.1) al que está conectado el enrutador TP-LINK 2. Pptpd, shadowsocks y 3proxy están girando en el servidor, a través del cual puede acceder a los dispositivos de red 10.0.5.0 y así tener acceso al enrutador TP-LINK 2 .

Por lo tanto, todos los dispositivos domésticos en la red 192.168.1.0 tienen acceso a la cámara a través de TP-LINK 2 en la dirección 192.168.1.200, y todos los demás pueden conectarse a través de pptp, shadowsocks o socks5 y acceder a 10.0.5.100.

Personalización


El primer paso es conectar todos los dispositivos de acuerdo con el diagrama de la figura anterior.

  • Configurar el enrutador TP-LINK 1 equivale a reservar la dirección 192.168.1.200 para TP-LINK 2. Opcionalmente, si necesita una dirección fija para acceder desde la red 192.168.1.0. Y, si lo desea, puede reservar 10-20 Mbit (10 es suficiente para una transmisión de video en 1080 con un cabezal).
  • Necesita instalar y configurar pptpd en el servidor. Tengo Ubuntu 18.04 y las acciones fueron aproximadamente las siguientes (el ejemplo fue blog.xenot.ru/bystraya-nastrojka-vpn-servera-pptp-na-ubuntu-server-18-04-lts.fuck ):
    • Instale los paquetes necesarios:

      sudo apt install pptpd iptables-persistent 
    • Traemos a la siguiente forma

      /etc/pptpd.conf
       option /etc/ppp/pptpd-options bcrelay eth0 # ,        logwtmp localip 10.0.5.1 remoteip 10.0.5.100-200 

    • Correcto

      / 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 
    • Agregar credenciales a

      / etc / ppp / chap-secrets
       # Secrets for authentication using CHAP # client server secret IP addresses username pptpd password * 
    • Añadir a

      /etc/sysctl.conf
       net.ipv4.ip_forward=1 

      y volver a cargar sysctl

       sudo sysctl -p 
    • Reinicie pptpd y agréguelo al inicio

       sudo service pptpd restart sudo systemctl enable pptpd 
    • Correcto

      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 

      Y guardar

       sudo netfilter-persistent save sudo netfilter-persistent reload 
  • Configurar TP-LINK 2
    • Reservamos la dirección 192.168.0.200 para nuestra cámara:

      DHCP -> Reserva de dirección
      - Dirección MAC - Las cámaras MAC, se pueden ver en DHCP -> Lista de clientes DHCP
      - Dirección IP reservada - 192.168.0.200
    • Reenviamos puertos:
      Reenvío -> Servidores virtuales
      - Puerto de servicio: 49151, Puerto interno: 80, dirección IP: 192.168.0.200, Protocolo: TCP
      - Puerto de servicio: 49152, Puerto interno: 34567, Dirección IP: 192.168.0.200, Protocolo: TCP
      - Puerto de servicio: 49153, Puerto interno: 554, Dirección IP: 192.168.0.200, Protocolo: TCP
    • Configurar conexión VPN:

      Red -> WAN
      - Tipo de conexión WAN: PPTP
      - Nombre de usuario: nombre de usuario (ver / etc / ppp / chap-secrets)
      - Contraseña: contraseña (ver / etc / ppp / chap-secrets)
      - Confirmar contraseña: contraseña (ver / etc / ppp / chap-secrets)
      - IP dinámica
      - Dirección IP / Nombre del servidor: 169.178.59.82 (obviamente, la IP externa de su servidor)
      - Modo de conexión: conectar automáticamente
    • Opcionalmente, permita el acceso remoto al enrutador webmord
      Seguridad -> Gestión remota
      - Puerto de gestión web: 80
      - Dirección IP de control remoto: 255.255.255.255
    • Reiniciar el enrutador TP-LINK 2


En lugar de PPTP, puede usar L2TP o, si tiene un firmware personalizado, todo lo que su corazón desee. Elegí PPTP, porque este esquema fue construido no por razones de seguridad, pero pptpd en mi experiencia es el servidor VPN más rápido. Además, realmente no quería instalar firmware personalizado, lo que significa que tenía que elegir entre PPTP y L2TP.

Si no cometí un error en la guía en ningún lado, e hiciste todo bien y tuviste suerte, entonces después de todas estas manipulaciones
  • en primer lugar

     ifconfig 

    mostrará la interfaz ppp0 inet 10.0.5.1 netmask 255.255.255.255 destination 10.0.5.100 ,
  • segundo 10.0.5.100 debería responder,
  • y en tercer lugar

     ffprobe -rtsp_transport tcp "rtsp://10.0.5.100:49153/user=admin&password=password&channel=1&stream=0.sdp" 

    Debe detectar la secuencia.
    puerto rtsp, nombre de usuario y contraseña que puede encontrar en la documentación de su cámara


Conclusión


En principio, ya no está mal, hay acceso a RTSP, si el software propietario funciona a través de DVRIP, puede usarlo. Puede guardar la transmisión usando ffmpeg, acelerar el video 2-3-5 veces, dividirlo en partes por hora, subirlo a Google o redes sociales y mucho, mucho más.

No me gustaba RTSP sobre TCP, porque de alguna manera no funcionaba muy estable, pero sobre UDP, por la razón de que no podemos (o puedo, pero no quiero hacer esto) reenviar el rango de puertos en los que RTSP empujará la transmisión de video , No puedo usarlo, escribí un script que arrastra una transmisión a través de TCP a través de DVRIP. Resultó ser más estable.

De las ventajas del enfoque: podemos tomar algo que admita el silbato 4G en lugar del enrutador TP-LINK 2, alimentarlo todo junto con la cámara desde el UPS (que sin duda se requerirá mucho menos capacidad que cuando se usa la grabadora), además, la grabación se transmite casi instantáneamente al servidor, por lo que incluso si los intrusos lo penetran, no podrán eliminar el video. En general, hay margen de maniobra y todo depende de su imaginación.

PD: Sé que muchos fabricantes ofrecen soluciones en la nube listas para usar, pero cuestan casi el doble que el precio de mi fuerza aérea (de la cual ya tengo 3, así que necesito poner recursos en algún lugar), proporcionan mucho menos control y también Calidad muy satisfactoria.

Source: https://habr.com/ru/post/482864/


All Articles