Для кого: для администраторов, которые хотят поставить полноценный honeypot на внутренний сервер и направлять на него трафик с UDM Pro.
# 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
# Основные параметры, которые нужно изменить:
[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
# Если хотите несколько учётных записей, отредактируйте файл
nano etc/userdb.txt
# Формат: логин:пароль
root:123456
admin:admin
user:password
guest:guest
# Активируем виртуальное окружение (если не активировано)
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
# Создаём сервисный файл
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
# 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
# - И многое другое
# 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
/opt/cowrie/log/cowrie.log в текстовом виде./opt/cowrie/log/cowrie.json — их удобно отправлять в Elasticsearch (ELK).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
etc/cowrie.cfg есть секция [output_udp] — можно отправлять события на внешний UDP-сервер.
# Пример скрипта, который читает логи 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
Важно: honeypot — это инструмент сбора информации, а не средство прямой защиты. Он помогает понять, кто и как атакует, и даёт возможность блокировать злоумышленников ещё на этапе сканирования.
Комментарии
Пока нет комментариев. Будьте первым!