La possibilité d'accéder de manière aléatoire aux paramètres et enregistrements du registraire automobile depuis n'importe où sur Internet

Les DVR de voiture sont depuis longtemps l'un des attributs obligatoires de tout automobiliste. Personnellement, je peux conclure sans exagération que je ne peux pas me sentir en sécurité au volant sans un gadget aussi simple. Bien sûr, au cours des 10 dernières années, les progrès ont fait des progrès significatifs: aujourd'hui, il y a déjà beaucoup de fabricants sur le marché qui produisent des modèles décents, et nous, les pilotes, avons déjà l'embarras du choix.

Mon choix s'est porté sur le registraire Neoline G-Tech X53, et il y avait plusieurs raisons à cela:

  • il est équipé de deux caméras, dont l'une donne une vraie image FullHD,
  • Il est conçu spécifiquement pour une installation secrète,
  • il est entièrement contrôlé via WiFi via l'application sur le smartphone, ce qui est important dans le cadre de cet article, et entre autres, il permet une installation vraiment secrète sans avoir besoin de grimper ou de supprimer périodiquement le bloc (par exemple, pour copier un enregistrement à partir d'une clé USB).


Puis, comme cela arrive souvent, l'appétit est venu en mangeant. Après avoir installé l'enregistreur dans la voiture, j'ai apprécié sa commodité, j'ai goûté et je voulais avoir accès à ses enregistrements non seulement près de la machine, où son signal WiFi est capté, mais généralement partout . Eh bien, ou du moins à la maison, pour commencer.

Bien sûr, dans la nature, il existe des modèles de registraire qui fusionnent les enregistrements dans le cloud sur commande, mais ils lient l'utilisateur à ce cloud et le forcent à payer, mais ce n'est pas mon option. De plus, ma liste de souhaits se chevauchait bien avec les plans d'installer un routeur WiFi avec un modem dans la voiture, donc la tâche semblait tout à fait faisable.

Certes, il est rapidement devenu clair que le registraire ne possède pas d'API documentée et que l'accès à celle-ci ne peut être obtenu qu'en utilisant l'application native pour smartphone. À son tour, l'application s'est avérée très fantaisiste - elle ne fonctionne que lorsque le téléphone est connecté au registraire WiFi.


Autrement dit, je devais comprendre ce que l'application veut du WiFi, et lui faire «voir» le registraire, situé dans un endroit complètement différent, avec la solution à tous les problèmes techniques connexes - en général, c'est comme ça que je l'aime.

En tant que routeur qui distribue Internet via WiFi dans la voiture, j'ai utilisé Mikrotik RBmAP2nD (mAP) avec un modem Huawei e3372h (si vous connaissez d'autres options budgétaires sur lesquelles vous pouvez implémenter les configurations décrites ci-dessous - écrivez dans les commentaires). Étant donné que le registraire ne peut distribuer que son WiFi et ne peut pas se connecter à un AP existant, j'ai dû configurer l'AP-Client, qui devrait s'y connecter. Et puis il est rapidement devenu clair que le travail de Mikrotik en tant qu'AP et AP-Client (sur l'interface esclave) conduit à une distribution instable du WiFi, il a donc été décidé de coupler avec le routeur principal un autre - Mikrotik RBmAPL-2nD (mAP lite).


Application de triche


Pour commencer, j'ai fait travailler l'application avec le registraire via un réseau WiFi complètement différent fonctionnant sur la même machine. En cours de route, j'ai réussi à répondre à des questions - comment l'application identifie le réseau du registraire et comment le tromper. De plus, en cours de route, il a été possible d'atteindre un confort encore plus grand - maintenant, pour travailler avec le registraire dans la voiture, vous n'avez pas besoin de passer à son WiFi, sur lequel il n'y a pas Internet.

Je ne décrirai pas en détail des dizaines d'expériences au cours desquelles je suis arrivé à une solution de travail, je viens de décrire cette solution. Donc, ce qui est nécessaire pour que l'application reconnaisse le registraire WiFi:

  1. Le SSID devrait ressembler à " G-Tech X5X-120 ... ", où au lieu des derniers points, il y a des chiffres arbitraires (petites lettres) dans le système de nombres hexadécimal. Par exemple, j'ai installé " G-Tech X5X-120aaa " et ainsi de suite. Peut-être qu'au lieu de «120» vous pouvez aussi mettre quelque chose de vous-même, je ne l'ai pas essayé.
  2. L'adresse client doit être obtenue via DHCP, doit être dans le sous-réseau 192.168.100.0/24, l'adresse du serveur (registraire) = 192.168.100.1.

Le reste n'est pas important. Je n'ai pas essayé beaucoup d'autres choses, mais je suis sûr que:

  1. L'adresse MAC de l'AP et du serveur n'a pas d'importance.
  2. S'il existe des sections avec un MTU réduit (par exemple, des tunnels) le long de la route de trafic, la connexion fonctionne correctement.
  3. La fenêtre TCP est suffisamment large pour que le téléchargement des enregistrements ne ralentisse pas aux pings, même à 300 ms et plus.

Alors, quel est le résultat?

  • L'application souhaite avoir une adresse sur le réseau 192.168.100.0/24 et se connecter à l'adresse 192.168.100.1.
  • L'adresse du registraire est également 192.168.100.1 et il souhaite que le client soit sur le réseau 192.168.100.0/24 (il n'a tout simplement pas de routes vers les autres).

Cela ne doit pas changer, mais nous voulons apprendre à distribuer l'application et le registraire. Vous devez donc attribuer l'adresse 192.168.100.1 au routeur qui distribue le WiFi, et pour résoudre les problèmes de routage du trafic, vous devez entrer un sous-réseau de connexion et ajouter un peu de magie réseau. Par exemple, comme ceci:


Description:

  • L'application s'exécute sur un smartphone connecté au routeur R1. Le smartphone reçoit l'adresse via DHCP, dans notre exemple c'est 192.168.100.100.
  • L'adresse IP de R1 sur l'interface WiFi est 192.168.100.1 (comme l'application le souhaite), sur l'interface Ethernet c'est 192.168.99.1 (c'est un sous-réseau d'accueil).
  • L'adresse IP R2 sur l'interface Ethernet est 192.168.99.2, sur l'interface WiFi, elle est obtenue via DHCP auprès du registraire, dans notre exemple, elle est 192.168.100.150.
  • Chaque routeur exécute DNAT à l'entrée et SNAT à la sortie, de sorte que les paquets sur chaque sous-réseau ont des adresses source et de destination qui correspondent aux adresses des routeurs périphériques de ce réseau.

Comment est la connexion:

  1. L'application s'assure qu'elle est connectée au WiFi du bureau d'enregistrement et établit une connexion avec l'adresse 192.168.100.1, en supposant qu'il s'agit de l'adresse du bureau d'enregistrement.
  2. R1 accepte la demande de connexion, s'exécutant sur l'interface DNAT entrante avec la substitution de l'adresse de destination à 192.168.99.2, et sur l'interface sortante - SNAT avec la substitution de l'adresse source à 192.168.99.1.
  3. R2 accepte la demande de connexion, s'exécutant sur l'interface DNAT entrante avec la substitution de l'adresse de destination à 192.168.100.1, et sur l'interface sortante - mascarade avec la substitution de l'adresse source à l'adresse reçue via DHCP du registraire.
  4. Le bureau d'enregistrement accepte et traite la demande de connexion provenant de l'adresse qu'il a précédemment émise via DHCP. Ce qui était nécessaire.

Un lecteur réfléchi a déjà une question: pour quel type de trafic dois-je rediriger? En commençant par «tout le trafic sauf ssh» et en activant la journalisation, j'ai réalisé qu'il suffisait de rediriger les ports TCP 7777, 7778 et 7779 . L'application n'a besoin de rien d'autre pour fonctionner avec le registraire.

Nous transmettons le trafic via Internet


Apprenant à tromper l'application, j'ai supprimé l'obstacle le plus difficile à l'objectif principal - organiser l'accès aux enregistrements de n'importe où sur Internet. Mais pour que l'application s'exécutant sur le téléphone à ce «tout moment» puisse se connecter au bureau d'enregistrement, pour «tromper», il est nécessaire de remplir toutes les conditions ci-dessus, et cela impose certaines restrictions. Cependant, à une seule adresse, les enregistrements sont nécessaires surtout souvent - ils sont à la maison. Ici, nous commençons avec un routeur domestique.

Chez moi, comme vous l'avez probablement déjà deviné, j'ai aussi Mikrotik. Le routeur externe a une adresse IP «blanche», et je l'ai utilisée pour créer un tunnel L2TP entre les routeurs automobile et domestique et organiser un autre sous-réseau d'accueil entre eux. Un autre routeur a été ajouté au circuit que j'ai décrit ci-dessus, et maintenant il semble simplifié comme ceci:


Description:

  • L'application s'exécute sur un smartphone connecté au routeur domestique R0. Le smartphone reçoit l'adresse via DHCP, dans notre exemple c'est 192.168.100.100.
  • L'adresse IP de R0 sur l'interface WiFi est 192.168.100.1 (comme l'application le souhaite), sur l'interface L2TP, elle est 192.168.98.1 (sous-réseau d'accueil 0).
  • L'adresse IP R1 sur l'interface L2TP est 192.168.98.2, sur l'interface Ethernet c'est 192.168.99.1 (sous-réseau de connexion 1).
  • L'adresse IP R2 sur l'interface Ethernet est 192.168.99.2, sur l'interface WiFi, elle est obtenue via DHCP auprès du registraire, dans notre exemple, elle est 192.168.100.150.
  • Chaque routeur exécute DNAT à l'entrée et SNAT à la sortie, de sorte que les paquets sur chaque sous-réseau ont des adresses source et de destination qui correspondent aux adresses des routeurs périphériques de ce réseau.

Comment est la connexion:

  1. L'application s'assure qu'elle est connectée au WiFi du bureau d'enregistrement et établit une connexion avec l'adresse 192.168.100.1, en supposant qu'il s'agit de l'adresse du bureau d'enregistrement.
  2. R0 accepte la demande de connexion, s'exécutant sur l'interface DNAT entrante avec la substitution de l'adresse de destination à 192.168.98.2, et sur l'interface sortante - SNAT avec la substitution de l'adresse source à 192.168.98.1.
  3. R1 accepte la demande de connexion, s'exécutant sur l'interface DNAT entrante avec la substitution de l'adresse de destination à 192.168.99.2, et sur l'interface sortante - SNAT avec la substitution de l'adresse source à 192.168.99.1.
  4. R2 accepte la demande de connexion, s'exécutant sur l'interface DNAT entrante avec la substitution de l'adresse de destination à 192.168.100.1, et sur l'interface sortante - mascarade avec la substitution de l'adresse source à l'adresse reçue via DHCP du registraire.
  5. Le bureau d'enregistrement accepte et traite la demande de connexion provenant de l'adresse qu'il a précédemment émise via DHCP. Ce qui était nécessaire.

PS.
Avec le point 2, vous pouvez faire un peu plus facilement si vous effectuez DNAT immédiatement sur le 99e, plutôt que sur le 98e sous-réseau, et ajoutez la route au 99e sous-réseau via R1. Mais je viens de décrire l'idée générale et un exemple de sa mise en œuvre, et il existe de nombreuses façons d'intégrer tout cela dans un réseau existant.

D'où trouvons-nous la nourriture?


Les routeurs et un modem consomment un peu, mais suffisamment pour décharger la batterie de la voiture à zéro en 3-4 jours. Par conséquent, il est préférable de les inclure sur demande. Et pour entrer dans le concept d '«accès à tout moment», j'ai profité du fait que l'alarme Starline A96 installée dans ma voiture dispose, entre autres, d'un module GSM, programmé l'inclusion d'un canal supplémentaire sur commande depuis une télécommande ou une application smartphone et alimenté le routeur mAP à partir d'un canal supplémentaire, et mAP lite - via PoE à partir du premier. Je ne parlerai pas de cela en détail ici, tout cela est facilement google, mais si vous êtes intéressé, écrivez dans les commentaires.

Résumé


Après avoir fait tout cela, j'ai eu l'occasion non seulement de copier les enregistrements de l'enregistreur en étant assis à la maison, mais aussi de regarder des photos de caméras en temps réel. Et tout cela, peu importe où se trouve la voiture, l'essentiel est que son routeur dispose d'une connexion Internet. N'est-ce pas parfait?

Et avec un bonus agréable, j'ai obtenu une vitesse de copie des vidéos plus élevée que d'être assis dans la voiture: 1,2-1,5 mb / s contre 1 mb / s. Je ne sais pas pourquoi.


Y aura-t-il des configurations?


Honnêtement, je ne pense pas que quiconque pense à faire exactement ce qui est décrit. Dans tous les cas, il y aura une certaine adaptation de la solution à ce qui est déjà disponible. Mais si vous en avez vraiment besoin - vous trouverez ci-dessous les règles nat, sur lesquelles 99% de tout ce qui a été discuté ci-dessus est implémenté.

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/fr416323/


All Articles