很長一段時間以來,我一直想寫一篇關於通過 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路由器
- 我們為我們的相機保留地址 192.168.0.200:
您可以使用 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