A opção de acesso aleatório às configurações e gravações do registrador de carros de qualquer lugar na Internet

Os DVRs de automóveis têm sido um dos atributos obrigatórios para qualquer motorista. Pessoalmente, posso concluir sem exagero que não posso me sentir seguro ao volante sem um dispositivo tão simples. É claro que, nos últimos 10 anos, o progresso fez um progresso significativo: hoje já existem muitos fabricantes no mercado produzindo modelos decentes, e nós, os drivers, já temos muito por onde escolher.

Minha escolha recaiu sobre o registrador Neoline G-Tech X53 e houve várias razões para isso:

  • está equipado com duas câmeras, uma das quais fornece uma imagem FullHD real,
  • Ele foi projetado especificamente para instalação secreta,
  • é totalmente controlado via Wi-Fi por meio do aplicativo no smartphone, o que é importante no contexto deste artigo e, entre outras coisas, possibilita a instalação realmente secreta sem a necessidade de subir ou remover periodicamente o bloco (por exemplo, para copiar um registro de uma unidade flash USB).


Então, como muitas vezes acontece, o apetite veio com a comida. Depois de instalar o gravador no carro, apreciei sua conveniência, experimentei e queria ter acesso a seus registros não apenas perto da máquina, onde seu sinal de WiFi é capturado, mas geralmente em todos os lugares . Bem, ou pelo menos em casa, para começar.

Obviamente, na natureza, existem modelos de registradores que mesclam registros na nuvem sob comando, mas vinculam o usuário a essa nuvem e os forçam a pagar por ela, mas essa não é minha opção. Além disso, minha lista de desejos se sobrepunha bem aos planos de instalar um roteador WiFi com um modem no carro, portanto a tarefa parecia bastante viável.

É verdade que rapidamente ficou claro que o registrador não possui uma API documentada e o acesso a ela só pode ser obtido usando o aplicativo nativo para um smartphone. O aplicativo, por sua vez, acabou sendo muito extravagante - só funciona quando o telefone está conectado ao registrador de WiFi.


Ou seja, eu tinha que entender o que o aplicativo quer do WiFi e fazê-lo "ver" o registrador, localizado em um local completamente diferente, com a solução para todos os problemas técnicos relacionados - em geral, é assim que eu amo.

Como um roteador que distribui a Internet via Wi-Fi no carro, usei o Mikrotik RBmAP2nD (mAP) com um modem Huawei e3372h (se você conhece outras opções de orçamento nas quais é possível implementar as configurações descritas abaixo - escreva nos comentários). Como o registrador só pode distribuir seu WiFi e não pode se conectar a um ponto de acesso existente, eu tive que configurar o cliente de ponto de acesso, que deveria se conectar a ele. E logo ficou claro que o trabalho do Mikrotik como um AP e um cliente AP (na interface escrava) leva a uma distribuição instável de WiFi, por isso foi decidido emparelhar com o roteador principal outro - Mikrotik RBmAPL-2nD (mAP lite).


Aplicação de fraude


Para começar, fiz o aplicativo funcionar com o registrador por meio de uma rede WiFi completamente diferente, trabalhando na mesma máquina. Ao longo do caminho, consegui responder às perguntas - como o aplicativo reconhece a rede do registrador e como enganá-lo. Além disso, ao longo do caminho, foi possível obter uma conveniência ainda maior - agora, para trabalhar com o registrador no carro, você não precisa mudar para o Wi-Fi, no qual não há Internet.

Não descreverei detalhadamente dezenas de experimentos durante os quais cheguei a uma solução de trabalho, apenas descrevo essa solução. Portanto, o que é necessário para o aplicativo reconhecer o registrador de WiFi:

  1. O SSID deve se parecer com " G-Tech X5X-120 ... ", onde, em vez dos últimos pontos, existem dígitos arbitrários (letras minúsculas) no sistema numérico hexadecimal. Por exemplo, eu instalei o " G-Tech X5X-120aaa " e assim por diante. Talvez, em vez de "120", você também possa colocar algo de sua preferência, eu não tentei.
  2. O endereço do cliente deve ser obtido via DHCP, deve estar na sub-rede 192.168.100.0/24, o endereço do servidor (registrador) = 192.168.100.1.

O resto não é importante. Não tentei muitas outras coisas, mas sei com certeza que:

  1. O endereço MAC do AP e do servidor não importa.
  2. Se houver seções com uma MTU reduzida (por exemplo, túneis) ao longo da rota de tráfego, a conexão funcionará bem.
  3. A janela TCP é larga o suficiente para que o download de registros não diminua em pings, mesmo a 300ms ou mais.

Então, qual é o resultado final?

  • O aplicativo deseja ter um endereço na rede 192.168.100.0/24 e conectar-se ao endereço 192.168.100.1.
  • O endereço do registrador também é 192.168.100.1 e ele deseja que o cliente esteja na rede 192.168.100.0/24 (ele simplesmente não possui rotas para outras pessoas).

Isso não muda, mas queremos aprender como distribuir o aplicativo e o registrador. Portanto, você precisa atribuir o endereço 192.168.100.1 ao roteador que distribui o Wi-Fi e, para resolver os problemas com o roteamento de tráfego, é necessário inserir uma sub-rede de conexão e adicionar alguma mágica de rede. Por exemplo, assim:


Descrição:

  • O aplicativo é executado em um smartphone conectado ao roteador R1. O smartphone recebe o endereço via DHCP, no nosso exemplo é 192.168.100.100.
  • O endereço IP do R1 na interface WiFi é 192.168.100.1 (como o aplicativo deseja), na interface Ethernet é 192.168.99.1 (esta é uma sub-rede de encaixe).
  • O endereço IP do R2 na interface Ethernet é 192.168.99.2, na interface WiFi é obtido via DHCP do registrador, em nosso exemplo é 192.168.100.150.
  • Cada roteador executa DNAT na entrada e SNAT na saída, para que os pacotes em cada sub-rede tenham endereços de origem e destino que correspondam aos endereços dos roteadores de borda desta rede.

Como é a conexão:

  1. O aplicativo garante que ele esteja conectado ao WiFi do registrador e inicie uma conexão com o endereço 192.168.100.1, supondo que esse seja o endereço do registrador.
  2. R1 aceita a solicitação de conexão, executando na interface DNAT de entrada com a substituição do endereço de destino para 192.168.99.2 e na interface de saída - SNAT com a substituição do endereço de origem para 192.168.99.1.
  3. O R2 aceita a solicitação de conexão, executando na interface DNAT de entrada com a substituição do endereço de destino para 192.168.100.1, e na interface de saída - mascarada com a substituição do endereço de origem no endereço recebido via DHCP do registrador.
  4. O registrador aceita e processa a solicitação de conexão que veio do endereço emitido anteriormente via DHCP. O que foi necessário.

Um leitor atencioso já tem uma pergunta: para que tipo de tráfego eu redireciono? Começando com "todo o tráfego, exceto ssh" e ativando o log, percebi que era o suficiente para redirecionar as portas TCP 7777, 7778 e 7779 . O aplicativo não precisa de mais nada para trabalhar com o registrador.

Passamos tráfego pela Internet


Aprendendo a enganar o aplicativo, removi o obstáculo mais difícil ao objetivo principal - organizar o acesso aos registros de qualquer lugar da Internet. Porém, para que o aplicativo em execução no telefone neste "qualquer momento" seja capaz de conectar-se ao registrador, para "enganar" é necessário cumprir todas as condições acima, e isso impõe algumas restrições. No entanto, em um endereço, os registros são necessários especialmente com frequência - eles estão em casa. Aqui começamos com um roteador doméstico.

Em casa, como você provavelmente já adivinhou, eu também tenho o Mikrotik. O roteador externo tem um endereço IP “branco” e eu usei isso para criar um túnel L2TP entre os roteadores de carro e doméstico e organizar outra sub-rede de acoplamento entre eles. Outro roteador foi adicionado ao circuito que descrevi acima e agora parece simplificado da seguinte forma:


Descrição:

  • O aplicativo é executado em um smartphone conectado ao roteador doméstico R0. O smartphone recebe o endereço via DHCP, no nosso exemplo é 192.168.100.100.
  • O endereço IP de R0 na interface WiFi é 192.168.100.1 (conforme o aplicativo desejar), na interface L2TP é 192.168.98.1 (sub-rede de encaixe 0).
  • O endereço IP R1 na interface L2TP é 192.168.98.2, na interface Ethernet é 192.168.99.1 (sub-rede de conexão 1).
  • O endereço IP do R2 na interface Ethernet é 192.168.99.2, na interface WiFi é obtido via DHCP do registrador, em nosso exemplo é 192.168.100.150.
  • Cada roteador executa DNAT na entrada e SNAT na saída, para que os pacotes em cada sub-rede tenham endereços de origem e destino que correspondam aos endereços dos roteadores de borda desta rede.

Como é a conexão:

  1. O aplicativo garante que ele esteja conectado ao WiFi do registrador e inicie uma conexão com o endereço 192.168.100.1, supondo que esse seja o endereço do registrador.
  2. R0 aceita a solicitação de conexão, executando na interface DNAT de entrada com a substituição do endereço de destino para 192.168.98.2 e na interface de saída - SNAT com a substituição do endereço de origem para 192.168.98.1.
  3. R1 aceita a solicitação de conexão, executando na interface DNAT de entrada com a substituição do endereço de destino para 192.168.99.2 e na interface de saída - SNAT com a substituição do endereço de origem para 192.168.99.1.
  4. O R2 aceita a solicitação de conexão, executando na interface DNAT de entrada com a substituição do endereço de destino para 192.168.100.1, e na interface de saída - mascarada com a substituição do endereço de origem no endereço recebido via DHCP do registrador.
  5. O registrador aceita e processa a solicitação de conexão que veio do endereço emitido anteriormente via DHCP. O que foi necessário.

PS.
Com o ponto 2, você pode facilitar um pouco se fizer DNAT imediatamente na 99ª, em vez da 98ª sub-rede, e adicionar a rota à 99ª sub-rede por meio de R1. Mas apenas descrevo a ideia geral e um exemplo de sua implementação, e há muitas maneiras de integrar tudo isso em uma rede existente.

De onde tiramos comida?


Roteadores e modem consomem um pouco, mas o suficiente para descarregar a bateria do carro para zero em 3-4 dias. Portanto, é melhor incluí-los sob demanda. E, para me encaixar no conceito de “acesso a qualquer momento”, aproveitei o fato de que o alarme Starline A96 instalado no meu carro possui, entre outras coisas, um módulo GSM, programou a inclusão de um canal adicional sob comando de um aplicativo de controle remoto ou smartphone e ligou o roteador mAP de um canal adicional e mAP lite - através de PoE desde o primeiro. Não falarei sobre isso em detalhes aqui, tudo isso é facilmente no Google, mas se estiver interessado, escreva nos comentários.

Sumário


Tendo feito tudo isso, tive a oportunidade não apenas de copiar os registros do gravador enquanto estava em casa, mas também de ver fotos das câmeras em tempo real. E tudo isso, independentemente de onde o carro esteja localizado, o principal é que seu roteador tenha uma conexão com a Internet. Isso não é perfeito?

E com um bônus agradável, obtive uma velocidade maior de copiar vídeos do que ficar sentado no carro: 1,2-1,5 mb / s contra 1 mb / s. Não sei porque.


Haverá configurações?


Sinceramente, não acho que alguém possa fazer exatamente o que está descrito. De qualquer forma, haverá alguma adaptação da solução ao que já está disponível. Mas se você realmente precisar - abaixo, você encontrará as regras nat, nas quais 99% de tudo o que foi discutido acima é implementado.

R0
/ip firewall nat add action=src-nat chain=srcnat comment=AVR out-interface=l2tp-auto src-address=192.168.100.0/24 to-addresses=192.168.98.1 add action=dst-nat chain=dstnat comment=AVR dst-address=192.168.100.1 dst-port=7777,7778,7779 in-interface=wlan1 protocol=tcp to-addresses=192.168.98.2 


R1
 /ip firewall nat add action=masquerade chain=srcnat comment=AVR out-interface=l2tp-auto add action=masquerade chain=srcnat comment=AVR out-interface=ether2 add action=masquerade chain=srcnat comment=AVR out-interface=wlan1 add action=dst-nat chain=dstnat comment=AVR dst-port=7777,7778,7779 in-interface=l2tp-auto protocol=tcp to-addresses=192.168.99.2 add action=dst-nat chain=dstnat comment=AVR dst-port=7777,7778,7779 in-interface=wlan1 protocol=tcp to-addresses=192.168.99.2 


R2
 /ip firewall nat add action=dst-nat chain=dstnat comment=AVR dst-address=192.168.99.2 dst-port=7777,7778,7779 in-interface=ether1 protocol=tcp to-addresses=192.168.100.1 add action=masquerade chain=srcnat comment=AVR out-interface=wlan1 

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


All Articles