Skip to content

Latest commit

 

History

History
317 lines (236 loc) · 11.7 KB

File metadata and controls

317 lines (236 loc) · 11.7 KB



SOC 0xCyberLiTech



Guide de déploiement rapide — workflow disaster recovery · référence méthodologique.

Portfolio Profil GitHub Dépôt SOC README Dépôts publics

CyberSec

Cybersécurité défensive  •  Homelab en production  •  IA locale intégrée


## À propos & Objectifs.

Ce guide décrit le workflow complet de déploiement ou restauration du SOC depuis une VM Debian 13 vierge. Il est la référence méthodologique utilisée lors de l'exercice DR du 2026-04-28.

  • 1️⃣ Installation Debian 13 Trixie depuis le RUNBOOK
  • 2️⃣ Déploiement stack logicielle via deploy-soc.sh (--dry-run disponible)
  • 3️⃣ Restauration configuration depuis archive privée via restore-soc.sh
  • 4️⃣ Validation 61 points via CHECKLIST-DEPLOY.md
  • ⏱️ Objectif — système opérationnel via la procédure DR (archive privée requise)

Procédure complète pour reconstruire srv-nginx à l'identique sur une nouvelle VM Debian 13.
La reconstruction nécessite l'archive de configuration privée — non reproductible depuis ce dépôt public seul.


Prérequis

VM à préparer (nouveau srv-nginx)

  • OS : Debian 13 (Trixie) installation minimale
  • IP : (configurée pendant l'install Debian — DHCP ou statique, peu importe pour l'instant)
  • SSH : port 22 (par défaut — sera changé à par le script de restauration)
  • Accès : root avec mot de passe (le script SSH clés sera restauré)
  • Réseau : accessible depuis votre poste Windows

Fichiers à avoir sur Windows

  • Archive : D:\BACKUP-PROXMOX\soc-config-AAAA-MM-JJ.tar.gz (38 Mo)
  • Dossier DEPLOY : clone du dépôt GitHub, sous-dossier DEPLOY/
    • deploy-soc.sh — installe les paquets (nginx, crowdsec, suricata...)
    • restore-soc.sh — restaure toutes les configs depuis l'archive

Étape 1 — Transférer les fichiers sur la nouvelle VM

Depuis Git Bash sur Windows :

# Variables (adapter si besoin)
NEW_VM="<SRV-NGINX-IP>"
ARCHIVE="/path/to/backups/soc-config-AAAA-MM-JJ_HHMM.tar.gz"
# Cloner le dépôt SOC sur la VM directement
ssh root@${NEW_VM} "mkdir -p /root/deploy-soc"

# Cloner le dépôt depuis GitHub
ssh root@${NEW_VM} "git clone https://github.com/<GITHUB-USER>/SOC /root/deploy-soc/repo"

# OU : copier les scripts depuis votre poste local
scp <YOUR-LOCAL-SOC-PATH>/DEPLOY/deploy-soc.sh    root@${NEW_VM}:/root/deploy-soc/
scp <YOUR-LOCAL-SOC-PATH>/DEPLOY/restore-soc.sh   root@${NEW_VM}:/root/deploy-soc/

# Copier l'archive de configuration (peut prendre 30-60s selon le réseau)
scp "${ARCHIVE}" root@${NEW_VM}:/root/deploy-soc/

Résultat attendu sur la VM :

/root/deploy-soc/
├── deploy-soc.sh
├── restore-soc.sh
└── soc-config-2026-04-25_2159.tar.gz

Étape 2 — Se connecter à la nouvelle VM

ssh root@<SRV-NGINX-IP>
cd /root/deploy-soc

Étape 3 — Installer les paquets (deploy-soc.sh)

# Simulation d'abord (sans rien modifier)
bash deploy-soc.sh --dry-run

# Déploiement complet (installe nginx, crowdsec, suricata, fail2ban, rsyslog, aide...)
bash deploy-soc.sh

Cette étape installe tous les paquets nécessaires. Durée : 5 à 10 min selon la connexion internet.


Étape 4 — Simuler la restauration (--dry-run)

bash restore-soc.sh soc-config-2026-04-25_2159.tar.gz --dry-run

Lire le rapport final (affiché en jaune) :

  • Fichiers DIFFÉRENTS → configs qui vont être modifiées
  • Fichiers NOUVEAUX → configs absentes sur la VM vierge (normal)
  • Aucune erreur rouge [ERRR] → tout est prêt

Étape 5 — Restaurer toutes les configurations

bash restore-soc.sh soc-config-2026-04-25_2159.tar.gz

Le script restaure dans l'ordre :

0/13 Réseau       → interfaces, hostname, SSH (port <SSH-PORT>), sysctl, exim4
1/13 nginx        → vhosts, SSL, snippets, GeoIP databases
2/13 CrowdSec     → config, parsers, scenarios, collections
3/13 Fail2ban     → jail.local, filters, actions
4/13 Suricata     → config + téléchargement règles ET (~90 000)
5/13 rsyslog      → config centrale logs
6/13 AppArmor     → profils nginx + suricata
7/13 UFW          → règles firewall
8/13 Scripts      → /opt/soc/, /usr/local/bin/, dashboard
9/13 Crons        → /etc/cron.d/ (11 tâches planifiées)
10/13 Systemd     → units custom (soc-report-trigger)
11/13 Compléments → AIDE, logrotate, GeoIP license, API keys, SSH keys
12/13 AIDE        → recalcul baseline intégrité

⚠️ Après BLOC 0 (réseau), le script redémarre SSH sur le port .
Votre session SSH actuelle (port 22) reste active jusqu'à sa fin.


Étape 6 — Rebooter

reboot

Le reboot applique : /etc/network/interfaces (IP statique) et /etc/hostname (srv-nginx).


Étape 7 — Reconnexion sur le bon port

Depuis Git Bash sur Windows (après le reboot) :

ssh -i ~/.ssh/id_nginx -p <SSH-PORT> root@<SRV-NGINX-IP>

Étape 8 — Validation finale

# Services actifs ?
systemctl is-active nginx crowdsec suricata fail2ban rsyslog
# Attendu : active × 5

# Crons en place ?
ls /etc/cron.d/
# Attendu : 11 fichiers

# CrowdSec opérationnel ?
cscli decisions list | head -5
cscli bouncers list

Accès dashboard SOC (depuis n'importe quel PC du LAN)

URL Description Disponible sans JARVIS ?
http://<SRV-NGINX-IP>:8080/ Dashboard SOC principal — ThreatScore, tuiles, Kill Chain ✅ Oui
http://<SRV-NGINX-IP>:8080/goaccess.html Rapport GoAccess — stats HTTP nginx temps réel ✅ Oui

Note : Si JARVIS (Windows ) est éteint, la tuile JARVIS affiche "OFFLINE" mais tout le reste du dashboard fonctionne normalement — CrowdSec, Suricata, bans, ThreatScore, Kill Chain, logs centraux.

Suivre ensuite la CHECKLIST-DEPLOY.md (61 points de validation).


En cas de problème — Rollback

Le script restore-soc.sh crée automatiquement une sauvegarde avant d'écraser quoi que ce soit :

/opt/backup-config/pre-restore-AAAA-MM-JJ_HHMM/

Pour restaurer un fichier spécifique :

cp /opt/backup-config/pre-restore-*/etc_nginx_nginx.conf /etc/nginx/nginx.conf

Pour rejouer un seul bloc :

bash restore-soc.sh archive.tar.gz --step nginx
bash restore-soc.sh archive.tar.gz --step crowdsec
bash restore-soc.sh archive.tar.gz --step crons

Récapitulatif des commandes (copier-coller)

# ─── Depuis Git Bash Windows ──────────────────────────────────────────
NEW_VM="<SRV-NGINX-IP>"
ARCHIVE="/path/to/backups/soc-config-AAAA-MM-JJ_HHMM.tar.gz"
DEPLOY="<YOUR-LOCAL-SOC-PATH>/DEPLOY"

ssh root@${NEW_VM} "mkdir -p /root/deploy-soc"
scp "${DEPLOY}/deploy-soc.sh" "${DEPLOY}/restore-soc.sh" root@${NEW_VM}:/root/deploy-soc/
scp "${ARCHIVE}" root@${NEW_VM}:/root/deploy-soc/

# ─── Depuis la nouvelle VM ────────────────────────────────────────────
ssh root@${NEW_VM}
cd /root/deploy-soc

bash deploy-soc.sh                                          # 1. paquets
bash restore-soc.sh soc-config-*.tar.gz --dry-run          # 2. simulation
bash restore-soc.sh soc-config-*.tar.gz                    # 3. restauration
reboot                                                      # 4. reboot

# ─── Depuis Git Bash Windows (après reboot) ───────────────────────────
ssh -i ~/.ssh/id_nginx -p <SSH-PORT> root@<SRV-NGINX-IP>           # 5. reconnexion

Guide créé le 2026-04-25 — archive v4 · 13 blocs

🖥️ Infrastructure & Sécurité 💻 Développement & Web 🤖 Intelligence Artificielle


Ollama

Anthropic

🔒 Projets proposés par 0xCyberLiTech · Développés en collaboration avec Claude AI (Anthropic) 🔒