Установка Kippo SSH Honeypot на 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 от непривилегированного пользователя и ограничьте исходящий трафик.
Критерии приёмки
- Kippo запускается без ошибок (./start.sh сохраняет процесс, проверка через tail логов).
- При подключении по SSH виден промпт sales:~#.
- Логи записываются в log/kippo.log, а скачанные файлы попадают в dl/.
- При пробросе порта 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/ в безопасной среде.
Полезные ссылки
- The Honeynet Project: http://www.honeynet.org/
- Honeypot (Wikipedia): http://en.wikipedia.org/wiki/Honeypot_(computing)
- Kippo Project: http://kippo.googlecode.com/
- CentOS: http://www.centos.org/
Итог
Kippo — удобный инструмент для сбора данных о SSH-атаках и изучения поведения злоумышленников. На CentOS 5.5 потребуется установка Python 2.6 и нескольких зависимостей. Разворачивайте в изолированной среде, настраивайте логирование и регулярно анализируйте собранные данные.
Важно: перед публикацией honeypot в интернет убедитесь в наличии средств мониторинга, ротации логов и мер по ограничению исходящего трафика.
Похожие материалы

Управление скоростью игр в Windows с MHS
XLOOKUP с несколькими критериями в Excel
Настройка rtGui для rTorrent

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