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

Установка 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
Автор
Редакция

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

Управление скоростью игр в Windows с MHS
Гейминг

Управление скоростью игр в Windows с MHS

XLOOKUP с несколькими критериями в Excel
Excel

XLOOKUP с несколькими критериями в Excel

Настройка rtGui для rTorrent
Руководство

Настройка rtGui для rTorrent

Как восстановить отключённый аккаунт Instagram
Социальные сети

Как восстановить отключённый аккаунт Instagram

Установка Kippo на CentOS 5.5
Информационная безопасность

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

Остановите сканирование фотопотока приложениями
Приватность

Остановите сканирование фотопотока приложениями