Домашно видеонаблюдение. Схема за поддържане на видео архив без домашен регистратор

От доста време исках да напиша статия за скрипт за работа с камера през протокола DVRIP, но дискусията за последните новини за Xiaomi ме подтикна първо да говоря за това как съм настроил видеонаблюдение в моето място, а след това да премина към скриптове и др.

Имахме 2 пакета… Така че чакайте, това не е историята.
Имахме 2 TP-LINK рутера, интернет достъп зад NAT на доставчика, камера за наблюдение Partizan, не помня кой модел (всяка IP камера, която поддържа RSTP през TCP или DVRIP, ще свърши работа) и евтин VPS за 4 евро с характеристики: 2 ядрен CPU 2.4GHz, 4GB RAM, 300 GB HDD, 100 Mbit/s порт. А също и нежеланието да се купува нещо за това, което би струвало повече от пач кабел.

предговор

По очевидни причини не можем просто да препратим портовете на камерата на рутера и да се радваме на живота, освен това, дори и да можехме, не трябва да го правим.

С крайчеца на ухото си чух, че има някои опции с IPv6 тунелиране, при които изглежда, че можете да направите всичко, така че всички устройства в мрежата да получат външен IPv6 адрес, и това ще опрости малко нещата, обаче, все още оставя сигурността на въпросното събитие, а също и поддръжката в стандартния фърмуер на TP-LINK за ​​това чудо е някак си странна. Въпреки че е възможно в предното изречение да говоря пълни глупости, така че изобщо не му обръщайте внимание.

Но, за наше щастие, почти всеки фърмуер за всеки рутер (доста неоснователно твърдение всъщност) съдържа PPTP / L2TP клиент или възможност за инсталиране на персонализиран фърмуер с неговото присъствие. И от това вече можем да изградим някаква стратегия на поведение.

Топология

В пристъп на треска мозъкът ми роди нещо като тази електрическа схема,

и по време на друга атака теглих да го сложа на HabrДомашно видеонаблюдение. Схема за поддържане на видео архив без домашен регистратор

Адресът 169.178.59.82 е генериран на случаен принцип и служи само като пример

Е, или ако с думи, тогава:

  • рутер TP-LINK 1 (192.168.1.1), в който е вкаран кабел, който стърчи от стената. Любознателният читател ще се досети, че това е кабел на доставчик, чрез който получавам достъп до интернет. Разнообразие от домашни устройства се свързват към този рутер чрез пач кабел или Wi-Fi. Това е мрежа 192.168.1.0
  • рутер TP-LINK 2 (192.168.0.1, 192.168.1.200), в който е поставен кабел, който стърчи от рутера TP-LINK 1. Благодарение на този кабел рутерът TP-LINK 2, както и устройствата, свързани с него, също имат достъп до интернет. Този рутер има PPTP връзка (10.0.5.100), конфигурирана към сървъра 169.178.59.82. IP камерата 192.168.0.200 също е свързана към този рутер и следните портове са пренасочени
    • 192.168.0.200:80 -> 49151 (уеб лице)
    • 192.168.0.200:34567 -> 49152 (DVRIP)
    • 192.168.0.200:554 -> 49153 (RTSP)
  • Сървър (169.178.59.82, 10.0.5.1), към който е свързан рутерът TP-LINK 2. На сървъра работят Pptpd, shadowsocks и 3proxy, чрез които можете да получите достъп до устройства в мрежата 10.0.5.0 и по този начин да имате достъп до рутера TP-LINK 2.

Така всички домашни устройства в мрежата 192.168.1.0 имат достъп до камерата чрез TP-LINK 2 на 192.168.1.200, а всички други устройства могат да се свързват чрез pptp, shadowsocks или socks5 и да имат достъп до 10.0.5.100.

регулиране

Първата стъпка е да свържете всички устройства според схемата на фигурата по-горе.

  • Настройването на рутер TP-LINK 1 се свежда до запазване на адрес 192.168.1.200 за TP-LINK 2. По избор, ако имате нужда от фиксиран адрес за достъп от мрежата 192.168.1.0. И, ако желаете, можете да запазите 10-20 Mbps за него (10 са достатъчни за един видео поток в 1080 с глава).
  • На сървъра трябва да инсталирате и конфигурирате pptpd. Имам Ubuntu 18.04 и стъпките бяха нещо като следното (донорът беше пример blog.xenot.ru/bystraya-nastrojka-vpn-servera-pptp-na-ubuntu-server-18-04-lts.fuck):
    • Инсталирайте необходимите пакети:
      sudo apt install pptpd iptables-persistent
    • Довеждаме до следната форма

      /etc/pptpd.conf

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

    • правило

      /etc/ppp/pptpd-опции

      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
      
    • Добавяне на идентификационни данни към

      /etc/ppp/chap-secrets

      # Secrets for authentication using CHAP
      # client	server	secret			IP addresses
      username pptpd password *
    • Добави към

      /etc/sysctl.conf

      net.ipv4.ip_forward=1

      и презаредете sysctl

      sudo sysctl -p
    • Рестартирайте pptpd и го добавете към автоматично зареждане
      sudo service pptpd restart
      sudo systemctl enable pptpd
    • правило

      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

      И спаси

      sudo netfilter-persistent save
      sudo netfilter-persistent reload
      
  • Настройка на TP-LINK 2
    • Ние запазваме адрес 192.168.0.200 за нашата камера:

      DHCP -> Резервация на адрес - MAC адрес - MAC на камерата, може да се види в DHCP -> Списък на DHCP клиенти
      - Запазен IP адрес - 192.168.0.200

    • Портове за пренасочване:
      Пренасочване -> Виртуални сървъри - Сервизен порт: 49151, Вътрешен порт: 80, IP адрес: 192.168.0.200, Протокол: TCP
      - Сервизен порт: 49152, Вътрешен порт: 34567, IP адрес: 192.168.0.200, Протокол: TCP
      - Сервизен порт: 49153, Вътрешен порт: 554, IP адрес: 192.168.0.200, Протокол: TCP
    • Настройте VPN връзка:

      Мрежа -> WAN - Тип WAN връзка: PPTP
      - Потребителско име: потребителско име (вижте /etc/ppp/chap-secrets)
      - Парола: парола (вижте /etc/ppp/chap-secrets)
      - Потвърдете паролата: парола (вижте /etc/ppp/chap-secrets)
      - Динамичен IP
      - IP адрес / Име на сървъра: 169.178.59.82 (очевидно външният IP на вашия сървър)
      - Режим на свързване: Свържете се автоматично

    • По желание разрешете отдалечен достъп до рутера webmord
      Сигурност -> Отдалечено управление - Порт за уеб управление: 80
      - IP адрес за отдалечено управление: 255.255.255.255
    • Рестартиране на рутера TP-LINK 2

Вместо PPTP можете да използвате L2TP или, ако имате персонализиран фърмуер, тогава каквото сърцето ви желае. Избрах PPTP, защото тази схема не е изградена от съображения за сигурност, а pptpd е най-бързият VPN сървър според моя опит. Освен това наистина не исках да инсталирам персонализиран фърмуер, което означава, че трябваше да избирам между PPTP и L2TP.

Ако не съм направил грешка никъде в ръководството и сте направили всичко правилно и сте имали късмет, тогава след всички тези манипулации

  • първо
    ifconfig

    ще покаже интерфейса ppp0 inet 10.0.5.1 netmask 255.255.255.255 destination 10.0.5.100,

  • второ, 10.0.5.100 трябва да бъде пингован,
  • и трето
    ffprobe -rtsp_transport tcp "rtsp://10.0.5.100:49153/user=admin&password=password&channel=1&stream=0.sdp"

    Трябва да открие потока.
    rtsp порт, потребителско име и парола можете да намерите в документацията за вашата камера

Заключение

По принцип вече не е лошо, има достъп до RTSP, ако собственият софтуер работи чрез DVRIP, тогава можете да го използвате. Можете да запазите потока с помощта на ffmpeg, да ускорите видеото 2-3-5 пъти, да го разделите на части по час, да го качите всичко в Google Drive или социални мрежи и много, много повече.

Не ми харесваше RTSP през TCP, защото някак си не работеше много стабилно, но през UDP поради причините, че не можем (или можем, но не искам да правя това) да препратим диапазона от портове на кой RTSP ще бутне видео потока, няма да работи, написах скрипт, който плъзга потока през TCP през DVRIP. Май беше по-стабилно.

От предимствата на подхода - можем да вземем нещо, което поддържа 2G свирка вместо рутера TP-LINK 4, да го захранваме заедно с камерата от UPS (което несъмнено ще се изисква много по-малко капацитет, отколкото при използване на регистратора ), освен това записът се предава почти мигновено на сървъра, така че дори ако нападателите влязат във вашето място, те няма да могат да премахнат видеото от тях. Като цяло има място за маневриране и всичко зависи от вашето въображение.

PS: Знам, че много производители предлагат готови облачни решения, но на цена те са почти два пъти по-високи от цената на моя VPS (от който вече имам 3, така че трябва да вложа ресурси някъде), осигуряват много по-малко контрол и също не е много задоволително качество.

Източник: www.habr.com

Добавяне на нов коментар