NEURALINK - AGENT DE SITE
=========================

A installer sur un PC allume en permanence dans les locaux de l'entreprise (poste de l'accueil,
vieux PC, Raspberry Pi). Aucun boitier NEURALINK n'est necessaire.

1. Prerequis
------------
- Windows 10/11 : Python s'installe tout seul au premier lancement de lancer-agent.bat (winget).
  Sinon : https://www.python.org/downloads/windows/ (cochez "Add python.exe to PATH").
- Linux / Raspberry Pi : Python 3.10 ou plus (deja present sur la plupart des systemes).
- La cle d'agent (NLG-...) : espace NEURALINK > Securite & 2FA > "Generer la cle de l'agent".

2. Installation sous Windows
----------------------------
- Double-cliquez sur lancer-agent.bat et repondez aux questions.
- Pour un demarrage automatique : double-cliquez sur demarrage-automatique.bat.

Sous Linux / Raspberry Pi : voir l'en-tete de neuralink-agent.service.

3. Ce que l'agent fait selon votre routeur
------------------------------------------
Tous routeurs (box operateur, TP-Link, etc.) :
  - liste des appareils du reseau, detection des intrus ;
  - detection de l'empoisonnement ARP (quelqu'un qui se fait passer pour la passerelle) ;
  - mesure du lien Internet ;
  - verification de l'adresse IP lors du raccordement (option B).

Controleur Ubiquiti UniFi ou TP-Link Omada, en plus :
  - debit reel de chaque appareil ;
  - controle parental : couper un appareil (NEURALINK ne debloque que ce qu'il a bloque lui-meme).
  (zones VLAN, pare-feu et liste de menaces : non pilotables par leur API, mode degrade)

Routeur MikroTik (RouterOS v7) ou OpenWrt, en plus de tout cela :
  - application automatique de la protection (zones, anti-usurpation, blocage des menaces),
    avec annulation automatique en 90 s si le reseau ne repond plus ;
  - liste de menaces du jour, signee et verifiee avant application ;
  - controle parental (couper ou limiter un appareil) ;
  - debit reel de chaque appareil (MikroTik : files "NL-meter" ; OpenWrt : compteurs nftables).
    MikroTik avec FastTrack actif : le debit est sous-estime (l'agent le signale dans son journal).
  - analyse du trafic (6.8), seulement si l'entreprise l'a activee dans son espace :
      * capture a la demande d'UN appareil (10 a 120 s) -> fichier .pcap a ouvrir dans Wireshark ;
      * destinations contactees par chaque appareil (table des connexions du routeur) ;
      * sites demandes (journal DNS du routeur), compares a la liste de menaces du jour.
    MikroTik : le renifleur du routeur envoie la capture a ce PC (UDP 37008). Autorisez-le une fois
    dans le pare-feu Windows (PowerShell en administrateur) :
      New-NetFirewallRule -DisplayName "NEURALINK capture" -Direction Inbound -Protocol UDP -LocalPort 37008 -RemoteAddress IP_DU_ROUTEUR -Action Allow
    Les sites demandes ne sont vus que si les appareils utilisent le routeur comme serveur DNS (cas normal en DHCP).
    OpenWrt : la capture utilise tcpdump (opkg update && opkg install tcpdump-mini).

5bis. Entretien automatique (6.9)
-----------------------------------
  - L'agent se met a jour tout seul (fichier signe, verifie, ancienne version gardee en .py.bak).
  - Il verifie lui-meme ce qui manque (droit de capture, tcpdump, pare-feu, version du routeur) et
    l'espace NEURALINK (page Entretien) le repare en un clic, ou seul la nuit si c'est sans risque.
  - Pare-feu Windows pour la capture MikroTik : lancer-agent.bat le propose a l'installation ;
    sinon double-cliquez sur autoriser-capture.bat (repondez "Oui").

4. Preparer un MikroTik (une seule fois, dans un terminal WinBox)
-----------------------------------------------------------------
  /user group add name=neuralink policy=read,write,api,rest-api,sniff,!ftp,!reboot,!policy,!password,!sensitive
  (droit "sniff" : necessaire uniquement pour la capture .pcap ; remplacez-le par !sniff si vous n'en voulez pas)
  /user add name=neuralink group=neuralink password=UN-MOT-DE-PASSE-LONG
  /ip service set www-ssl disabled=no
  (sans certificat : /certificate add name=local common-name=routeur ; /certificate sign local ;
   /ip service set www-ssl certificate=local, puis repondez "o" a la question du certificat auto-signe)

5. Preparer un OpenWrt
----------------------
  Sur le PC de l'agent : ssh-keygen (Entree a chaque question)
  Copiez le contenu de la cle publique (.ssh\id_ed25519.pub) dans /etc/dropbear/authorized_keys du routeur.
  Paquets utiles sur le routeur : opkg update && opkg install mwan3 bird2 kmod-nft-bridge

5 bis. Preparer un controleur UniFi ou Omada
--------------------------------------------
  Creez un compte administrateur local dedie "neuralink" sur le controleur (pas un compte cloud
  avec double authentification). Adresse a donner a l'agent :
    UniFi  : 192.168.1.1 (console UDM / Cloud Key) ou 192.168.1.2:8443 (controleur logiciel)
    Omada  : adresse de l'OC200 / OC300, ou du controleur logiciel avec son port (ex. :8043)
  Le nom du site est celui affiche dans le controleur ("Default" le plus souvent).

6. Securite
-----------
- Le mot de passe du routeur reste sur ce PC, chiffre par Windows (DPAPI). Il n'est jamais envoye
  a NEURALINK.
- La liste de menaces n'est appliquee que si sa signature correspond a la cle de la plateforme
  enregistree au premier contact.
- AVANT un premier deploiement chez un client : testez l'agent sur un routeur de test.

7. Commandes utiles
-------------------
  python neuralink_agent.py status    etat de la configuration
  python neuralink_agent.py once      un cycle de test, resultat affiche
  Journal : neuralink-agent.log
