Гид по технологиям

Установка Kippo SSH Honeypot на CentOS 5.5

6 min read Информационная безопасность Обновлено 23 Sep 2025
Установка Kippo на CentOS 5.5
Установка Kippo на CentOS 5.5

Введение

Kippo — это «honeypot» средней интерактивности для SSH. Он логирует попытки перебора паролей и сохраняет всю последовательность команд и вводимых данных злоумышленника. Этот гайд показывает, как собрать и запустить Kippo на сервере CentOS 5.5.

Важно: я не даю гарантий, что всё сработает в вашей среде. Тестируйте в изолированной лаборатории.

Что нужно знать перед началом

  • CentOS 5.5 по умолчанию содержит Python 2.4. Kippo и некоторые зависимости требуют Python 2.6. Коротко: установите Python 2.6 и используйте команду python26 для запуска.
  • Kippo не должен запускаться под root. Для работы создайте обычного пользователя.
  • Сохраняйте журналы и скачанные файлы в отдельные каталоги, чтобы анализ был проще.

Требования

  • Доступ в интернет для скачивания исходников и пакетов.
  • Права root для установки RPM и настройки iptables.
  • Минимум: python26, setuptools, компилятор (gcc), dev-заголовки для Python, и библиотеки OpenSSL для сборки pycrypto.

Шаг 1 — Установка Python 2.6

CentOS поставляется с Python 2.4. Используйте RPM-пакеты для Python 2.6, например из руководства по RPM для RHEL5/CentOS5:

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

Важно:

  • Установите базовый пакет python26 и пакет для библиотек (libs) подходящей версии.
  • Для запуска используйте python26, а не python. Оригинальный Python 2.4 останется.
  • При установке пакетов через setuptools запускайте python26 setup.py install.

Шаг 2 — Установка зависимостей: Twisted, zope.interface, pycrypto, pyasn1

Twisted — событийно-ориентированный сетевой фреймворк на Python. Он нужен Kippo для работы с сетевыми соединениями.

Сборка и установка 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 — легковесный пакет интерфейсов, требуемый Twisted:

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 — криптографические примитивы для Python (нужны SSH-операциям):

cd /tmp
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 — реализация ASN.1 (BER/CER/DER), требуется некоторыми библиотеками:

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

Примечание: при сборке pycrypto могут потребоваться пакеты openssl-devel и gcc. Установите их через yum.

Шаг 3 — Создание обычного пользователя

Kippo не должен запускаться под root. Создайте отдельного пользователя:

useradd kippouser

Затем переключитесь на него для загрузки и настройки Kippo.

Шаг 4 — Скачивание исходников Kippo

Под созданным пользователем загрузите архив Kippo и распакуйте:

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

Шаг 5 — Настройка kippo.cfg

Отредактируйте файл конфигурации:

vi kippo.cfg

Ключевые опции (перевод и пояснения):

  • ssh_port = 2222 — порт, на котором слушает Kippo по умолчанию.
  • hostname = sales — имя хоста, отображаемое в строке приглашения.
  • log_path = log — каталог для логов (например log/kippo.log).
  • download_path = dl — куда сохранять полученные файлы (вредоносные загрузки).
  • contents_path = honeyfs — каталог с виртуальным содержимым файлов.
  • filesystem_file = fs.pickle — файл виртуальной FS в формате pickle.
  • txtcmds_path = txtcmds — простые текстовые команды (эмуляция вывода).
  • public_key / private_key — ключи сервера, создаются автоматически при отсутствии.
  • password = 123456 — начальный пароль root, будущие пароли сохраняются в {data_path}/pass.db.

Если вы хотите логировать в MySQL, раскомментируйте секцию [database_mysql] и укажите параметры подключения.

Шаг 6 — Запуск Kippo

Запустите стартовый скрипт из каталога kippo-0.5:

./start.sh

Данные Kippo по умолчанию будут писаться в log/kippo.log. Для наблюдения в реальном времени используйте:

tail -f log/kippo.log

Как сделать Kippo доступным из интернета

По умолчанию Kippo слушает порт 2222. Если вы хотите принимать входящие SSH-подключения на стандартном 22-м порту, но запускать Kippo от непривилегированного пользователя, пробросьте порт через iptables:

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

Замените IN_IFACE на имя интерфейса, например eth0.

Важно: при открытии honeypot в публичную сеть соблюдайте осторожность. Разграничьте сеть и применяйте мониторинг.

Тестирование установки

Подключитесь к серверу Kippo на порту 2222 (или 22, если вы пробросили порт):

ssh 127.0.0.1 -p 2222 -l root

Ожидаемый промпт после успешного входа:

sales:~#

Если видите промпт, значит виртуальная оболочка работает.

Логирование и анализ

  • Логи: log/kippo.log содержит текстовые записи.
  • Скачанные файлы сохраняются в dl/.
  • Для детального анализа используйте утилиты, которые парсят лог Kippo (есть готовые парсеры и проекты для визуализации).

Когда это НЕ сработает

  • Если вы не установили python26 и постоянно используете системный python (2.4), установка и запуск зависимостей завершатся с ошибкой.
  • Если отсутствуют dev-пакеты (gcc, openssl-devel), сборка pycrypto провалится.
  • На сильно защищённых хостах (SELinux в режиме enforcing без правил) Kippo может не иметь прав на открытие нужных портов или запись в директории.

Альтернативные подходы

  • Cowrie — форк Kippo с обновлениями и дополнительной функциональностью (рекомендуется для новых установок).
  • Dionaea — honeypot ориентированный на сбор вредоносных бинарников (Network-facing, не SSH-ориентированный).
  • Использовать контейнеры/VM для изоляции honeypot вместо запуска на «голой» системе.

Ментальные модели и эвристики

  • Отделяйте мониторинг и изоляцию: honeypot должен быть открыт для атак, но находиться в изолированной сети или VLAN.
  • Логируйте максимально подробно, но учитывайте объём: ротация логов и стратегия хранения важны.
  • Минимизируйте права: запускайте Kippo от непривилегированного пользователя и ограничьте исходящий трафик.

Критерии приёмки

  1. Kippo запускается без ошибок (./start.sh сохраняет процесс, проверка через tail логов).
  2. При подключении по SSH виден промпт sales:~#.
  3. Логи записываются в log/kippo.log, а скачанные файлы попадают в dl/.
  4. При пробросе порта 22 соединения перенаправляются на 2222.

Проверка:

ps aux | grep kippo
tail -n 50 log/kippo.log
ls -la dl/
iptables -t nat -L PREROUTING -n -v

Чек‑лист развёртывания (роль: администратор)

  • Установлен python26 и setuptools
  • Установлены gcc, openssl-devel
  • Установлены Twisted, zope.interface, pycrypto, pyasn1
  • Создан пользователь kippouser
  • Скачан и распакован kippo-0.5
  • Отредактирован kippo.cfg (путь к логам, порт, пароль)
  • Запущен ./start.sh и проверены логи
  • Настроен проброс порта (при необходимости) и проверена безопасность сети

Факт‑бокс

  • Минимальная версия Python: 2.6
  • Порт по умолчанию: 2222
  • Начальный пароль в примере: 123456

Риски и рекомендации по безопасности

  • Не запускайте honeypot в сети без изоляции. Используйте отдельный VLAN или DMZ.
  • Блокируйте исходящий трафик от honeypot, если не требуется его разрешать для эмуляции wget.
  • Регулярно анализируйте и удаляйте потенциально вредоносные файлы из dl/ в безопасной среде.

Полезные ссылки

Итог

Kippo — удобный инструмент для сбора данных о SSH-атаках и изучения поведения злоумышленников. На CentOS 5.5 потребуется установка Python 2.6 и нескольких зависимостей. Разворачивайте в изолированной среде, настраивайте логирование и регулярно анализируйте собранные данные.

Важно: перед публикацией honeypot в интернет убедитесь в наличии средств мониторинга, ротации логов и мер по ограничению исходящего трафика.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Herodotus: защита от банковского трояна на Android
Безопасность

Herodotus: защита от банковского трояна на Android

Включить новый Пуск в Windows 11
Windows

Включить новый Пуск в Windows 11

Панель полей сводной таблицы Excel — руководство
Excel

Панель полей сводной таблицы Excel — руководство

Включить новое меню «Пуск» в Windows 11 (KB5067036)
Windows 11

Включить новое меню «Пуск» в Windows 11 (KB5067036)

Дублирование Диспетчера задач в Windows 11: как исправить
Windows

Дублирование Диспетчера задач в Windows 11: как исправить

Как посмотреть историю просмотра Reels в Instagram
Социальные сети

Как посмотреть историю просмотра Reels в Instagram