Vigilância por vídeo em casa. Esquema de manter um arquivo de vídeo sem um registrador doméstico

Por algum tempo, eu quis escrever um artigo sobre um script para trabalhar com uma câmera através do protocolo DVRIP, mas a discussão nas notícias recentes sobre a Xiaomi me levou a falar primeiro sobre como eu organizava a vigilância por vídeo em casa e depois prosseguir com os scripts e muito mais.

Nós tínhamos 2 pacotes ... Então, pare, essa não é a história.
Tínhamos 2 roteadores TP-LINK, acesso à Internet para o provedor NAT, câmera de vigilância Partizan. Não lembro qual modelo (qualquer câmera IP que suporte RTSP sobre TCP ou DVRIP funcionará) e VPS barato por 4 euros com características: 2 núcleos CPU 2.4GHz, 4GB RAM, 300 GB HDD, porta 100 Mbit / s. E também a relutância em comprar qualquer outra coisa que custaria mais do que um cabo de manobra.

Prefácio


Por razões óbvias, não podemos simplesmente encaminhar as portas da câmera no roteador e aproveitar a vida; além disso, mesmo que pudéssemos, não devemos fazer isso.

Ouvi dizer que existem algumas opções com o encapsulamento IPv6, onde parece que você pode fazer tudo para que todos os dispositivos na rede recebam um endereço IPv6 externo, o que simplificaria um pouco as coisas, embora ainda deixasse a segurança desse evento em questão. , e também o suporte no firmware TP-LINK padrão para esse milagre é de alguma forma estranho. Embora seja provável que na frase anterior eu esteja falando bobagem, não preste atenção a isso.

Felizmente, porém, quase qualquer firmware para qualquer roteador (uma declaração bastante infundada) contém um cliente PPTP / L2TP ou a capacidade de instalar firmware personalizado com sua presença. E a partir disso já podemos construir algum tipo de estratégia de comportamento.

Topologia


Em um ataque de febre, meu cérebro deu à luz algo como esse esquema de conexão,

e durante outro ataque ele desenhou para colocar em uma revista nerd


O endereço 169.178.59.82 é gerado aleatoriamente e serve apenas como exemplo.

Bem, ou se por palavras, então:

  • Roteador TP-LINK 1 (192.168.1.1) , no qual um cabo é inserido, que se destaca da parede. Um leitor curioso achará que este é um cabo de provedor através do qual eu obtenho acesso à Internet. Vários dispositivos domésticos estão conectados a esse roteador por meio de um cabo de conexão ou Wi-Fi. Esta é uma rede 192.168.1.0
  • O roteador TP-LINK 2 (192.168.0.1, 192.168.1.200) , no qual o cabo está inserido, sobressai do roteador TP-LINK 1. Graças a esse cabo, o roteador TP-LINK 2 e os dispositivos conectados a ele também têm acesso a a internet Neste roteador, a conexão PPTP (10.0.5.100) com o servidor 169.178.59.82 está configurada. 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 ∗ 4567 -> 49152 (DVRIP)
    • 192.168.0.200/1054 -> 49153 (RTSP)
  • O servidor (169.178.59.82, 10.0.5.1) ao qual o roteador TP-LINK 2. está conectado.O servidor executa pptpd, shadowsocks e 3proxy, através dos quais você pode acessar os dispositivos de rede 10.0.5.0 e, assim, acessar o roteador TP-LINK 2. .

Assim, todos os dispositivos domésticos na rede 192.168.1.0 têm acesso à câmera via TP-LINK 2 em 192.168.1.200, e todos os outros podem conectar-se via pptp, shadowsocks ou socks5 e acessar 10.0.5.100.

Personalização


O primeiro passo é conectar todos os dispositivos de acordo com o diagrama na figura acima.

  • A configuração do roteador TP-LINK 1 equivale a reservar o endereço 192.168.1.200 para o TP-LINK 2. Opcionalmente, se você precisar de um endereço fixo para acessar a rede 192.168.1.0. E, se desejar, você pode reservar entre 10 e 20 Mbit (10 é suficiente para um fluxo de vídeo em 1080 com uma cabeça).
  • Você precisa instalar e configurar o pptpd no servidor. Eu tenho o Ubuntu 18.04 e as ações foram aproximadamente as seguintes (o exemplo foi blog.xenot.ru/bystraya-nastrojka-vpn-servera-pptp-na-ubuntu-server-18-04-lts.fuck ):
    • Instale os pacotes necessários:

      sudo apt install pptpd iptables-persistent 
    • Trazemos para a seguinte forma

      /etc/pptpd.conf
       option /etc/ppp/pptpd-options bcrelay eth0 # ,        logwtmp localip 10.0.5.1 remoteip 10.0.5.100-200 

    • Correto

      / 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 
    • Adicione credenciais a

      / etc / ppp / chap-secrets
       # Secrets for authentication using CHAP # client server secret IP addresses username pptpd password * 
    • Adicionar a

      /etc/sysctl.conf
       net.ipv4.ip_forward=1 

      e recarregar o sysctl

       sudo sysctl -p 
    • Reinicie o pptpd e adicione-o à inicialização

       sudo service pptpd restart sudo systemctl enable pptpd 
    • Correto

      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 

      E salve

       sudo netfilter-persistent save sudo netfilter-persistent reload 
  • Configurar o TP-LINK 2
    • Reservamos o endereço 192.168.0.200 para nossa câmera:

      DHCP -> Reserva de Endereço
      - Endereço MAC - As câmeras MAC podem ser visualizadas em DHCP -> Lista de clientes DHCP
      - Endereço IP reservado - 192.168.0.200
    • Nós encaminhamos portas:
      Encaminhamento -> 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
    • Configure a conexão VPN:

      Rede -> WAN
      - Tipo de conexão WAN: PPTP
      - Nome de usuário: nome de usuário (consulte / etc / ppp / chap-secrets)
      - Senha: senha (consulte / etc / ppp / chap-secrets)
      - Confirme a senha: senha (consulte / 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 automaticamente
    • Opcionalmente, permita acesso remoto ao webmord do roteador
      Segurança -> Gerenciamento Remoto
      - Porta de gerenciamento da Web: 80
      - Endereço IP do controle remoto: 255.255.255.255
    • Reinicialize o roteador TP-LINK 2


Em vez de PPTP, você pode usar L2TP ou, se tiver um firmware personalizado, tudo o que seu coração deseja. Eu escolhi o PPTP, porque esse esquema foi criado não por razões de segurança, mas 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 significa que eu tinha que escolher entre PPTP e L2TP.

Se eu não cometi um erro no guia em nenhum lugar, 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 ,
  • em segundo lugar, 10.0.5.100 deve responder,
  • e terceiro

     ffprobe -rtsp_transport tcp "rtsp://10.0.5.100:49153/user=admin&password=password&channel=1&stream=0.sdp" 

    Deve detectar o fluxo.
    porta rtsp, login e senha que você pode encontrar na documentação da sua câmera


Conclusão


Em princípio, já não é ruim, há acesso ao RTSP; se o software proprietário funciona via DVRIP, você pode usá-lo. Você pode salvar o fluxo usando ffmpeg, acelerar o vídeo de 2 a 5 vezes, dividir em pedaços por hora, fazer o upload de tudo para o Google ou redes sociais e muito, muito mais.

Não gostei de RTSP sobre TCP, porque de alguma forma não funcionou muito estável, mas sobre UDP, pelo motivo de não podermos (ou não podermos, mas não quero fazer isso) encaminhar o intervalo de portas nas quais o RTSP empurrará o fluxo de vídeo , Não posso usá-lo, escrevi um script que arrasta um fluxo sobre TCP via DVRIP. Acabou sendo mais estável.

Das vantagens da abordagem - podemos pegar algo que suporta o apito 4G no lugar do roteador TP-LINK 2, ligar tudo junto com a câmera do no-break (que sem dúvida será muito menos exigente do que quando se usa o gravador), além disso, a gravação é transmitida quase instantaneamente para o servidor, portanto, mesmo que os invasores o penetrem, eles não poderão remover o vídeo. Em geral, há espaço para manobras e tudo depende da sua imaginação.

PS: Eu sei que muitos fabricantes oferecem soluções em nuvem prontas, mas custam quase o dobro do preço da minha força aérea (da qual eu já tenho 3, por isso preciso colocar recursos em algum lugar), fornecem muito menos controle e também qualidade muito satisfatória.

Source: https://habr.com/ru/post/pt482864/


All Articles