Kodin videovalvonta. Kaava videoarkiston ylläpitoon ilman kotirekisteripalvelua

Olen halunnut kirjoittaa artikkelin käsikirjoituksesta kameran kanssa työskentelyyn DVRIP-protokollan kautta jo jonkin aikaa, mutta keskustelu viimeaikaisista uutisista Xiaomi sai minut puhumaan ensin siitä, kuinka otin videovalvonnan käyttöön, ja sitten siirtymään käsikirjoituksiin ja muuhun.

Meillä oli 2 pakkausta… Joten odota, se ei ole tarina.
Meillä oli 2 TP-LINK-reititintä, Internet-yhteys palveluntarjoajan NAT:n takana, Partizan-valvontakamera, en muista mikä malli (mikä tahansa IP-kamera, joka tukee RSTP:tä TCP:n tai DVRIP:n kautta) ja halpa VPS 4 eurolla Ominaisuudet: 2 core CPU 2.4 GHz, 4 Gt RAM, 300 Gt HDD, 100 Mbit/s portti. Ja myös haluttomuus ostaa tähän mitään, mikä maksaisi enemmän kuin liitäntäjohto.

Esipuhe

Ilmeisistä syistä emme voi vain välittää reitittimen kameraportteja ja nauttia elämästä, ja vaikka voisimmekin, meidän ei pitäisi tehdä sitä.

Korvan kulmasta kuulin, että IPv6-tunneloinnissa on joitain vaihtoehtoja, joissa näyttää siltä, ​​että kaikki voidaan tehdä niin, että kaikki verkon laitteet saavat ulkoisen IPv6-osoitteen, mikä kuitenkin yksinkertaistaisi asiaa hieman, Jättäen edelleen tämän tapahtuman turvallisuuden, ja myös TP-LINK-standardin laiteohjelmiston tuki tälle ihmeelle on jotenkin outoa. Vaikka on mahdollista, että edellisessä lauseessa puhun täyttä hölynpölyä, joten älä kiinnitä siihen huomiota ollenkaan.

Mutta onneksi meille melkein mikä tahansa laiteohjelmisto mille tahansa reitittimelle (itse asiassa melko perusteeton lausunto) sisältää PPTP / L2TP-asiakkaan tai mahdollisuuden asentaa mukautettu laiteohjelmisto sen mukana. Ja tästä voimme jo rakentaa jonkinlaisen käyttäytymisstrategian.

Topologia

Kuumekohtauksessa aivoni synnyttivät jotain tämän kaltaista kytkentäkaaviota,

ja toisen hyökkäyksen aikana piirsin laittaakseni sen HabrilleKodin videovalvonta. Kaava videoarkiston ylläpitoon ilman kotirekisteripalvelua

Osoite 169.178.59.82 luodaan satunnaisesti ja toimii vain esimerkkinä

No, tai jos sanoin, niin:

  • reititin TP-LINK 1 (192.168.1.1), johon työnnetään seinästä ulos työntyvä kaapeli. Utelias lukija arvaa, että tämä on palveluntarjoajan kaapeli, jonka kautta saan Internet-yhteyden. Useita kodin laitteita on liitetty tähän reitittimeen liitäntäjohdon tai Wi-Fi-yhteyden kautta. Se on verkko 192.168.1.0
  • reititin TP-LINK 2 (192.168.0.1, 192.168.1.200), johon työnnetään kaapeli, joka työntyy ulos TP-LINK 1 -reitittimestä. Tämän kaapelin ansiosta TP-LINK 2 -reitittimellä ja siihen liitetyillä laitteilla on myös pääsy Internetiin. Tällä reitittimellä on PPTP-yhteys (10.0.5.100), joka on määritetty palvelimeen 169.178.59.82. IP-kamera 192.168.0.200 on myös yhdistetty tähän reitittimeen ja seuraavat portit välitetään edelleen
    • 192.168.0.200:80 -> 49151 (verkkosivu)
    • 192.168.0.200:34567 -> 49152 (DVRIP)
    • 192.168.0.200:554 -> 49153 (RTSP)
  • Palvelin (169.178.59.82, 10.0.5.1), johon TP-LINK 2 -reititin on kytketty. Palvelimella on käynnissä Pptpd, shadowsocks ja 3proxy, joiden kautta pääset 10.0.5.0-verkon laitteisiin ja pääset siten käsiksi TP-LINK 2 -reitittimeen.

Siten kaikki kodin laitteet 192.168.1.0-verkossa voivat käyttää kameraa TP-LINK 2:n kautta osoitteessa 192.168.1.200, ja kaikki muut laitteet voivat muodostaa yhteyden pptp:n, shadowsocksin tai socks5:n kautta ja päästä 10.0.5.100:aan.

säätö

Ensimmäinen vaihe on liittää kaikki laitteet yllä olevan kuvan kaavion mukaisesti.

  • TP-LINK 1 -reitittimen määrittäminen edellyttää osoitteen 192.168.1.200 varaamista TP-LINK 2:lle. Valinnainen, jos tarvitset kiinteän osoitteen pääsyä varten 192.168.1.0-verkosta. Ja halutessasi voit varata sille 10-20 Mbps (10 riittää yhteen videovirtaan 1080:ssa pään kanssa).
  • Palvelimella sinun on asennettava ja määritettävä pptpd. Minulla on Ubuntu 18.04 ja vaiheet olivat jotain seuraavanlaisia ​​(luovuttaja oli esimerkki blog.xenot.ru/bystraya-nastrojka-vpn-servera-pptp-na-ubuntu-server-18-04-lts.fuck):
    • Asenna tarvittavat paketit:
      sudo apt install pptpd iptables-persistent
    • Siirrymme seuraavaan lomakkeeseen

      /etc/pptpd.conf

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

    • Sääntö

      /etc/ppp/pptpd-optiot

      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
      
    • Lisätään tunnistetietoja kohteeseen

      /etc/ppp/chap-secrets

      # Secrets for authentication using CHAP
      # client	server	secret			IP addresses
      username pptpd password *
    • Lisätä

      /etc/sysctl.conf-

      net.ipv4.ip_forward=1

      ja lataa sysctl uudelleen

      sudo sysctl -p
    • Käynnistä pptpd uudelleen ja lisää se automaattiseen lataukseen
      sudo service pptpd restart
      sudo systemctl enable pptpd
    • Sääntö

      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

      Ja säästää

      sudo netfilter-persistent save
      sudo netfilter-persistent reload
      
  • TP-LINKin määrittäminen 2
    • Varaamme kamerallemme osoitteen 192.168.0.200:

      DHCP -> Osoitteen varaus - MAC-osoite - Kameran MAC, voidaan tarkastella DHCP:ssä -> DHCP-asiakkaiden luettelo
      - Varattu IP-osoite - 192.168.0.200

    • Edelleenlähetysportit:
      Edelleenlähetys -> Virtuaaliset palvelimet - Palveluportti: 49151, Sisäinen portti: 80, IP-osoite: 192.168.0.200, Protokolla: TCP
      - Palveluportti: 49152, Sisäinen portti: 34567, IP-osoite: 192.168.0.200, Protokolla: TCP
      - Palveluportti: 49153, Sisäinen portti: 554, IP-osoite: 192.168.0.200, Protokolla: TCP
    • Määritä VPN-yhteys:

      Verkko -> WAN - WAN-yhteyden tyyppi: PPTP
      - Käyttäjätunnus: käyttäjänimi (katso /etc/ppp/chap-secrets)
      - Salasana: salasana (katso /etc/ppp/chap-secrets)
      - Vahvista salasana: salasana (katso /etc/ppp/chap-secrets)
      - Dynaaminen IP
      - IP-osoite / palvelimen nimi: 169.178.59.82 (ilmeisesti palvelimesi ulkoinen IP)
      - Yhteystila: Yhdistä automaattisesti

    • Salli valinnaisesti etäkäyttö reitittimeen webmord
      Turvallisuus -> Kaukosäädin - Verkkohallintaportti: 80
      - Etähallinnan IP-osoite: 255.255.255.255
    • TP-LINK 2 -reitittimen uudelleenkäynnistys

PPTP:n sijasta voit käyttää L2TP:tä tai, jos sinulla on mukautettu laiteohjelmisto, mitä haluat. Valitsin PPTP:n, koska tämä järjestelmä ei perustunut turvallisuusnäkökohtiin, ja pptpd on kokemukseni nopein VPN-palvelin. Lisäksi en todellakaan halunnut asentaa mukautettua laiteohjelmistoa, mikä tarkoittaa, että minun piti valita PPTP:n ja L2TP:n välillä.

Jos en tehnyt virhettä missään ohjekirjassa ja teit kaiken oikein ja olit onnekas, niin kaikkien näiden manipulointien jälkeen

  • ensiksi
    ifconfig

    näyttää käyttöliittymän ppp0 inet 10.0.5.1 netmask 255.255.255.255 destination 10.0.5.100,

  • toiseksi 10.0.5.100 täytyy pingata,
  • ja kolmanneksi
    ffprobe -rtsp_transport tcp "rtsp://10.0.5.100:49153/user=admin&password=password&channel=1&stream=0.sdp"

    Pitäisi havaita virta.
    rtsp-portti, käyttäjätunnus ja salasana löydät kamerasi dokumentaatiosta

Johtopäätös

Periaatteessa se ei ole jo huono, RTSP:hen on pääsy, jos oma ohjelmisto toimii DVRIP:n kautta, voit käyttää sitä. Voit tallentaa streamin ffmpegillä, nopeuttaa videota 2-3-5 kertaa, jakaa sen tuntipaloihin, ladata sen kaiken Google Driveen tai sosiaalisiin verkostoihin ja paljon muuta.

En pitänyt RTSP:stä TCP:n yli, koska se ei jotenkin toiminut kovin vakaasti, mutta UDP:n yli, siitä syystä, ettemme voi (tai voimme, mutta en halua tehdä tätä) välittää porttialuetta eteenpäin. mikä RTSP työntää videovirran, se ei toimi, kirjoitin skriptin, joka vetää streamin TCP:n yli DVRIP:n kautta. Se näytti olevan vakaampi.

Lähestymistavan eduista - voimme ottaa TP-LINK 2 -reitittimen tilalle jotain, joka tukee 4G-pilliä, syöttää sen kaiken yhdessä UPS:n kameran kanssa (joka vaatii epäilemättä paljon vähemmän kapasiteettia kuin rekisteröintipalvelua käytettäessä ), lisäksi tallenne välittyy lähes välittömästi palvelimelle, joten vaikka hyökkääjät pääsisivät paikallesi, he eivät voi poistaa videota heiltä. Yleensä liikkumavaraa on ja kaikki riippuu mielikuvituksestasi.

PS: Tiedän, että monet valmistajat tarjoavat valmiita pilviratkaisuja, mutta hintaan ne ovat lähes kaksi kertaa kalliimpia kuin VPS:ni (joista minulla on jo 3, joten minun täytyy sijoittaa resurssit jonnekin), tarjoavat paljon vähemmän hallintaa ja eivät myöskään ole kovin tyydyttävää laatua.

Lähde: will.com

Lisää kommentti