Pengawasan video di rumah. Skim mengekalkan arkib video tanpa pendaftar rumah

Saya telah lama ingin menulis artikel tentang skrip untuk bekerja dengan kamera melalui protokol DVRIP untuk sekian lama, tetapi perbincangan yang berkaitan dengan berita terkini tentang Xiaomi mendorong saya untuk mula-mula bercakap tentang cara saya menyediakan pengawasan video di rumah, dan kemudian beralih kepada skrip dan perkara lain.

Kami ada 2 pakej... Jadi, tunggu, ini bukan cerita yang sama.
Kami mempunyai 2 penghala daripada TP-LINK, akses Internet di belakang penyedia NAT, kamera pengawasan Partizan Saya tidak ingat model apa (mana-mana kamera IP yang menyokong RSTP melalui TCP atau DVRIP akan lakukan) dan VPS murah untuk 4 euro dengan ciri: 2 teras CPU 2.4GHz, 4GB RAM, 300 GB HDD, port 100 Mbit/s. Dan juga keengganan untuk membeli apa-apa sebagai tambahan kepada ini yang akan menelan kos lebih daripada kord tampalan.

Perutusan

Atas sebab yang jelas, kita tidak boleh hanya memajukan port kamera pada penghala dan menikmati kehidupan, selain itu, walaupun kita boleh, kita tidak sepatutnya berbuat demikian.

Saya mendengar secara tiba-tiba bahawa terdapat beberapa pilihan dengan terowong IPv6, di mana nampaknya segala-galanya boleh dilakukan supaya semua peranti pada rangkaian menerima alamat IPv6 luaran, dan ini akan memudahkan sedikit perkara, walaupun ia masih meninggalkan keselamatan peristiwa yang dipersoalkan ini, dan sokongan untuk keajaiban ini dalam perisian tegar TP-LINK standard entah bagaimana pelik. Walaupun ada kemungkinan bahawa dalam ayat sebelumnya saya bercakap kosong, jadi jangan ambil perhatian anda sama sekali.

Tetapi, nasib baik bagi kami, hampir mana-mana perisian tegar untuk mana-mana penghala (sebenarnya kenyataan yang agak tidak berasas) mengandungi klien PPTP/L2TP atau keupayaan untuk memasang perisian tegar tersuai dengannya. Dan daripada ini kita sudah boleh membina beberapa jenis strategi tingkah laku.

Topologi

Dalam keadaan demam, otak saya melahirkan sesuatu seperti gambarajah pendawaian ini:

dan semasa serangan lain saya melukisnya untuk disiarkan di HabrPengawasan video di rumah. Skim mengekalkan arkib video tanpa pendaftar rumah

Alamat 169.178.59.82 dijana secara rawak dan berfungsi sebagai contoh sahaja

Nah, atau jika dalam perkataan, maka:

  • Penghala TP-LINK 1 (192.168.1.1), di mana kabel dimasukkan yang melekat pada dinding. Pembaca yang ingin tahu akan meneka bahawa ini adalah kabel pembekal yang saya gunakan untuk mengakses Internet. Pelbagai peranti rumah disambungkan ke penghala ini melalui kord tampalan atau Wi-Fi. Inilah rangkaiannya 192.168.1.0
  • Penghala TP-LINK 2 (192.168.0.1, 192.168.1.200), di mana kabel dimasukkan yang melekat pada penghala TP-LINK 1. Terima kasih kepada kabel ini, penghala TP-LINK 2, serta peranti yang disambungkan kepadanya, juga mempunyai akses kepada Internet. Penghala ini dikonfigurasikan dengan sambungan PPTP (10.0.5.100) ke pelayan 169.178.59.82. IP Camera 192.168.0.200 juga disambungkan ke penghala ini dan port berikut dimajukan
    • 192.168.0.200:80 -> 49151 (webmord)
    • 192.168.0.200:34567 -> 49152 (DVRIP)
    • 192.168.0.200:554 -> 49153 (RTSP)
  • Pelayan (169.178.59.82, 10.0.5.1), yang mana penghala TP-LINK 2 disambungkan. Pelayan menjalankan pptpd, shadowsocks dan 3proxy, yang melaluinya anda boleh mengakses peranti pada rangkaian 10.0.5.0 dan dengan itu mempunyai akses kepada penghala TP-LINK 2.

Oleh itu, semua peranti rumah pada rangkaian 192.168.1.0 mempunyai akses kepada kamera melalui TP-LINK 2 di 192.168.1.200, dan semua peranti lain boleh menyambung melalui pptp, shadowsocks atau socks5 dan mengakses 10.0.5.100.

pelarasan

Langkah pertama ialah menyambungkan semua peranti mengikut rajah dalam rajah di atas.

  • Penyediaan penghala TP-LINK 1 termasuk untuk menempah alamat 192.168.1.200 untuk TP-LINK 2. Pilihan jika anda memerlukan alamat tetap untuk akses daripada rangkaian 192.168.1.0. Dan, jika mahu, anda boleh menempah 10-20 Mbit untuknya (10 sudah cukup untuk satu aliran video 1080).
  • Anda perlu memasang dan mengkonfigurasi pptpd pada pelayan. Saya mempunyai Ubuntu 18.04 dan langkah-langkahnya adalah lebih kurang seperti berikut (penderma adalah contoh blog.xenot.ru/bystraya-nastrojka-vpn-servera-pptp-na-ubuntu-server-18-04-lts.fuck):
    • Pasang pakej yang diperlukan:
      sudo apt install pptpd iptables-persistent
    • Kami membawanya ke borang berikut

      /etc/pptpd.conf

      option /etc/ppp/pptpd-options
      bcrelay eth0 # Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ваш сСрвСр Ρ…ΠΎΠ΄ΠΈΡ‚ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Ρ‹
      logwtmp
      localip 10.0.5.1
      remoteip 10.0.5.100-200

    • Kita edit

      /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
      
    • Menambah kelayakan ke

      /etc/ppp/chap-secrets

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

      /etc/sysctl.conf

      net.ipv4.ip_forward=1

      dan muat semula sysctl

      sudo sysctl -p
    • But semula pptpd dan tambahkannya pada permulaan
      sudo service pptpd restart
      sudo systemctl enable pptpd
    • Kita edit

      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

      Dan simpan

      sudo netfilter-persistent save
      sudo netfilter-persistent reload
      
  • Menyediakan TP-LINK 2
    • Kami menempah alamat 192.168.0.200 untuk kamera kami:

      DHCP -> Tempahan Alamat β€” Alamat MAC β€” MAC kamera, boleh dilihat dalam DHCP -> Senarai pelanggan DHCP
      β€” Alamat IP terpelihara β€” 192.168.0.200

    • Port pemajuan:
      Ubah hala -> Pelayan Maya β€” Port perkhidmatan: 49151, Port dalaman: 80, Alamat IP: 192.168.0.200, Protokol: TCP
      β€” Port perkhidmatan: 49152, Port dalaman: 34567, Alamat IP: 192.168.0.200, Protokol: TCP
      β€” Port perkhidmatan: 49153, Port dalaman: 554, Alamat IP: 192.168.0.200, Protokol: TCP
    • Menyediakan sambungan VPN:

      Rangkaian -> WAN β€” Jenis sambungan WAN: PPTP
      β€” Nama pengguna: nama pengguna (lihat /etc/ppp/chap-secrets)
      β€” Kata laluan: kata laluan (lihat /etc/ppp/chap-secrets)
      β€” Sahkan kata laluan: kata laluan (lihat /etc/ppp/chap-secrets)
      - IP Dinamik
      β€” Alamat IP/Nama pelayan: 169.178.59.82 (jelas, IP luaran pelayan anda)
      β€” Mod sambungan: Sambung secara automatik

    • Secara pilihan, kami membenarkan akses jauh ke muka web penghala
      Keselamatan -> Pengurusan Jauh - Port pengurusan web: 80
      β€” Alamat IP pengurusan jauh: 255.255.255.255
    • But semula penghala TP-LINK 2

Daripada PPTP, anda boleh menggunakan L2TP atau, jika anda mempunyai perisian tegar tersuai, maka apa sahaja yang anda inginkan. Saya memilih PPTP, kerana skim ini tidak dibina atas sebab keselamatan, dan pptpd, mengikut pengalaman saya, adalah pelayan VPN terpantas. Lebih-lebih lagi, saya benar-benar tidak mahu memasang perisian tegar tersuai, yang bermakna saya terpaksa memilih antara PPTP dan L2TP.

Jika saya tidak membuat kesilapan di mana-mana dalam manual, dan anda melakukan semuanya dengan betul dan bernasib baik, maka selepas semua manipulasi ini

  • pertamanya
    ifconfig

    akan menunjukkan antara muka ppp0 inet 10.0.5.1 netmask 255.255.255.255 destination 10.0.5.100,

  • kedua, 10.0.5.100 mesti ping,
  • dan ketiga
    ffprobe -rtsp_transport tcp "rtsp://10.0.5.100:49153/user=admin&password=password&channel=1&stream=0.sdp"

    Harus mengesan aliran.
    Anda boleh mencari port rtsp, log masuk dan kata laluan dalam dokumentasi untuk kamera anda

Kesimpulan

Pada dasarnya, ini tidak buruk, terdapat akses kepada RTSP, jika perisian proprietari berfungsi melalui DVRIP, maka anda boleh menggunakannya. Anda boleh menyimpan strim menggunakan ffmpeg, mempercepatkan video 2-3-5 kali, memecahkannya kepada kepingan selama sejam, memuat naik semuanya ke Google Drive atau rangkaian sosial dan banyak lagi.

Saya tidak suka RTSP berbanding TCP, kerana ia tidak berfungsi dengan sangat stabil, tetapi atas UDP, atas sebab kita tidak boleh (atau kita boleh, tetapi saya tidak mahu melakukannya) memajukan julat port melalui mana RTSP akan menolak strim video , ia tidak akan berfungsi, saya menulis skrip yang menyeret strim ke atas TCP melalui DVRIP. Ia ternyata lebih stabil.

Salah satu kelebihan pendekatan ini ialah kita boleh mengambil sesuatu yang menyokong wisel 2G sebagai ganti penghala TP-LINK 4, kuasakan semuanya bersama-sama dengan kamera daripada UPS (yang sudah pasti memerlukan yang kurang luas berbanding ketika menggunakan perakam), sebagai tambahan, rakaman dihantar hampir serta-merta ke pelayan, jadi walaupun penceroboh menembusi tapak anda, mereka tidak akan dapat merampas video itu. Secara umum, terdapat ruang untuk bergerak dan segala-galanya hanya bergantung pada imaginasi anda.

PS: Saya tahu bahawa banyak pengeluar menawarkan penyelesaian awan siap pakai, tetapi harganya hampir dua kali lebih mahal daripada VPS saya (yang mana saya sudah mempunyai 3, jadi saya perlu memperuntukkan sumber di suatu tempat), memberikan kawalan yang lebih sedikit, dan juga tidak kualiti yang sangat memuaskan.

Sumber: www.habr.com

Tambah komen