Категории
Установка и настройка Cowrie (SSH-ловушка)
02.07.2026 | из категории: Защита данных
Для кого: для администраторов, которые хотят поставить полноценный honeypot на внутренний сервер и направлять на него трафик с UDM Pro.
1. Что такое Cowrie и зачем он нужен
- Cowrie — это эмулятор SSH/Telnet сервера, который записывает все попытки подключения, логины, пароли и команды злоумышленников.
- Он не даёт реального доступа к системе, а имитирует уязвимую Linux-среду, собирая данные об атакующих.
- Устанавливается на отдельный сервер (Raspberry Pi, старый ПК, VPS) внутри вашей сети.
- После установки вы делаете Port Forwarding с WAN:22 на этот сервер, и все боты попадают в ловушку.
2. Системные требования
- Любой дистрибутив Linux (Debian/Ubuntu/Raspbian).
- Минимум 512 МБ ОЗУ, 1 ГБ дискового пространства.
- Python 3.6+ и pip.
- Желательно изолированный VLAN или отдельный IP внутри сети.
3. Пошаговая установка Cowrie на Debian/Ubuntu
# 1. Обновляем систему
sudo apt update && sudo apt upgrade -y
# 2. Устанавливаем зависимости
sudo apt install git python3 python3-venv python3-pip build-essential libssl-dev libffi-dev -y
# 3. Клонируем репозиторий Cowrie
cd /opt
sudo git clone https://github.com/cowrie/cowrie.git
sudo chown -R $USER:$USER cowrie
cd cowrie
# 4. Создаём виртуальное окружение Python
python3 -m venv cowrie-env
source cowrie-env/bin/activate
# 5. Устанавливаем зависимости внутри виртуального окружения
pip install --upgrade pip
pip install -r requirements.txt
# 6. Копируем конфигурационный файл
cp etc/cowrie.cfg.dist etc/cowrie.cfg
# 7. Редактируем конфигурацию
nano etc/cowrie.cfg
4. Базовая настройка cowrie.cfg
# Основные параметры, которые нужно изменить:
[ssh]
# Порт, на котором будет слушать Cowrie (стандартный 22)
listen_port = 22
# Интерфейс, на котором слушаем (0.0.0.0 — все интерфейсы)
listen_address = 0.0.0.0
# Файл с логами
logfile = log/cowrie.log
# Логирование всех команд в отдельный файл
cmdlog = True
[honeypot]
# Имя хоста, которое будет видно в приглашении shell
hostname = ubuntu-server
# Данные для входа (логин/пароль, которые будут принимать)
# Можно задать несколько пар
[user_db]
username = root
password = 123456
5. Создание базы пользователей (логины/пароли)
# Если хотите несколько учётных записей, отредактируйте файл
nano etc/userdb.txt
# Формат: логин:пароль
root:123456
admin:admin
user:password
guest:guest
6. Запуск Cowrie
# Активируем виртуальное окружение (если не активировано)
source cowrie-env/bin/activate
# Запуск в фоновом режиме
bin/cowrie start
# Проверка статуса
bin/cowrie status
# Просмотр логов в реальном времени
tail -f log/cowrie.log
tail -f log/cowrie.log | grep -i "login"
# Остановка
bin/cowrie stop
7. Автозапуск Cowrie при старте системы (systemd)
# Создаём сервисный файл
sudo nano /etc/systemd/system/cowrie.service
# Содержимое:
[Unit]
Description=Cowrie SSH Honeypot
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/opt/cowrie
ExecStart=/opt/cowrie/bin/cowrie start
ExecStop=/opt/cowrie/bin/cowrie stop
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
# Активируем сервис
sudo systemctl daemon-reload
sudo systemctl enable cowrie
sudo systemctl start cowrie
sudo systemctl status cowrie
8. Настройка Port Forwarding на UDM Pro
- Settings → Firewall & Security → Port Forwarding
- Создаём правило:
- Name: Cowrie_SSH
- WAN Port: 22
- Forward IP: IP-адрес сервера с Cowrie (например, 172.16.99.50)
- Forward Port: 22
- Protocol: TCP
- Enabled: ✅
- Важно: реальный SSH на внутреннем сервере должен быть на другом порту (например, 10022), чтобы Cowrie не конфликтовал.
9. Дополнительные honeypot-решения
- Kippo — предшественник Cowrie (устаревший, но работает).
- Dionaea — эмулирует множество сервисов: SMB, FTP, HTTP, SIP, и другие.
- Glastopf — веб-ловушка (эмулирует уязвимые веб-приложения).
- Honeyd — виртуальный honeypot, эмулирует целые сети.
- T-Pot — целая платформа с несколькими honeypot-сервисами в Docker-контейнерах.
- OpenCanary — легковесный honeypot с поддержкой многих протоколов (HTTP, FTP, SSH, SMB).
10. Установка T-Pot (все в одном)
# T-Pot — это набор honeypot-сервисов (Cowrie, Dionaea, Glastopf и др.)
# Требует Docker и минимум 4 ГБ ОЗУ
# Установка Docker
curl -fsSL https://get.docker.com | bash
# Установка T-Pot
git clone https://github.com/telekom-security/tpotce
cd tpotce
./install.sh --type=standard
# После установки доступны:
# - Web-интерфейс: https://IP:64297
# - SSH-ловушка на порту 22
# - И многое другое
11. Установка OpenCanary (простой honeypot)
# OpenCanary — лёгкий honeypot с минимальными требованиями
sudo apt install python3-pip python3-venv -y
git clone https://github.com/thoughtworks/opencanary
cd opencanary
python3 -m venv env
source env/bin/activate
pip install -r requirements.txt
pip install .
# Создаём конфигурацию
opencanaryd --copyconfig
nano /etc/opencanary.conf
# Запуск
opencanaryd --start
12. Сбор и анализ логов
- Логи Cowrie хранятся в
/opt/cowrie/log/cowrie.logв текстовом виде. - Также есть JSON-логи:
/opt/cowrie/log/cowrie.json— их удобно отправлять в Elasticsearch (ELK). - Можно настроить отправку логов через syslog на внешний сервер.
- Пример анализа с помощью
grep:
# Показать все успешные логины
grep "login attempt" /opt/cowrie/log/cowrie.log
# Показать все выполненные команды
grep "command:" /opt/cowrie/log/cowrie.log
# Статистика по IP-адресам
grep "New connection" /opt/cowrie/log/cowrie.log | awk '{print $NF}' | sort | uniq -c | sort -nr
13. Интеграция с UDM Pro: автобан IP из Cowrie
- Когда Cowrie фиксирует подозрительную активность, он может вызывать внешний скрипт.
- В файле
etc/cowrie.cfgесть секция[output_udp]— можно отправлять события на внешний UDP-сервер. - Или просто парсить логи Cowrie и банить IP на UDM через скрипт.
# Пример скрипта, который читает логи Cowrie и банит IP через UDM API
#!/bin/bash
tail -n 100 /opt/cowrie/log/cowrie.log | \
grep "login attempt" | \
awk '{print $NF}' | \
sort -u | \
while read IP; do
curl -X POST "https://UDM_IP/api/firewall/block" \
-H "Authorization: Basic ..." \
-d "{\"ip\":\"$IP\"}"
done
14. Безопасность самого honeypot-сервера
- Изолируйте сервер в отдельном VLAN, чтобы в случае компрометации злоумышленник не попал в основную сеть.
- Настройте фаервол на самом сервере: разрешайте только входящий порт 22 (и 23 для Telnet).
- Не ставьте никаких паролей по умолчанию, не используйте реальные учётные данные.
- Регулярно обновляйте Cowrie и операционную систему.
- Ограничьте исходящий трафик с honeypot-сервера (чтобы он не мог использоваться для атак на другие сети).
15. Альтернатива: облачные honeypot-сервисы
- Shodan Honeypot — позволяет развернуть honeypot в облаке за пару кликов.
- Greynoise — анализирует трафик и показывает, какие IP являются ботами.
- Censys — даёт информацию о сканирующих IP.
- Это хороший вариант, если нет возможности выделить отдельный сервер.
📌 Итоговый план действий
- ☑ Выделить сервер (физический или виртуальный) для honeypot.
- ☑ Установить Cowrie (или T-Pot/OpenCanary).
- ☑ Настроить port forwarding на UDM Pro с WAN:22 на honeypot.
- ☑ Перенести реальный SSH на другой порт (10022).
- ☑ Настроить сбор и анализ логов.
- ☑ Интегрировать с автобаном (скрипт или API).
- ☑ Изолировать honeypot-сервер в отдельный VLAN.
- ☑ Регулярно обновлять honeypot и просматривать логи.
Важно: honeypot — это инструмент сбора информации, а не средство прямой защиты. Он помогает понять, кто и как атакует, и даёт возможность блокировать злоумышленников ещё на этапе сканирования.