Aller au contenu principal

Serveur Sender / Client

Le serveur client est responsable de la gestion des fichiers de logs et du calcul des hashs.

Localisation

Les logs sont stockés dans /root/keralis/logs/.

Structure des Fichiers

/root/keralis/
├── sender/
│ ├── setup.sh # Script d'installation pour le serveur sender
│ ├── senderV1.py # Programme d'envoi des fichiers .hash et .log.enc via SFTP au serveur blockchain
│ └── .env # Variables d'environnement (définies via le ./setup.sh)
Description de l'image

Schema envoi SFTP

Fonctionnement du code

setup.sh

Script qui genere le .env et le complete avec les informations données.

senderV1.py et PM2

Le script déroule un ensemble d'étapes automatisé dès la detection d'un nouveau fichier de log :

  1. Détection d'un nouveau fichier de log
  2. Génération d'un hash du fichier avec SHA256
  3. Génération d'une copie chiffrée du fichier (.log.enc)
  4. Envoi des 2 fichiers sur le serveur blockchain via SFTP
  5. Stockage dans mongoDB sur le serveur blockchain
Description de l'image

Logs pm2 de senderV1.py

Serveur API de Hash

Le fichier client-hash-server.js implémente un serveur API REST avec les fonctionnalités suivantes:

  • Calcul des hashs SHA-256 des fichiers
  • Cache des hashs pour optimisation des performances
  • API sécurisée par clé
  • Gestion des modifications de test
Description de l'image

Logs pm2 du serveur API

Endpoints API

Le serveur expose les endpoints suivants:

  • GET /api/logs - Liste des fichiers de logs disponibles
  • GET /api/hash/:fileName - Hash d'un fichier spécifique
  • POST /api/modify/:fileName - Modification test (pour le développement)
  • POST /api/restore/:fileName - Restauration d'un fichier modifié

PM2 summary

Description de l'image

pm2 list sur serveur client

  • id 1 => Sender : senderV1.py (envoi STFP)
  • id 3 => Hash-server : client-hash-server.js (serveur API)