ProHoster > Blog > administração > Vigilância por vídeo residencial. Esquema para manter um arquivo de vídeo sem gravador doméstico
Vigilância por vídeo residencial. Esquema para manter um arquivo de vídeo sem gravador doméstico
Já faz algum tempo que desejo escrever um artigo sobre um script para trabalhar com uma câmera via protocolo DVRIP, mas a discussão está relacionada às notícias recentes sobre Xiaomi me levou a falar primeiro sobre como configuro a vigilância por vídeo em casa e depois passar para os scripts e outras coisas.
Tínhamos 2 pacotes... Então, espere, essa não é a mesma história.
Tínhamos 2 roteadores da TP-LINK, acesso à Internet atrás do provedor NAT, uma câmera de vigilância Partizan não me lembro qual modelo (qualquer câmera IP que suporte RSTP sobre TCP ou DVRIP serve) e um VPS barato por 4 euros com o características: CPU de 2 núcleos de 2.4 GHz, 4 GB de RAM, HDD de 300 GB, porta de 100 Mbit/s. E também a relutância em comprar qualquer coisa além disso que custasse mais do que um patch cord.
Prefácio
Por motivos óbvios, não podemos simplesmente encaminhar as portas das câmeras do roteador e aproveitar a vida, além disso, mesmo que pudéssemos, não deveríamos fazer isso.
Ouvi do nada que existem algumas opções de tunelamento IPv6, onde parece que tudo pode ser feito para que todos os dispositivos da rede recebam um endereço IPv6 externo, e isso simplificaria um pouco as coisas, embora ainda deixe a segurança deste evento em questão, e o suporte para este milagre no firmware padrão TP-LINK é um tanto estranho. Embora exista a possibilidade de que na frase anterior eu esteja falando um absurdo completo, não preste atenção nisso.
Mas, felizmente para nós, quase qualquer firmware para qualquer roteador (na verdade, uma afirmação bastante infundada) contém um cliente PPTP/L2TP ou a capacidade de instalar firmware personalizado com ele. E a partir disso já podemos construir algum tipo de estratégia de comportamento.
Topologia
Num ataque de febre, meu cérebro deu à luz algo parecido com este diagrama de fiação:
e durante outro ataque desenhei para postar no Habr
O endereço 169.178.59.82 foi gerado aleatoriamente e serve apenas como exemplo
Bem, ou se em palavras, então:
Router TP-LINK 1 (192.168.1.1), no qual é inserido um cabo que sai da parede. Um leitor curioso adivinhará que este é o cabo provedor através do qual acesso a Internet. Vários dispositivos domésticos estão conectados a este roteador via patch cord ou Wi-Fi. Esta é a rede 192.168.1.0
Router TP-LINK 2 (192.168.0.1, 192.168.1.200), no qual é inserido um cabo que sai do roteador TP-LINK 1. Graças a este cabo, o roteador TP-LINK 2, bem como os dispositivos a ele conectados, também têm acesso à Internet. Este roteador está configurado com uma conexão PPTP (10.0.5.100) ao servidor 169.178.59.82. A câmera IP 192.168.0.200 também está conectada a este roteador e as seguintes portas são encaminhadas
192.168.0.200:80 -> 49151 (webmord)
192.168.0.200:34567 -> 49152 (DVRIP)
192.168.0.200:554 -> 49153 (RTSP)
Servidor (169.178.59.82, 10.0.5.1), ao qual está conectado o roteador TP-LINK 2. O servidor roda pptpd, shadowocks e 3proxy, através dos quais você pode acessar dispositivos da rede 10.0.5.0 e assim ter acesso ao roteador TP-LINK 2.
Assim, todos os dispositivos domésticos da rede 192.168.1.0 têm acesso à câmera via TP-LINK 2 em 192.168.1.200, e todos os demais podem se conectar via pptp, shadowsocks ou meias5 e acessar 10.0.5.100.
Fixação
O primeiro passo é conectar todos os dispositivos conforme diagrama da figura acima.
A configuração do roteador TP-LINK 1 se resume a reservar o endereço 192.168.1.200 para o TP-LINK 2. Opcional se você precisar de um endereço fixo para acesso da rede 192.168.1.0. E, se desejar, você pode reservar de 10 a 20 Mbit para isso (10 é suficiente para um stream de vídeo 1080).
sudo netfilter-persistent save
sudo netfilter-persistent reload
Configurando TP-LINK 2
Reservamos o endereço 192.168.0.200 para nossa câmera:
DHCP -> Reserva de endereço — Endereço MAC — MAC da câmera, pode ser visualizado em DHCP -> Lista de clientes DHCP
— Endereço IP reservado — 192.168.0.200
Portas de encaminhamento: Redirecionamento -> Servidores Virtuais — Porta de serviço: 49151, Porta interna: 80, Endereço IP: 192.168.0.200, Protocolo: TCP
— Porta de serviço: 49152, Porta interna: 34567, Endereço IP: 192.168.0.200, Protocolo: TCP
— Porta de serviço: 49153, Porta interna: 554, Endereço IP: 192.168.0.200, Protocolo: TCP
Configurando uma conexão VPN:
Rede -> WAN — Tipo de conexão WAN: PPTP
— Nome de usuário: nome de usuário (veja /etc/ppp/chap-secrets)
— Senha: senha (veja /etc/ppp/chap-secrets)
— Confirme a senha: senha (veja /etc/ppp/chap-secrets)
- IP Dinâmico
— Endereço IP/Nome do servidor: 169.178.59.82 (obviamente, o IP externo do seu servidor)
— Modo de conexão: Conecte-se automaticamente
Opcionalmente, permitimos acesso remoto ao web face do roteador Segurança -> Gerenciamento Remoto Porta de gerenciamento da Web: 80
— Endereço IP de gerenciamento remoto: 255.255.255.255
Reinicie o roteador TP-LINK 2
Em vez de PPTP, você pode usar L2TP ou, se tiver firmware personalizado, o que seu coração desejar. Escolhi o PPTP, pois esse esquema não foi construído por motivos de segurança, e o pptpd, na minha experiência, é o servidor VPN mais rápido. Além disso, eu realmente não queria instalar firmware personalizado, o que significava que tinha que escolher entre PPTP e L2TP.
Se eu não cometi nenhum erro no manual e você fez tudo certo e teve sorte, depois de todas essas manipulações
em primeiro lugar
ifconfig
mostrará a interface ppp0 inet 10.0.5.1 netmask 255.255.255.255 destination 10.0.5.100,
Deve detectar o fluxo. Você pode encontrar a porta rtsp, login e senha na documentação da sua câmera
Conclusão
Em princípio, isso não é ruim, há acesso ao RTSP, se o software proprietário funcionar via DVRIP, você poderá usá-lo. Você pode salvar o stream usando ffmpeg, acelerar o vídeo 2-3-5 vezes, dividi-lo em pedaços de uma hora, enviar tudo para o Google Drive ou redes sociais e muito, muito mais.
Não gostei de RTSP sobre TCP, porque não funcionava muito estável, mas sobre UDP, pelos motivos que não podemos (ou podemos, mas não quero) encaminhar o intervalo de portas através do qual o RTSP enviará o stream de vídeo, não funcionará, escrevi um script que arrasta um stream sobre TCP via DVRIP. Acabou sendo mais estável.
Uma das vantagens da abordagem é que podemos pegar algo que suporte um apito 2G no lugar do roteador TP-LINK 4, alimentar tudo junto com a câmera de um UPS (que sem dúvida precisará de um com muito menos capacidade do que quando usando um gravador), além disso, a gravação é transmitida quase instantaneamente para o servidor, portanto, mesmo que invasores entrem, eles não conseguirão capturar o vídeo. Em geral, há margem de manobra e tudo depende apenas da sua imaginação.
PS: Eu sei que muitos fabricantes oferecem soluções de nuvem prontas, mas no preço elas custam quase o dobro do meu VPS (do qual já tenho 3, então preciso alocar recursos em algum lugar), fornecem muito menos controle, e também não qualidade muito satisfatória.