Ev video gözetimi. Ev kayıt şirketi olmadan bir video arşivi tutma şeması

Uzun zamandır DVRIP protokolü aracılığıyla bir kamerayla çalışmak için bir komut dosyası hakkında bir makale yazmak istiyordum, ancak son zamanlarda çıkan haberlerle ilgili tartışma Xiaomi önce evde video gözetimini nasıl kurduğum hakkında konuşmamı, ardından senaryolara ve diğer şeylere geçmemi sağladı.

2 paketimiz vardı... Durun, bu aynı hikaye değil.
TP-LINK'ten 2 yönlendiricimiz, NAT sağlayıcısının arkasından internet erişimimiz, hangi model olduğunu hatırlamadığım bir Partizan gözetleme kamerası (TCP veya DVRIP üzerinden RSTP'yi destekleyen herhangi bir IP kameranın yapacağını) ve 4 avroya ucuz bir VPS'miz vardı. özellikleri: 2 çekirdekli CPU 2.4 GHz, 4 GB RAM, 300 GB HDD, 100 Mbit/s bağlantı noktası. Ve ayrıca buna ek olarak bir yama kablosundan daha pahalıya mal olacak herhangi bir şeyi satın alma konusundaki isteksizlik.

Önsöz

Belli nedenlerden ötürü, yönlendiricideki kamera bağlantı noktalarını ileterek hayatın tadını çıkaramayız, ayrıca yapabilseydik bile bunu yapmamalıyız.

Durup dururken IPv6 tünellemeyle ilgili bazı seçeneklerin olduğunu duydum; burada her şey ağdaki tüm cihazların harici bir IPv6 adresi alması için yapılabilir gibi görünüyor ve bu, yine de güvenlikten çıksa da işleri biraz basitleştirir söz konusu olayın ve standart TP-LINK aygıt yazılımındaki bu mucizenin desteklenmesi bir şekilde tuhaf. Her ne kadar önceki cümlede tamamen saçma sapan konuşuyor olma ihtimalim olsa da, bu yüzden buna hiç dikkat etmeyin.

Ancak, neyse ki bizim için, herhangi bir yönlendiriciye yönelik hemen hemen her ürün yazılımı (aslında oldukça temelsiz bir ifade) bir PPTP/L2TP istemcisi veya onunla özel ürün yazılımı yükleme yeteneği içerir. Ve bundan zaten bir tür davranış stratejisi geliştirebiliriz.

Topoloji

Bir ateş krizi sırasında beynim şu bağlantı şemasına benzer bir şeyi doğurdu:

ve başka bir saldırı sırasında bunu Habr'da yayınlamak için çizdimEv video gözetimi. Ev kayıt şirketi olmadan bir video arşivi tutma şeması

169.178.59.82 adresi rastgele oluşturulmuştur ve yalnızca örnek teşkil etmektedir.

Peki, ya da kelimelerle ifade edersek, o zaman:

  • Router TP-LINK1 (192.168.1.1)içine duvardan dışarı çıkan bir kablonun yerleştirildiği. Meraklı bir okuyucu bunun internete erişim sağladığım sağlayıcı kablosu olduğunu tahmin edecektir. Bu yönlendiriciye yama kablosu veya Wi-Fi aracılığıyla çeşitli ev cihazları bağlanır. Bu ağ 192.168.1.0
  • Router TP-LINK2 (192.168.0.1, 192.168.1.200)İçine TP-LINK 1 yönlendiricisinden çıkan bir kablonun takıldığı bu kablo sayesinde TP-LINK 2 yönlendiricinin yanı sıra ona bağlı cihazlar da internete erişebilir. Bu yönlendirici, 10.0.5.100 sunucusuna PPTP bağlantısı (169.178.59.82) ile yapılandırılmıştır. IP Kamera 192.168.0.200 de bu yönlendiriciye bağlanır ve aşağıdaki bağlantı noktaları iletilir
    • 192.168.0.200:80 -> 49151 (webmord)
    • 192.168.0.200:34567 -> 49152 (DVRIP)
    • 192.168.0.200:554 -> 49153 (RTSP)
  • Sunucu (169.178.59.82, 10.0.5.1)TP-LINK 2 yönlendiricisinin bağlı olduğu sunucu, 3 ağındaki cihazlara erişebileceğiniz ve böylece TP-LINK 10.0.5.0 yönlendiricisine erişebileceğiniz pptpd, shadowsocks ve 2proxy'yi çalıştırır.

Böylece 192.168.1.0 ağındaki tüm ev cihazları 2 adresindeki TP-LINK 192.168.1.200 üzerinden kameraya erişebilir, diğer tüm cihazlar ise pptp, shadowsocks veya çorap5 üzerinden bağlanıp 10.0.5.100'e erişebilir.

Ayar

İlk adım, tüm cihazları yukarıdaki şekildeki şemaya göre bağlamaktır.

  • TP-LINK 1 yönlendiricisinin kurulumu, TP-LINK 192.168.1.200 için 2 adresinin rezerve edilmesine bağlıdır. 192.168.1.0 ağından erişim için sabit bir adrese ihtiyacınız varsa isteğe bağlıdır. Ve istenirse bunun için 10-20 Mbit ayırabilirsiniz (bir 10 video akışı için 1080 yeterlidir).
  • Sunucuya pptpd'yi kurmanız ve yapılandırmanız gerekir. Ubuntu 18.04'üm var ve adımlar yaklaşık olarak aşağıdaki gibiydi (bağışçı bir örnekti) blog.xenot.ru/bystraya-nastrojka-vpn-servera-pptp-na-ubuntu-server-18-04-lts.fuck):
    • Gerekli paketleri kurun:
      sudo apt install pptpd iptables-persistent
    • Aşağıdaki forma getiriyoruz

      /etc/pptpd.conf

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

    • Düzenliyoruz

      /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
      
    • Kimlik bilgileri ekleniyor

      /etc/ppp/chap-secrets

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

      /etc/sysctl.conf

      net.ipv4.ip_forward=1

      ve sysctl'yi yeniden yükle

      sudo sysctl -p
    • Pptpd'yi yeniden başlatın ve başlangıca ekleyin
      sudo service pptpd restart
      sudo systemctl enable pptpd
    • Düzenliyoruz

      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

      Ve kaydet

      sudo netfilter-persistent save
      sudo netfilter-persistent reload
      
  • TP-LINK 2'yi kurma
    • Kameramız için 192.168.0.200 adresini saklı tutuyoruz:

      DHCP -> Adres Rezervasyonu — MAC adresi — kamera MAC'i, DHCP -> DHCP istemcilerinin listesi bölümünde görüntülenebilir
      — Ayrılmış IP adresi — 192.168.0.200

    • Yönlendirme bağlantı noktaları:
      Yönlendirme -> Sanal Sunucular — Hizmet bağlantı noktası: 49151, Dahili bağlantı noktası: 80, IP adresi: 192.168.0.200, Protokol: TCP
      — Hizmet bağlantı noktası: 49152, Dahili bağlantı noktası: 34567, IP adresi: 192.168.0.200, Protokol: TCP
      — Hizmet bağlantı noktası: 49153, Dahili bağlantı noktası: 554, IP adresi: 192.168.0.200, Protokol: TCP
    • VPN bağlantısı kurma:

      Ağ -> WAN — WAN bağlantı türü: PPTP
      — Kullanıcı adı: kullanıcı adı (bkz. /etc/ppp/chap-secrets)
      — Şifre: şifre (bkz. /etc/ppp/chap-secrets)
      — Parolayı onaylayın: parola (bkz. /etc/ppp/chap-secrets)
      - Dinamik IP
      — IP adresi/Sunucu adı: 169.178.59.82 (belli ki sunucunuzun harici IP'si)
      — Bağlantı modu: Otomatik olarak bağlan

    • İsteğe bağlı olarak yönlendiricinin web yüzüne uzaktan erişime izin veriyoruz
      Güvenlik -> Uzaktan Yönetim - Web yönetimi bağlantı noktası: 80
      — Uzaktan yönetim IP adresi: 255.255.255.255
    • TP-LINK 2 yönlendiricisini yeniden başlatın

PPTP yerine L2TP'yi veya özel ürün yazılımınız varsa kalbinizin istediği şeyi kullanabilirsiniz. PPTP'yi seçtim çünkü bu şema güvenlik nedeniyle oluşturulmadı ve pptpd deneyimlerime göre en hızlı VPN sunucusu. Üstelik özel yazılım yüklemek istemiyordum, bu da PPTP ile L2TP arasında seçim yapmam gerektiği anlamına geliyordu.

Eğer kılavuzun herhangi bir yerinde hata yapmadıysam ve siz her şeyi doğru yaptıysanız ve şanslıysanız, tüm bu manipülasyonlardan sonra

  • ilk olarak
    ifconfig

    arayüzü gösterecek ppp0 inet 10.0.5.1 netmask 255.255.255.255 destination 10.0.5.100,

  • ikinci olarak 10.0.5.100 ping atmalı,
  • ve üçüncü olarak
    ffprobe -rtsp_transport tcp "rtsp://10.0.5.100:49153/user=admin&password=password&channel=1&stream=0.sdp"

    Akışı algılamalıdır.
    Rtsp bağlantı noktasını, kullanıcı adını ve şifreyi kameranızın belgelerinde bulabilirsiniz.

Sonuç

Prensip olarak bu fena değil, RTSP'ye erişim var, eğer özel yazılım DVRIP üzerinden çalışıyorsa, onu kullanabilirsiniz. Akışı ffmpeg kullanarak kaydedebilir, videoyu 2-3-5 kat hızlandırabilir, saatlik parçalara bölebilir, tamamını Google Drive'a veya sosyal ağlara yükleyebilir ve çok daha fazlasını yapabilirsiniz.

TCP üzerinden RTSP'yi sevmedim, çünkü çok kararlı çalışmıyordu, ancak UDP üzerinden, bağlantı noktası aralığını iletemediğimiz (veya yapabiliriz, ancak bunu yapmak istemiyorum) nedenlerden dolayı RTSP'nin video akışını iteceği, işe yaramayacak, DVRIP aracılığıyla TCP üzerinden bir akışı sürükleyen bir komut dosyası yazdım. Daha kararlı olduğu ortaya çıktı.

Yaklaşımın avantajlarından biri, TP-LINK 2 yönlendirici yerine 4G düdüğünü destekleyen bir şey alıp, hepsini bir UPS'ten gelen kamerayla birlikte çalıştırabilmemizdir (şüphesiz ki, UPS'e kıyasla çok daha az kapasiteye ihtiyaç duyacaktır). bir kaydedici kullanarak), ayrıca kayıt neredeyse anında sunucuya iletilir, böylece davetsiz misafirler sitenize girseler bile videoyu ele geçiremezler. Genel olarak manevra alanı vardır ve her şey yalnızca hayal gücünüze bağlıdır.

Not: Pek çok üreticinin hazır bulut çözümleri sunduğunu biliyorum, ancak fiyat olarak VPS'imden neredeyse iki kat daha pahalı (ki bunlardan zaten 3 tane var, bu yüzden kaynakları bir yere ayırmam gerekiyor), çok daha az kontrol sağlıyor ve ayrıca pek tatmin edici kalitede değil.

Kaynak: habr.com

Yorum ekle