ฉันอยากจะเขียนบทความเกี่ยวกับสคริปต์สำหรับการทำงานกับกล้องผ่านโปรโตคอล DVRIP มาระยะหนึ่งแล้ว แต่การสนทนาเกี่ยวข้องกับข่าวล่าสุดเกี่ยวกับ
เรามี 2 แพ็คเกจ... เดี๋ยวก่อน นี่ไม่ใช่เรื่องเดียวกัน
เรามีเราเตอร์ 2 ตัวจาก TP-LINK การเข้าถึงอินเทอร์เน็ตด้านหลังผู้ให้บริการ NAT กล้องวงจรปิด Partizan ฉันจำไม่ได้ว่ารุ่นอะไร (กล้อง IP ใด ๆ ที่รองรับ RSTP ผ่าน TCP หรือ DVRIP จะทำ) และ VPS ราคาถูกราคา 4 ยูโรพร้อม ลักษณะเฉพาะ: CPU 2 คอร์ 2.4GHz, RAM 4GB, HDD 300 GB, พอร์ต 100 Mbit/s และยังลังเลที่จะซื้ออะไรเพิ่มเติมซึ่งมีราคาสูงกว่าสายแพทช์
คำปรารภ
ด้วยเหตุผลที่ชัดเจน เราไม่สามารถส่งต่อพอร์ตกล้องบนเราเตอร์และใช้ชีวิตให้สนุกได้ นอกจากนี้ ถึงแม้ว่าเราจะทำได้ เราก็ไม่ควรทำอย่างนั้น
ฉันได้ยินมาโดยไม่ได้ตั้งใจว่ามีตัวเลือกบางอย่างสำหรับ IPv6 tunneling ซึ่งดูเหมือนว่าทุกอย่างสามารถทำได้เพื่อให้อุปกรณ์ทั้งหมดบนเครือข่ายได้รับที่อยู่ IPv6 ภายนอก และนี่จะทำให้สิ่งต่าง ๆ ง่ายขึ้นเล็กน้อย แม้ว่าจะยังคงเหลือความปลอดภัยอยู่ก็ตาม ของเหตุการณ์นี้ที่เป็นปัญหา และการสนับสนุนปาฏิหาริย์นี้ในเฟิร์มแวร์มาตรฐาน TP-LINK นั้นค่อนข้างแปลก แม้ว่าจะมีความเป็นไปได้ที่ประโยคที่แล้วฉันกำลังพูดถึงเรื่องไร้สาระโดยสิ้นเชิง ดังนั้นอย่าไปสนใจมันเลย
แต่โชคดีสำหรับเรา เฟิร์มแวร์เกือบทุกตัวสำหรับเราเตอร์ (อันที่จริงแล้วเป็นคำสั่งที่ค่อนข้างไม่มีมูลความจริง) มีไคลเอนต์ PPTP/L2TP หรือความสามารถในการติดตั้งเฟิร์มแวร์แบบกำหนดเองด้วย และจากนี้เราสามารถสร้างกลยุทธ์ด้านพฤติกรรมบางอย่างได้แล้ว
โทโพโลยี
ด้วยความที่เป็นไข้ สมองของฉันจึงเกิดบางอย่างคล้ายแผนภาพการเดินสายไฟนี้:
และในระหว่างการโจมตีอีกครั้งหนึ่ง ฉันก็วาดมันเพื่อโพสต์บนฮาเบอร์
ที่อยู่ 169.178.59.82 ถูกสร้างขึ้นแบบสุ่มและเป็นเพียงตัวอย่างเท่านั้น
หรือถ้าเป็นคำพูดแล้ว:
- เราเตอร์ ทีพีลิงค์ 1 (192.168.1.1)โดยเสียบสายเคเบิลที่ยื่นออกมาจากผนัง ผู้อ่านที่อยากรู้อยากเห็นจะเดาได้ว่านี่คือสายเคเบิลของผู้ให้บริการที่ฉันเข้าถึงอินเทอร์เน็ต อุปกรณ์ภายในบ้านต่างๆ เชื่อมต่อกับเราเตอร์นี้ผ่านสายแพทช์หรือ Wi-Fi นี่คือเครือข่าย 192.168.1.0
- เราเตอร์ ทีพีลิงค์ 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 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 จะสามารถเข้าถึงกล้องผ่าน TP-LINK 2 ที่ 192.168.1.200 และอุปกรณ์อื่นๆ ทั้งหมดสามารถเชื่อมต่อผ่าน PPTP, Shadowsocks หรือ Socks5 และเข้าถึง 10.0.5.100
การตั้งค่า
ขั้นตอนแรกคือการเชื่อมต่ออุปกรณ์ทั้งหมดตามแผนภาพในรูปด้านบน
- การตั้งค่าเราเตอร์ TP-LINK 1 ลงมาเพื่อจองที่อยู่ 192.168.1.200 สำหรับ TP-LINK 2 เป็นทางเลือกหากคุณต้องการที่อยู่คงที่สำหรับการเข้าถึงจากเครือข่าย 192.168.1.0 และหากต้องการคุณสามารถสำรอง 10-20 Mbit ได้ (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
# 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:
เครือข่าย -> WAN — ประเภทการเชื่อมต่อ WAN: PPTP
— ชื่อผู้ใช้: ชื่อผู้ใช้ (ดู /etc/ppp/chap-secrets)
— รหัสผ่าน: รหัสผ่าน (ดู /etc/ppp/chap-secrets)
— ยืนยันรหัสผ่าน: รหัสผ่าน (ดู /etc/ppp/chap-secrets)
- ไดนามิกไอพี
— ที่อยู่ IP/ชื่อเซิร์ฟเวอร์: 169.178.59.82 (แน่นอนว่าเป็น IP ภายนอกของเซิร์ฟเวอร์ของคุณ)
— โหมดการเชื่อมต่อ: เชื่อมต่ออัตโนมัติ - อีกทางหนึ่ง เราอนุญาตให้เข้าถึงเว็บเพจของเราเตอร์จากระยะไกลได้
ความปลอดภัย -> การจัดการระยะไกล - พอร์ตการจัดการเว็บ: 80
— ที่อยู่ IP การจัดการระยะไกล: 255.255.255.255 - รีบูตเราเตอร์ TP-LINK 2
- เราขอสงวนที่อยู่ 192.168.0.200 สำหรับกล้องของเรา:
แทนที่จะใช้ PPTP คุณสามารถใช้ L2TP หรือหากคุณมีเฟิร์มแวร์ที่กำหนดเอง อะไรก็ได้ที่คุณปรารถนา ฉันเลือก PPTP เนื่องจากโครงร่างนี้ไม่ได้สร้างขึ้นด้วยเหตุผลด้านความปลอดภัย และจากประสบการณ์ของฉัน pptpd ก็เป็นเซิร์ฟเวอร์ VPN ที่เร็วที่สุด นอกจากนี้ ฉันไม่ต้องการติดตั้งเฟิร์มแวร์แบบกำหนดเองจริงๆ ซึ่งหมายความว่าฉันต้องเลือกระหว่าง PPTP และ L2TP
หากฉันไม่ได้ทำผิดพลาดทุกที่ในคู่มือและคุณทำทุกอย่างถูกต้องและโชคดีจากนั้นหลังจากการยักย้ายเหล่านี้
- ประการแรก
ifconfig
จะแสดงอินเทอร์เฟซ
ppp0 inet 10.0.5.1 netmask 255.255.255.255 destination 10.0.5.100
, - ประการที่สอง 10.0.5.100 ต้อง ping
- และประการที่สาม
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 หรือโซเชียลเน็ตเวิร์ก และอื่นๆ อีกมากมาย
ฉันไม่ชอบ RTSP บน TCP เพราะมันใช้งานไม่ได้เสถียรมาก แต่ใช้ UDP ด้วยเหตุผลที่เราไม่สามารถ (หรือเราทำได้ แต่ฉันไม่ต้องการทำ) ส่งต่อช่วงของพอร์ต ซึ่ง RTSP จะพุชวิดีโอสตรีม มันใช้งานไม่ได้ฉันเขียนสคริปต์ที่ลากสตรีมผ่าน TCP ผ่าน DVRIP ปรากฏว่ามีเสถียรภาพมากขึ้น
ข้อดีประการหนึ่งของแนวทางนี้คือเราสามารถนำสิ่งที่รองรับนกหวีด 2G มาแทนที่เราเตอร์ TP-LINK 4 จ่ายไฟทั้งหมดร่วมกับกล้องจาก UPS (ซึ่งไม่ต้องสงสัยเลยว่าจะต้องมีความจุน้อยกว่าเมื่อก่อนมาก โดยใช้เครื่องบันทึก) นอกจากนี้ การบันทึกจะถูกส่งไปยังเซิร์ฟเวอร์เกือบจะในทันที ดังนั้นแม้ว่าผู้บุกรุกจะเจาะเข้าไปในไซต์ของคุณ พวกเขาจะไม่สามารถยึดวิดีโอได้ โดยทั่วไป มีพื้นที่สำหรับการซ้อมรบและทุกอย่างขึ้นอยู่กับจินตนาการของคุณเท่านั้น
ป.ล.: ฉันรู้ว่าผู้ผลิตหลายรายนำเสนอโซลูชั่นคลาวด์สำเร็จรูป แต่ในราคานั้นแพงกว่า VPS ของฉันเกือบสองเท่า (ซึ่งฉันมีอยู่แล้ว 3 เครื่อง ดังนั้นฉันจึงต้องจัดสรรทรัพยากรที่ไหนสักแห่ง) ให้การควบคุมน้อยกว่ามากและยัง ไม่ได้คุณภาพที่น่าพอใจมาก
ที่มา: will.com