Guide des technologies

Installer Kippo SSH Honeypot sur CentOS 5.5

5 min read Sécurité Mis à jour 23 Sep 2025
Installer Kippo SSH Honeypot sur CentOS 5.5
Installer Kippo SSH Honeypot sur CentOS 5.5

TL;DR

Kippo est un honeypot SSH à interaction moyenne qui enregistre les attaques par force brute et la session complète de l’attaquant. Ce guide explique l’installation sur CentOS 5.5, l’installation de Python 2.6 et des dépendances (Twisted, Zope Interface, pycrypto, pyasn1), la création d’un utilisateur non-root, la configuration et les tests. Pour un déploiement en production, suivez les consignes de sécurité et préférez des alternatives modernes si possible.

Important : CentOS 5.5 et Python 2.x sont obsolètes. N’utilisez ceci que pour des environnements isolés de test ou de recherche. Ne déployez pas sur des systèmes de production non isolés.

Introduction

Kippo est un honeypot SSH conçu pour capturer des attaques par force brute et enregistrer l’interaction shell complète de l’attaquant. Il s’agit d’un honeypot à interaction moyenne, inspiré de Kojoney. Ce tutoriel décrit l’installation de Kippo sur un serveur CentOS 5.5 en compilant les dépendances nécessaires et en configurant l’environnement.

Objectif principal et variantes de recherche

Objectif principal : installer Kippo SSH honeypot sur CentOS 5.5. Variantes liées : configurer Kippo CentOS, déployer honeypot SSH, tutoriel Kippo, Kippo Python 2.6, sécurité honeypot.

Prérequis

  • Un serveur CentOS 5.5 avec accès root.
  • Accès réseau pour télécharger paquets depuis Internet.
  • Connaissance de base de Linux, SSH et commandes shell.
  • Comprendre les risques et isoler le honeypot (réseau NAT ou VLAN).

Notes de sécurité

  • Ne lancez pas Kippo en tant que root. Créez un utilisateur dédié.
  • Isolez le honeypot du réseau de production. Utilisez des règles de filtrage et de journalisation strictes.
  • Surveillez les connexions sortantes et limitez-les.

Installation de Python 2.6

CentOS 5.x fournit Python 2.4 par défaut. Kippo nécessite Python 2.6. Installez les RPMs adaptés en suivant ce tutoriel :

http://www.geekymedia.com/tech-articles/rhel5-centos5-rpms-for-python-2-5-and-2-6/.

Points importants :

  • Installez au minimum les paquets base et libs pour la version souhaitée.
  • Lancez Python 2.6 avec la commande python26 (python reste sur 2.4).
  • Pour installer des paquets avec setuptools, utilisez python26 setup.py install.

Installation de Twisted, Zope Interface, Pycrypto et pyasn1

Twisted est un moteur réseau événementiel en Python. Zope Interface fournit des interfaces, pycrypto des primitives cryptographiques, et pyasn1 gère ASN.1.

Exécutez les commandes suivantes telles qu’elles apparaissent (exemple pour Twisted) :

cd /tmp  
wget http://twistedmatrix.com/Releases/Twisted/10.2/Twisted-10.2.0.tar.bz2  
tar -xvf Twisted-10.2.0.tar.bz2  
cd Twisted-10.2.0  
python26 setup.py build  
python26 setup.py install

Zope Interface :

cd /tmp  
wget http://www.zope.org/Products/ZopeInterface/3.3.0/zope.interface-3.3.0.tar.gz  
tar -xvf zope.interface-3.3.0.tar.gz  
cd zope.interface-3.3.0  
python26 setup.py build  
python26 setup.py install

Pycrypto :

cd /tmp  
wget wget http://www.amk.ca/files/python/crypto/pycrypto-2.0.1.tar.gz  
tar -xvf pycrypto-2.0.1.tar.gz  
cd pycrypto-2.0.1  
python26 setup.py build  
python26 setup.py install

pyasn1 :

cd /tmp  
wget http://sourceforge.net/projects/pyasn1/files/pyasn1-devel/0.0.12a/pyasn1-0.0.12a.tar.gz/download  
tar -xvf pyasn1-0.0.12a.tar.gz  
cd pyasn1-0.0.12a  
python26 setup.py build  
python26 setup.py install

Note : conservez python26 pour toutes les commandes d’installation Python.

Créer un utilisateur non-root

Kippo ne doit pas être exécuté en tant que root. Créez un utilisateur dédié :

useradd kippouser

Télécharger la source de Kippo

Téléchargez la version source de Kippo depuis le dépôt indiqué :

su - kippouser   
wget http://kippo.googlecode.com/files/kippo-0.5.tar.gz  
tar -xvf kippo-0.5.tar.gz  
cd kippo-0.5

Configurer Kippo

Éditez le fichier de configuration principal kippo.cfg pour définir le port, les chemins, et les clés.

vi kippo.cfg

Contenu d’exemple du fichier de configuration (conserver tel quel si vous l’avez déjà) :

#
# Kippo configuration file (kippo.cfg)
#
[honeypot]
# IP addresses to listen for incoming SSH connections.
#
# (default: 0.0.0.0) = any address
#ssh_addr = 0.0.0.0
# Port to listen for incoming SSH connections.
#
# (default: 2222)
ssh_port = 2222
# Hostname for the honeypot. Displayed by the shell prompt of the virtual
# environment.
#
# (default: sales)
hostname = sales
# Directory where to save log files in.
#
# (default: log)
log_path = log
# Directory where to save downloaded (malware) files in.
#
# (default: dl)
download_path = dl
# Directory where virtual file contents are kept in.
#
# This is only used by commands like 'cat' to display the contents of files.
# Adding files here is not enough for them to appear in the honeypot - the
# actual virtual filesystem is kept in filesystem_file (see below)
#
# (default: honeyfs)
contents_path = honeyfs
# File in the python pickle format containing the virtual filesystem. 
#
# This includes the filenames, paths, permissions for the whole filesystem,
# but not the file contents. This is created by the createfs.py utility from
# a real template linux installation.
#
# (default: fs.pickle)
filesystem_file = fs.pickle
# Directory for miscellaneous data files, such as the password database.
#
# (default: data_path)
data_path = data
# Directory for creating simple commands that only output text.
#
# The command must be placed under this directory with the proper path, such
# as:
#   txtcmds/usr/bin/vi
# The contents of the file will be the output of the command when run inside
# the honeypot.
#
# In addition to this, the file must exist in the virtual
# filesystem {filesystem_file}
#
# (default: txtcmds)
txtcmds_path = txtcmds
# Public and private SSH key files. If these don't exist, they are created
# automatically.
#
# (defaults: public.key and private.key)
public_key = public.key
private_key = private.key
# Initial root password. Future passwords will be stored in
# {data_path}/pass.db
#
# (default: 123456)
password = 123456
# IP address to bind to when opening outgoing connections. Used exclusively by
# the wget command.
#
# (default: not specified)
#out_addr = 0.0.0.0
# Sensor name use to identify this honeypot instance. Used by the database
# logging modules such as mysql.
#
# If not specified, the logging modules will instead use the IP address of the
# connection as the sensor name.
#
# (default: not specified)
#sensor_name=myhostname
# Fake address displayed as the address of the incoming connection.
# This doesn't affect logging, and is only used by honeypot commands such as
# 'w' and 'last'
#
# If not specified, the actual IP address is displayed instead (default
# behaviour).
#
# (default: not specified)
#fake_addr = 192.168.66.254
# MySQL logging module
#
# Database structure for this module is supplied in doc/sql/mysql.sql
#
# To enable this module, remove the comments below, including the
# [database_mysql] line.
#[database_mysql]
#host = localhost
#database = kippo
#username = kippo
#password = secret

Ajustez ssh_port, hostname et chemins selon vos besoins.

Démarrer Kippo

./start.sh

Le processus s’exécute en arrière-plan et écrit les logs dans log/kippo.log par défaut.

Visualiser les logs

tail -f log/kippo.log

Rendre Kippo accessible depuis l’extérieur

Par défaut, Kippo écoute sur le port 2222. Pour rediriger le port 22 vers 2222 sur Linux, utilisez iptables :

iptables -t nat -A PREROUTING -i IN_IFACE -p tcp --dport 22 -j REDIRECT --to-port 2222

Remplacez IN_IFACE par l’interface réelle (par exemple eth0). Assurez-vous que cette redirection et l’ouverture du port correspondent à votre politique de sécurité et à l’isolation réseau.

Tests d’acceptation

  • Connexion SSH locale :
ssh 127.0.0.1 -p 2222 -l root
  • Le prompt attendu après connexion réussie :
sales:~#

Critères de réussite :

  • Le processus Kippo démarre sans erreur.
  • Les tentatives de connexion sont journalisées dans log/kippo.log.
  • Les commandes et téléchargements sont capturés dans les répertoires configurés.

Cas où cela échoue et alternatives

  • Si votre distribution est plus récente, préférez Cowrie (fork moderne de Kippo) qui supporte Python 3 et a des améliorations de sécurité et de journalisation.
  • Si vous ne pouvez pas compiler les dépendances, installez des paquets précompilés ou utilisez des conteneurs (Docker) avec images préparées.
  • Si le honeypot doit analyser du malware, isolez strictement le réseau et utilisez des environnements sandbox.

Méthodologie de déploiement sécurisé (mini-playbook)

  1. Préparer un réseau isolé (VLAN, NAT) et un serveur de capture des logs séparé.
  2. Installer dépendances et Kippo sur un hôte dédié non productif.
  3. Configurer kippo.cfg et générer clés publiques/privées.
  4. Rediriger le port public vers l’hôte honeypot en NAT ou via iptables.
  5. Démarrer Kippo et vérifier les logs.
  6. Mettre en place alertes pour connexions suspectes et sauvegarde régulière des logs.

Checklist pour les rôles

  • Administrateur système :
    • Isoler le réseau du honeypot.
    • Configurer iptables et NAT.
    • Assurer rotation et archivage des logs.
  • Analyste sécurité :
    • Vérifier l’intégrité des captures.
    • Examiner les sessions enregistrées.
    • Extraire échantillons de malware dans une sandbox.
  • Développeur / Mainteneur :
    • Mettre à jour Kippo/Cowrie et dépendances.
    • Documenter les modifications de configuration.

Glossaire (1 ligne chacun)

  • Honeypot : service factice destiné à attirer et enregistrer les attaques.
  • SSH : protocole sécurisé d’accès distant.
  • Cowrie : fork moderne et maintenu de Kippo, compatible Python 3.

Considérations légales et vie privée

  • Conservez seulement les données nécessaires à l’analyse.
  • Respectez la législation locale sur la conservation de données et la vie privée.
  • Ne partagez pas d’informations personnelles collectées sans conformité juridique.

Alternatives et recommandations

  • Pour de nouveaux déploiements, privilégiez Cowrie (support Python 3, actif).
  • Pour la recherche, documentez les versions exactes et utilisez des snapshots système.

Résumé

Kippo reste un outil utile pour la recherche sur les attaques SSH, mais il repose sur un écosystème ancien (Python 2.x, CentOS 5.5). Si vous décidez de l’utiliser, isolez-le, mettez en place des contrôles d’accès stricts et préférez Cowrie pour des projets à long terme.

Liens utiles

The Honeynet Project: http://www.honeynet.org/
Honeypot: http://en.wikipedia.org/wiki/Honeypot_(computing)
Kippo Project: http://kippo.googlecode.com/
Iran Honeynet Project: http://www.honeynet.ir/
CentOS: http://www.centos.org/

Auteur
Édition

Matériaux similaires

XLOOKUP avec plusieurs critères dans Excel
Excel

XLOOKUP avec plusieurs critères dans Excel

Configurer rtGui pour rTorrent
Tutoriel

Configurer rtGui pour rTorrent

Récupérer un compte Instagram désactivé
Réseaux sociaux

Récupérer un compte Instagram désactivé

Installer Kippo SSH Honeypot sur CentOS 5.5
Sécurité

Installer Kippo SSH Honeypot sur CentOS 5.5

Bloquer les apps qui scannent votre pellicule
Vie privée

Bloquer les apps qui scannent votre pellicule

Appel en attente iOS 16 : résoudre le problème
iOS

Appel en attente iOS 16 : résoudre le problème