家庭視頻監控。 在沒有家庭註冊商的情況下維護視頻檔案的方案

很長一段時間以來,我一直想寫一篇關於通過 DVRIP 協議使用攝像機的腳本的文章,但是關於最近新聞的討論 小蜜 促使我首先談論我如何在我的地方設置視頻監控,然後繼續討論腳本等。

我們有 2 包……等等,故事不是這樣的。
我們有 2 個 TP-LINK 路由器,在提供商 NAT 後面訪問互聯網,一個 Partizan 監控攝像頭,我不記得是哪個型號(任何支持 RSTP over TCP 或 DVRIP 的 IP 攝像頭都可以)和一個便宜的 VPS,只要 4 歐元特點:2 核 CPU 2.4GHz,4GB RAM,300GB 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 Camera 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 網絡上的所有家庭設備都可以通過 2 的 TP-LINK 192.168.1.200 訪問相機,所有其他設備都可以通過 pptp、shadowsocks 或 socks5 連接並訪問 10.0.5.100。

調整

第一步是根據上圖中的示意圖連接所有設備。

  • 設置 TP-LINK 1 路由器歸結為為 TP-LINK 192.168.1.200 保留地址 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 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 連接:

      網絡 -> 廣域網 - 廣域網連接類型: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路由器

您可以使用 L2TP 代替 PPTP,或者,如果您有自定義固件,則隨心所欲。 我選擇 PPTP 是因為這個方案不是出於安全原因而構建的,而 pptpd 是我經驗中最快的 VPN 服務器。 而且,我真的不想安裝自定義固件,這意味著我不得不在 PPTP 和 L2TP 之間做出選擇。

如果我在手冊中的任何地方都沒有犯錯,而你做的一切都是正確的,你很幸運,那麼在所有這些操作之後

  • 首先
    ifconfig

    會顯示界面 ppp0 inet 10.0.5.1 netmask 255.255.255.255 destination 10.0.5.100,

  • 其次,必須 ping 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 或社交網絡,等等。

我不喜歡 TCP 上的 RTSP,因為不知何故它工作得不是很穩定,但在 UDP 上,因為我們不能(或者我們可以,但我不想這樣做)轉發端口範圍哪個 RTSP 將推視頻流,它不會工作,我寫了一個腳本,通過 DVRIP 將流拖到 TCP 上。 它似乎更穩定。

這種方法的優點 - 我們可以用支持 2G 口哨的東西代替 TP-LINK 4 路由器,用 UPS 為它和攝像頭供電(這無疑比使用註冊商時需要的容量小得多),此外,錄製幾乎是立即傳輸到服務器,因此即使攻擊者進入您的位置,他們也無法從中刪除視頻。 一般來說,有迴旋餘地,這完全取決於你的想像力。

PS:我知道很多製造商提供現成的雲解決方案,但價格幾乎是我的 VPS 成本的兩倍(其中我已經有 3 個,所以我需要把資源放在某個地方),提供更少的控制,並且質量也做的不是很滿意。

來源: www.habr.com

添加評論