Skip to content

toruke/HoneyCorr_TFE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🍯 HoneyCorr TFE

Déploiement automatisé d'un honeypot via OpenTofu + Ansible sur Proxmox.

OpenTofu Ansible Proxmox Git Linux Licence Codeberg GitHub

git clone → tofu apply → ansible-playbook → honeypot opérationnel

Prérequis

  • Un serveur Proxmox avec accès API
  • OpenTofu installé sur votre machine (voir ci-dessous)
  • Une paire de clés SSH générée sur votre poste

1. Installer OpenTofu

Debian / Ubuntu

# Télécharger le script d'installation
curl --proto '=https' --tlsv1.2 -fsSL https://get.opentofu.org/install-opentofu.sh -o install-opentofu.sh

# Donner les droits d'exécution
chmod +x install-opentofu.sh

# Lancer l'installation
./install-opentofu.sh --install-method deb

# Nettoyer
rm -f install-opentofu.sh

Pour toute autre distribution, consultez la documentation officielle.


2. Cloner le projet

git clone https://codeberg.org/ben1348/HoneyCorr_TFE.git
cd HoneyCorr_TFE

3. Configurer les variables OpenTofu

Copiez le fichier générique et remplissez-le avec vos informations :

cp opentofu/terraform.tfvars.generic opentofu/terraform.tfvars

Éditez ensuite terraform.tfvars avec les valeurs suivantes :

Variable Description
proxmox_url URL de votre serveur Proxmox (ex: https://10.1.0.10:8006)
proxmox_token Token API de votre utilisateur Proxmox
proxmox_node Nom du nœud Proxmox cible
vms Dictionnaire des VMs à créer (voir exemple ci-dessous)
ssh_key Contenu de votre clé publique SSH (~/.ssh/id_rsa.pub)
vm_user Nom d'utilisateur à créer sur les VMs

Exemple de terraform.tfvars

proxmox_url   = "your url"
proxmox_token = "userproxmox@pve!yourtoken"
proxmox_node  = "yourname"

vms = {
  "honeypots10" = { vm_id = 100, ip = "10.1.10.10", gateway = "10.1.10.254", cores = 1, memory = 1024, vlan_id = 10 }
  "honeypots11" = { vm_id = 101, ip = "10.1.10.11", gateway = "10.1.10.254", cores = 1, memory = 1024, vlan_id = 10 }
  "honeypots12" = { vm_id = 102, ip = "10.1.10.12", gateway = "10.1.10.254", cores = 1, memory = 1024, vlan_id = 10 }
  "honeypots20" = { vm_id = 200, ip = "10.1.20.10", gateway = "10.1.20.254", cores = 1, memory = 1024, vlan_id = 20 }
  "honeypots30" = { vm_id = 300, ip = "10.1.30.10", gateway = "10.1.30.254", cores = 1, memory = 1024, vlan_id = 30 }
}

ssh_key = "your public key"
vm_user = "honeycorr"

⚠️ Le fichier terraform.tfvars est listé dans le .gitignore et ne sera jamais commité. Ne partagez jamais votre token Proxmox.


4. Déployer les VMs avec OpenTofu

# Initialiser OpenTofu
tofu init

# Vérifier le plan
tofu plan

# Appliquer
tofu apply

5. Configurer les honeypots avec Ansible

cd ansible

# Vérifier la connectivité
ansible -i inventory/hosts.ini all -m ping

# Lancer le playbook
ansible-playbook -i inventory/hosts.ini playbooks/honeypots.yml

Structure du projet

HoneyCorr_TFE/
├── main.tf                      # VMs Proxmox (ton code actuel)
├── ansible.tf                   # null_resource qui trigger Ansible
├── variables.tf
├── terraform.tfvars
├── templates/
│   ├── cloud-init.yaml.tftpl
│   └── inventory.ini.tftpl      # Template inventaire
└── ansible/
    ├── inventory.ini             # Généré par OpenTofu
    ├── ansible.cfg
    ├── playbooks/
    │   └── site.yml              # Entry point
    └── roles/
        ├── honeypot/             # Déploie les faux services
        ├── log_collector/        # Configure Promtail → Loki → Grafana
        └── firewall_sync/        # Envoie les IPs au firewall

Licence

Ce projet est réalisé dans le cadre d'un TFE (Travail de Fin d'Études).

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages