Анализ внешних угроз
  • Python 82.6%
  • Rust 17.4%
Find a file
2026-01-05 22:20:18 +03:00
rust Загрузить файлы в «rust» 2025-10-18 22:12:13 +03:00
blacklist.txt Обновить blacklist.txt 2025-09-28 18:52:24 +03:00
detect_scan_port.py Загрузить файлы в «/» 2026-01-05 22:20:18 +03:00
honeypot.service Загрузить файлы в «/» 2025-09-06 10:18:07 +03:00
keywords.txt Загрузить файлы в «/» 2025-09-06 10:18:07 +03:00
nettest.py Загрузить файлы в «/» 2025-09-06 10:20:46 +03:00
README.md Загрузить файлы в «/» 2025-09-06 10:18:07 +03:00
whitelist.txt Загрузить файлы в «/» 2025-09-06 10:18:07 +03:00

Honeypot Service

Этот проект реализует honeypot для Linux, блокирующий нежелательные IP-адреса с использованием nftables и отправляющий уведомления в Telegram.

Описание

Скрипт на Python прослушивает указанный порт, автоматически добавляет подключившиеся IP-адреса в черный список nftables и отправляет уведомление в Telegram. Скрипт периодически синхронизирует списки разрешенных/запрещенных IP-адресов и ключевых слов из удаленных источников.

Состав проекта:

  • nettest.py: Основной скрипт honeypot на Python.
  • honeypot.service: Файл systemd для управления службой honeypot.
  • whitelist.txt: Список IP-адресов, которые не должны быть заблокированы.
  • blacklist.txt: Список IP-адресов для блокировки.
  • keywords.txt: Список ключевых слов для обнаружения подозрительных хостов.

Требования:

  • Python 3.6 или выше
  • nftables
  • python3-requests (библиотека Python Requests)
  • Активный Telegram-бот и ID чата
  • Прямой интернет доступ (не через прокси, без DPI)

Установка

  1. Клонируйте репозиторий (или загрузите файлы):

    git clone https://gitflic.ru/project/opencard/honeypot.git /root/honeypot
    cd /root/honeypot
    
  2. Установите необходимые пакеты Python:

    apt-get update
    apt-get install python3-pip
    pip3 install requests ipaddress python3-systemd
    
  3. Настройте переменные окружения:

    • Отредактируйте nettest.py и укажите свой TELEGRAM_BOT_TOKEN и TELEGRAM_CHAT_ID.
    • Настройте остальные параметры конфигурации в nettest.py (например, PORT, BASE_DIR, REMOTE_URL_WHITELIST и т.д.).
  4. Разместите файлы конфигурации:

    mkdir -p /etc/honeypot
    mv whitelist.txt /etc/honeypot/
    mv blacklist.txt /etc/honeypot/
    mv keywords.txt /etc/honeypot/
    
  5. Установите права:

    chmod +x /root/honeypot/nettest.py
    
  6. Установите и запустите службу systemd:

    mv honeypot.service.txt honeypot.service
    mv honeypot.service /etc/systemd/system/
    systemctl daemon-reload
    systemctl enable honeypot.service
    systemctl start honeypot.service
    

Управление службой:

  • Запуск службы:

    systemctl start honeypot.service
    
  • Остановка службы:

    systemctl stop honeypot.service
    
  • Перезапуск службы:

    systemctl restart honeypot.service
    
  • Просмотр статуса службы:

    systemctl status honeypot.service
    

Проверка работоспособности:

  1. Проверьте статус службы:

    systemctl status honeypot.service
    

    Убедитесь, что служба запущена и не имеет ошибок. Проверьте /var/log/honeypot.log на наличие ошибок.

  2. Проверьте правила nftables:

    nft list table ip honeypot
    

    Убедитесь, что таблица honeypot создана и содержит цепочки input и output с правилами для блокировки трафика. Убедитесь, что набор blacklist существует.

  3. Проверьте блокировку IP-адреса:

    • Подключитесь к серверу с IP-адреса, которого нет в whitelist.txt. Для этого можно использовать telnet, netcat, ssh или любой другой протокол.

    • Проверьте уведомления в Telegram. Вы должны получить уведомление о блокировке IP-адреса.

    • Проверьте черный список nftables:

      nft list set ip honeypot blacklist
      

      В списке должен появиться заблокированный IP-адрес.

  4. Проверьте синхронизацию списков:

    • Измените содержимое файлов whitelist.txt, blacklist.txt или keywords.txt на удаленном сервере (указанном в REMOTE_URL_WHITELIST, REMOTE_URL_BLACKLIST и REMOTE_URL_KEYWORDS).
    • Дождитесь следующего интервала синхронизации (по умолчанию 1 час).
    • Проверьте, что изменения были применены в локальных файлах /etc/honeypot/whitelist.txt, /etc/honeypot/blacklist.txt и /etc/honeypot/keywords.txt.
    • Проверьте уведомления в Telegram. Вы должны получить уведомление об изменениях в списках.

Рекомендации:

  • Настройте систему ротации логов: Чтобы избежать переполнения диска, настройте систему ротации логов для файла /var/log/honeypot.log.
  • Используйте Fail2Ban (опционально): Вы можете интегрировать honeypot с Fail2Ban для более продвинутой защиты.
  • Безопасность Telegram-бота: Храните токен Telegram-бота в безопасном месте и не публикуйте его в открытом доступе.

Примеры алиасов (для файла .bashrc или .zshrc):

alias hps='systemctl status honeypot.service'    # Статус службы
alias hpr='systemctl restart honeypot.service'   # Перезапуск службы
alias hpl="nft list table ip honeypot"           # Список правил nftables
alias hpbl="nft list set ip honeypot blacklist"  # Список заблокированных IP
alias hpctl="tail -f /var/log/honeypot.log"      # Просмотр лога в реальном времени

# Применить алиасы
# source ~/.bashrc  # для bash
# source ~/.zshrc   # для zsh