Jag har länge velat skriva en artikel om ett manus för att arbeta med en kamera genom DVRIP-protokollet, men diskussionen om de senaste nyheterna om fick mig att först prata om hur jag ställer in videoövervakning hos mig och sedan gå vidare till manus med mera.
Vi hade 2 förpackningar... Så vänta, det är inte historien.
Vi hade 2 TP-LINK-routrar, internetåtkomst bakom en NAT-leverantör, en Partizan-övervakningskamera, jag kommer inte ihåg vilken modell (vilken IP-kamera som helst som stöder RSTP över TCP eller DVRIP klarar) och en billig VPS för 4 euro med egenskaper: 2-kärnig CPU 2.4 GHz, 4 GB RAM, 300 GB hårddisk, 100 Mbit/s port. Och även oviljan att köpa något för detta som skulle kosta mer än en patch-sladd.
Förord
Av förklarliga skäl kan vi inte bara vidarebefordra kameraportarna på routern och njuta av livet, dessutom, även om vi kunde, borde vi inte göra det.
I örat hörde jag att det finns några alternativ med IPv6-tunnling, där det verkar som att allt går att göra så att alla enheter i nätverket får en extern IPv6-adress, och det skulle dock förenkla lite, fortfarande lämnar säkerheten för denna händelse i fråga, och även stödet i standard TP-LINK-firmware för detta mirakel är på något sätt konstigt. Även om det är möjligt att jag i föregående mening pratar totalt nonsens, så var inte uppmärksam på det alls.
Men lyckligtvis för oss innehåller nästan all firmware för vilken router som helst (ett ganska ogrundat uttalande faktiskt) en PPTP / L2TP-klient eller möjligheten att installera anpassad firmware med dess närvaro. Och utifrån detta kan vi redan bygga någon slags beteendestrategi.
Topologi
I ett feberanfall födde min hjärna något som det här kopplingsschemat,
och under en annan attack ritade jag för att lägga den på Habr
Adressen 169.178.59.82 genereras slumpmässigt och fungerar endast som ett exempel
Tja, eller om i ord, då:
- Router TP-LINK 1 (192.168.1.1), i vilken en kabel sätts in som sticker ut ur väggen. En nyfiken läsare kommer att gissa att detta är en leverantörskabel genom vilken jag får tillgång till Internet. En mängd olika hemenheter är anslutna till denna router via en patchkabel eller Wi-Fi. Det är ett nätverk 192.168.1.0
- Router TP-LINK 2 (192.168.0.1, 192.168.1.200), i vilken en kabel sätts in som sticker ut ur routern TP-LINK 1. Tack vare denna kabel har routern TP-LINK 2, liksom de enheter som är anslutna till den, även tillgång till Internet. Denna router har en PPTP-anslutning (10.0.5.100) konfigurerad till servern 169.178.59.82. IP-kameran 192.168.0.200 är också ansluten till denna router och följande portar vidarebefordras
- 192.168.0.200:80 -> 49151 (webbface)
- 192.168.0.200:34567 -> 49152 (DVRIP)
- 192.168.0.200:554 -> 49153 (RTSP)
- Server (169.178.59.82, 10.0.5.1), som TP-LINK 2-routern är ansluten till. Pptpd, shadowsocks och 3proxy körs på servern, genom vilka du kan komma åt enheter på 10.0.5.0-nätverket och därmed få tillgång till TP-LINK 2-routern.
Således kan alla hemenheter på nätverket 192.168.1.0 komma åt kameran via TP-LINK 2 på 192.168.1.200, och alla andra enheter kan ansluta via pptp, shadowsocks eller socks5 och komma åt 10.0.5.100.
justering
Det första steget är att ansluta alla enheter enligt diagrammet i figuren ovan.
- Att sätta upp en TP-LINK 1-router handlar om att reservera adressen 192.168.1.200 för TP-LINK 2. Valfritt om du behöver en fast adress för åtkomst från 192.168.1.0-nätverket. Och om så önskas kan du reservera 10-20 Mbps för det (10 räcker för en videoström i 1080 med ett huvud).
- Du behöver installera och konfigurera pptpd på servern. Jag har Ubuntu 18.04 och åtgärderna var ungefär följande (givaren var ett exempel) ):
- Installera de nödvändiga paketen:
sudo apt install pptpd iptables-persistent - Vi tar till följande form
/etc/pptpd.conf
option /etc/ppp/pptpd-options bcrelay eth0 # Интерфейс, через который ваш сервер ходит в интернеты logwtmp localip 10.0.5.1 remoteip 10.0.5.100-200 - Regel
/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 - Lägger till autentiseringsuppgifter till
/etc/ppp/chap-secrets
# Secrets for authentication using CHAP # client server secret IP addresses username pptpd password * - Lägg till
/etc/sysctl.conf
net.ipv4.ip_forward=1och ladda om sysctl
sudo sysctl -p - Starta om pptpd och lägg till den för autoload
sudo service pptpd restart sudo systemctl enable pptpd - Regel
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 ACCEPTOch spara
sudo netfilter-persistent save sudo netfilter-persistent reload
- Installera de nödvändiga paketen:
- Ställa in TP-LINK 2
- Vi reserverar adressen 192.168.0.200 för vår kamera:
DHCP -> Adressreservation - MAC-adress - Kamerans MAC, kan ses i DHCP -> Lista över DHCP-klienter
- Reserverad IP-adress - 192.168.0.200 - Vidarebefordran portar:
Vidarebefordran -> Virtuella servrar - Serviceport: 49151, Intern port: 80, IP-adress: 192.168.0.200, Protokoll: TCP
- Serviceport: 49152, Intern port: 34567, IP-adress: 192.168.0.200, Protokoll: TCP
- Serviceport: 49153, Intern port: 554, IP-adress: 192.168.0.200, Protokoll: TCP - Konfigurera VPN-anslutning:
Nätverk -> WAN - WAN-anslutningstyp: PPTP
- Användarnamn: användarnamn (se /etc/ppp/chap-secrets)
- Lösenord: lösenord (se /etc/ppp/chap-secrets)
- Bekräfta lösenord: lösenord (se /etc/ppp/chap-secrets)
- Dynamisk IP
- IP-adress / servernamn: 169.178.59.82 (uppenbarligen den externa IP-adressen för din server)
- Anslutningsläge: Anslut automatiskt - Tillåt eventuellt fjärråtkomst till routerns webbmord
Säkerhet -> Fjärrkontroll - Webbhanteringsport: 80
- IP-adress för fjärrhantering: 255.255.255.255 - Startar om TP-LINK 2-routern
- Vi reserverar adressen 192.168.0.200 för vår kamera:
Istället för PPTP kan du använda L2TP eller, om du har anpassad firmware, vad du än vill. Jag valde PPTP eftersom detta schema inte var baserat på säkerhetsöverväganden, och pptpd är den snabbaste VPN-servern enligt min erfarenhet. Dessutom ville jag verkligen inte installera anpassad firmware, vilket betyder att jag var tvungen att välja mellan PPTP och L2TP.
Om jag inte gjorde ett misstag någonstans i manualen, och du gjorde allt rätt och du hade tur, så efter alla dessa manipulationer
- första
ifconfigkommer att visa gränssnittet
ppp0 inet 10.0.5.1 netmask 255.255.255.255 destination 10.0.5.100, - för det andra måste 10.0.5.100 pingas,
- och för det tredje
ffprobe -rtsp_transport tcp "rtsp://10.0.5.100:49153/user=admin&password=password&channel=1&stream=0.sdp"Bör upptäcka strömmen.
rtsp-port, inloggning och lösenord hittar du i dokumentationen till din kamera
Slutsats
I princip är det redan inte dåligt, det finns tillgång till RTSP, om proprietär programvara fungerar via DVRIP kan du använda den. Du kan spara strömmen med ffmpeg, snabba upp videon med 2-3-5 gånger, dela upp den i bitar per timme, ladda upp allt till Google Drive eller sociala nätverk och mycket, mycket mer.
Jag gillade inte RTSP över TCP, för på något sätt fungerade det inte särskilt stabilt, utan över UDP, av anledningarna att vi inte kan (eller vi kan, men jag vill inte göra detta) vidarebefordra portomfånget på vilken RTSP kommer att skjuta videoströmmen, det kommer inte att fungera, jag skrev ett skript som drar strömmen över TCP över DVRIP. Det verkade vara mer stabilt.
Av fördelarna med tillvägagångssättet - vi kan ta något som stöder en 2G-vissling i stället för TP-LINK 4-routern, driva det hela tillsammans med kameran från UPS:en (vilket utan tvekan kommer att krävas mycket mindre kapacitet än när du använder registratorn ), dessutom överförs inspelningen nästan omedelbart till servern, så att även om angripare kommer in på din plats, kommer de inte att kunna ta bort videon från dem. I allmänhet finns det manöverutrymme och allt beror på din fantasi.
PS: Jag vet att många tillverkare erbjuder färdiga molnlösningar, men till ett pris kostar de nästan dubbelt så mycket som min VPS (varav jag redan har 3, så jag måste lägga resurser någonstans), ger mycket mindre kontroll och också inte särskilt tillfredsställande kvalitet.
Källa: will.com
