Project Oxygen & Ideo-LabIDEO LAB Dashboard 2026
Firewall + Observabilité réseau (bash)

2 scripts “safe” : protection HTTPS + analyse des IP actives

Ce guide documente deux scripts bash complémentaires : 1) Protection HTTPS (iptables, limites “douces”) et 2) Analyse des IP actives (ss/netstat : top IP, états TCP, /24, export CSV).

iptables (read + add only) HTTPS 443 connlimit rate-limit (NEW) ss / netstat Top IP States (SYN_RECV/ESTABLISHED) Top /24 CSV export
Philosophie “prod-safe” :
  • Le script firewall n’efface rien : il ajoute 2 protections ciblées sur 443.
  • Le script d’analyse est lecture seule : il ne modifie rien, il observe.
  • On privilégie des règles “humain-friendly” : un navigateur normal n’ouvre pas 50 connexions simultanées.

Étape 1 — Installation (Ubuntu)

1) Dépendances

iptables
sudo apt update
                        sudo apt install -y iptables
ss (iproute2)
sudo apt install -y iproute2
Note : si tu n’as pas ss, le script d’analyse bascule sur netstat (package net-tools).
netstat (optionnel)
sudo apt install -y net-tools

2) Placement des scripts

Arborescence
/opt/ideolab/scripts/
                ideolab_https_protection.sh
                ideolab_active_ips.sh

3) Droits d’exécution

chmod
cd /opt/ideolab/scripts
                chmod +x ideolab_https_protection.sh ideolab_active_ips.sh

4) Option IDEO-Lab : download via static

Si tu veux exposer un “Download .sh” dans tes pages, copie aussi les scripts dans static/.
# (Optionnel) Place une copie des scripts ici :
                static/toolbox/ideolab_https_protection.sh
                static/toolbox/ideolab_active_ips.sh

Script 1 — ideolab_https_protection.sh (iptables)

Ce script ajoute deux protections ciblées sur 443 : limite de connexions simultanées par IP + limite de nouvelles connexions par minute.

Important : ce script doit être lancé en sudo (iptables modifie le firewall). Il n’efface pas tes règles : il ajoute seulement si elles n’existent pas.
Run
sudo /opt/ideolab/scripts/ideolab_https_protection.sh

Ce que le script fait exactement

  1. Autorise les connexions déjà établies (RELATED,ESTABLISHED).
  2. Bloque l’excès si une IP ouvre > 20 connexions simultanées sur 443.
  3. Autorise les connexions NEW sur 443 à un rythme max 30/min (burst 50).
  4. Affiche la table INPUT avec numéros de lignes (pour vérifier et/ou undo).
Check rules
sudo iptables -L INPUT -n --line-numbers

Undo (revenir en arrière proprement)

Undo safe : on supprime seulement les lignes ajoutées, via leurs numéros (pas de flush global).
Undo (manuel)
# 1) Voir les regles et noter les numéros
                sudo iptables -L INPUT -n --line-numbers

                # 2) Supprimer une regle par son numéro (exemple)
                sudo iptables -D INPUT 10
                sudo iptables -D INPUT 11

Script 2 — ideolab_active_ips.sh (analyse IP actives)

Ce script observe les connexions TCP et produit un reporting : Top IP, répartition des états, top IP par état, et top /24 (spray multi-IP). Il exporte aussi un CSV.

Lecture seule : aucune modification réseau. Tu peux l’exécuter sans sudo.

Usage rapide

All ports
/opt/ideolab/scripts/ideolab_active_ips.sh
Port 443
/opt/ideolab/scripts/ideolab_active_ips.sh 443

Focus destination (si multi-IP locales)

Dst IP filter (optional)
# Ex: si ton serveur a plusieurs IP locales, filtre sur celle du service
                /opt/ideolab/scripts/ideolab_active_ips.sh 443 172.31.28.54

Comment lire les résultats

  1. TOP IPs : qui ouvre le plus de connexions (suspects évidents).
  2. STATES :
    • SYN_RECV élevé → suspicion flood / handshake non terminé
    • ESTABLISHED énorme à débit nul → keep-alive abuse / bots
    • TIME_WAIT massif → churn de connexions (trafic agressif)
  3. TOP /24 : attaque “spray” (plein d’IP d’un même bloc).
  4. CSV : fichier active_ips_YYYYMMDD_HHMMSS.csv pour historiser / comparer.

FAQ / Dépannage

1) “Je vois plein d’IP mais le site répond”

Normal : beaucoup d’IP peuvent être des crawlers/scanners. Ce qui compte, c’est : nb de connexions, états TCP, et stabilité CPU/RAM/workers.

2) “Le script d’analyse dit: need ss or netstat”

Installe iproute2 (recommandé) ou net-tools (fallback).

3) “Après firewall, j’ai peur de casser le site”

Vérifie la table INPUT, et si besoin retire les règles par numéro (undo). Évite les iptables -F (flush global) en prod.

4) “Les règles disparaissent au reboot”

C’est normal selon ta config. Voir la modal “Persistance au reboot”.