Skip to content

herve-mtp/Honeypot-SSH-HTTP-Docker-Systemd-

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Installeur Honeypot SSH + HTTP (Docker + Systemd) – 2025

Ce script Bash interactif permet de configurer automatiquement un environnement de honeypot sécurisé et dockerisé, incluant :

  • Déplacement du vrai serveur SSH vers le port 2200
  • Redirection du port 22 vers un faux serveur SSH (honeypot)
  • Déploiement du honeypot SSH/HTTP dans Docker
  • Intégration systemd (optionnelle) pour lancement automatique
  • Logs & analyse IP centralisés

Ce script est destiné à des utilisateurs avancés ayant un accès root à leur serveur.

Fonctionnalités du script

Sécurisation du SSH :

  • Déplacement du SSH vers le port 2200
  • Option de désactivation des connexions par mot de passe (clé SSH obligatoire)
  • Vérification que la connexion SSH sur le nouveau port fonctionne avant de modifier les règles
  • Configuration de iptables pour rediriger le port 22 vers un honeypot (2222 par défaut)

Déploiement Docker du Honeypot :

  • Vérifie et installe :
    • Docker
    • Docker Compose
  • Monte un conteneur avec :
    • Un faux serveur SSH (honeypot_ssh.py)
    • Un faux serveur HTTP (honeypot_http.py)
  • Analyse les IPs avec analyse_ip.py et génère un fichier malicious_ips.json
  • Création des dossiers :
    • logs/
    • rapports/

Intégration systemd (optionnelle) :

  • Création d’un service honeypot.service
  • Lancement automatique au démarrage

Lancement du script :

chmod +x install_honeypot.sh
./install_honeypot.sh

Le script vous posera des questions interactives à chaque étape critique (déplacement SSH, installation Docker, etc.).

Pré-requis :
> Serveur Debian/Ubuntu avec accès root (sudo)
> Connexion SSH fonctionnelle
> Port 2200 libre (ou un autre pour SSH réel)

Le projet contient :
   > docker-compose.yml
   >Un dossier app/ avec les fichiers :
            > main.py
            > honeypot_ssh.py
            > honeypot_http.py
            > analyse_ip.py
            > requirements.txt
			
Intégration avec AbuseIPDB (API de détection d’IP malveillantes) :
Le honeypot peut automatiquement interroger et signaler les IPs malveillantes en utilisant l’API AbuseIPDB			
		
Fonctionnalités :
> Analyse en temps réel des IPs détectées par le honeypot
> Calcul du niveau de dangerosité (abuseConfidenceScore)
> Sauvegarde des IPs dangereuses dans : rapports/malicious_ips.jsonl
> Signalement automatique à AbuseIPDB via l’API /report

Configuration requise
Pour activer cette intégration, il faut :
> Créer un compte sur AbuseIPDB.com
> Récupérer votre clé API personnelle
> Définir la variable d’environnement suivante : export ABUSEIPDB_API_KEY="votre_cle_api_ici"

Ajoutez cette ligne à votre ~/.bashrc ou ~/.zshrc pour la rendre permanente :
echo 'export ABUSEIPDB_API_KEY="votre_cle_api_ici"' >> ~/.bashrc
source ~/.bashrc

Fichiers concernés :
> app/rapport.py — Génère un rapport CSV à partir des données JSON
> Autres scripts utilisant la fonction analyze_ip() (ex. honeypot_ssh.py, main.py, etc.)
	
Score de confiance
Le honeypot considère une IP comme dangereuse si son score est supérieur à 50 :

Score	Interprétation
0-50	IP probablement bénigne
51-100	IP potentiellement malveillante

Exemple de ligne dans malicious_ips.jsonl :

{
  "ipAddress": "203.0.113.42",
  "abuseConfidenceScore": 89,
  "countryCode": "RU",
  "isp": "MaliciousHoster",
  "domain": "evil.example.com"
}


Remarques :
> Ne publiez jamais votre clé API dans un dépôt public
> L’API a des limites selon votre plan (gratuit ou payant)
> En cas d'erreur API, le script affiche un message clair
	

Arborescence :
.
├── install_honeypot.sh             # Script d'installation principal
├── docker-compose.yml              # Configuration Docker du honeypot
├── logs/                           # Dossier où sont stockés les logs du honeypot
├── rapports/                       # Dossier des rapports IP (JSONL + CSV)
│   ├── malicious_ips.jsonl         # IPs malveillantes détectées (brut)
│   └── malicious_ips_report.csv    # Rapport CSV analysé depuis le JSONL
├── app/                            # Code source Python du honeypot
│   ├── main.py                     # Lanceur principal du honeypot
│   ├── honeypot_ssh.py             # Faux serveur SSH
│   ├── honeypot_http.py            # Faux serveur HTTP
│   ├── analyse_ip.py               # (Ancien nom) Analyse IP - (optionnel)
│   └── rapport.py                  # Script de génération de rapport CSV
└── README.md                       # Documentation du projet


Résultat attendu après exécution :
> SSH réel accessible via : ssh -p 2200 utilisateur@ip
> Honeypot SSH actif sur le port 22 (redirigé vers 2222 par défaut)
> Honeypot HTTP actif sur : http://localhost:8080
> Logs dans ./logs/
> IPs malveillantes dans ./rapports/malicious_ips.json
> Conteneur Docker actif nommé honeypot
			
_____________________________________________

>>> Génération de rapports d'IPs malveillantes (rapport.py)
Ce script Python optionnel permet d’analyser les IPs enregistrées par le honeypot et de produire un rapport CSV filtré et trié selon leur score de dangerosité.

Fonctionnalités :
- Lecture du fichier rapports/malicious_ips.jsonl
- Tri des IPs selon leur abuseConfidenceScore (seuil configurable)
- Ignorer les IPs peu suspectes (score ≤ 50 par défaut)
- Génération d’un rapport CSV lisible : rapports/malicious_ips_report.csv
- Affichage des IPs à risque directement dans le terminal

> Exécution manuelle: python3 app/rapport.py
Assure-toi que le fichier malicious_ips.jsonl existe et contient des lignes valides au format JSON.

Fichier de sortie :
> Chemin : rapports/malicious_ips_report.csv
> Colonnes :
       > ipAddress
       > abuseConfidenceScore
       > countryCode
       > usageType
       > isp
       > domain
	   
Exemple de sortie terminal :

 Rapport - IPs malveillantes détectées : 89
 IPs à risque (score > 50) : 12

 IP : 45.33.32.156 | Score : 100 | Pays : US
 IP : 103.21.244.0 | Score : 85 | Pays : IN

 Rapport CSV exporté vers : rapports/malicious_ips_report.csv
	   
Automatisation possible (optionnelle) :
Tu peux automatiser ce rapport :
> Via une tâche cron pour une exécution quotidienne
> Ou avec un timer systemd si tu veux éviter cron	   

Auteur: Herve-mtp

About

Ce script Bash interactif permet de configurer automatiquement un environnement de honeypot sécurisé et dockerisé

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors