Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
NFtables-IPtables-integration-script — Скрипт для реализации Q-Feeds напрямую в NFtables или IPtables | Kitploit
Инструменты/GitHubGitHub/q-feeds/nftables-iptables-integration-script
Оборонительные ИнструментыСкриптинг и автоматизацияАудит конфигурацииСетевая безопасностьРазведка угрозРеагирование на Инциденты
GitHubq-feeds/nftables-iptables-integration-script

NFtables-IPtables-integration-script

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →

Скрипт для реализации Q-Feeds напрямую в NFtables или IPtables

РепозиторийСайт
269 дней назадЕщё не проверено
Поделиться

🛡️ Интеграция блок-листа Q-Feeds с межсетевым экраном Linux

Автоматизированный блок-лист IP-адресов вредоносного ПО для серверов Linux — поддерживает nftables и iptables+ipset

License Linux


📋 Содержание

  • Быстрый старт
  • Обзор
  • Как это работает
  • Предварительные требования
  • Подробная установка
  • Конфигурация
  • Использование и проверка
  • Устранение неполадок
  • Удаление
  • Лицензия

🚀 Быстрый старт

Шаг 1: Получите свой API-токен

Получите бесплатный API-ключ на tip.qfeeds.com.

Шаг 2: Скачайте скрипты

git clone https://github.com/Q-Feeds/NFtables-IPtables-integration-script.git
cd NFtables-IPtables-integration-script
chmod +x qfeeds-installer.sh qfeeds-uninstaller.sh

Шаг 3: Запустите установщик от имени root

sudo ./qfeeds-installer.sh

Установщик:

  1. Автоматически определит ваш бэкенд межсетевого экрана (nftables или iptables)
  2. Запросит у вас API-токен, параметры блокировки и необязательный белый список
  3. Установит все зависимости, скрипт обновления и задание cron
  4. Немедленно выполнит первую полную синхронизацию

Шаг 4: Готово

Ваш сервер теперь защищён. Задание cron проверяет обновления каждые 20 минут (настраивается), а фактические вызовы API происходят только тогда, когда это позволяет ваша лицензия.


📖 Обзор

Это решение периодически загружает последний канал аналитики угроз из Q-Feeds и применяет его в виде правил межсетевого экрана (пошаговое руководство: Настройка NFtables/IPtables), что позволяет вам:

  • ✅ Блокировать входящие соединения с известных вредоносных IP-адресов
  • ✅ Блокировать исходящие соединения к известным вредоносным IP-адресам
  • ✅ Добавлять в белый список ваши собственные IP-адреса/CIDR, чтобы никогда не заблокировать себя
  • ✅ Автоматическое планирование на основе вашей лицензии Q-Feeds
  • ✅ Инкрементальные обновления через синхронизацию на основе diff для минимального использования ресурсов

Почему такой подход?

  • ✅ Автоопределение бэкенда — работает на nftables или iptables+ipset без ручного выбора
  • ✅ Быстро — загружает 400k+ IP-адресов за секунды, используя оптимизированные хеш-наборы (nftables) или ipset (iptables)
  • ✅ Безопасно — использует выделенные таблицы/наборы — никогда не затрагивает ваши существующие правила межсетевого экрана
  • ✅ Эффективно — обновления на основе diff обрабатывают только изменения, а не весь список
  • ✅ Надёжно — самовосстановление: обнаруживает пустой или неполный локальный набор (например, после перезагрузки) и перестраивает его, с автоматическим переходом к полной синхронизации при сбое diff
  • ✅ Гибко — выбор блокировки входящих/исходящих, необязательный белый список

🔧 Как это работает

Определение бэкенда

Установщик автоматически определяет, какой бэкенд межсетевого экрана доступен:

ПриоритетОбнаружениеБэкенд
1-йнайдена команда nftnftables
2-йнайдена команда iptablesiptables+ipset
—Ни одна не найденаОшибка (выход)

Обнаруженный бэкенд сохраняется в файле конфигурации. Скрипты обновления и удаления используют его для выполнения правильных команд межсетевого экрана.

Архитектура: два типа наборов

Оба бэкенда используют одну и ту же стратегию разделения наборов для максимальной производительности:

Бэкенд nftables:

┌─────────────────────────────────────────────────────────┐
│  table ip qfeeds                                        │
│                                                         │
│  ┌─────────────────────────┐  ┌───────────────────────┐ │
│  │ qfeeds_blacklist_v4     │  │ qfeeds_blacklist_v4   │ │
│  │ (hash set)              │  │ _nets (interval set)  │ │
│  │                         │  │                       │ │
│  │ Individual IPs          │  │ CIDR ranges           │ │
│  │ ~99% of entries         │  │ ~1% of entries        │ │
│  │ O(1) lookup & insert    │  │ O(log n) lookup       │ │
│  └─────────────────────────┘  └───────────────────────┘ │
│                                                         │
│  ┌─────────────────────────┐                            │
│  │ qfeeds_whitelist_v4     │                            │
│  │ (interval set)          │                            │
│  │ Your allowed IPs/CIDRs  │                            │
│  └─────────────────────────┘                            │
│                                                         │
│  chain input-chain (hook input, priority 0, accept)     │
│    → ip saddr @qfeeds_whitelist_v4 accept               │
│    → ip saddr @qfeeds_blacklist_v4 drop                 │
│    → ip saddr @qfeeds_blacklist_v4_nets drop            │
│                                                         │
│  chain output-chain (if enabled)                        │
│    → ip daddr @qfeeds_whitelist_v4 accept               │
│    → ip daddr @qfeeds_blacklist_v4 drop                 │
│    → ip daddr @qfeeds_blacklist_v4_nets drop            │
└─────────────────────────────────────────────────────────┘

Бэкенд iptables+ipset:

┌──────────────────────────────────────────────────────────┐
│  ipset sets                                              │
│                                                          │
│  ┌─────────────────────────┐  ┌────────────────────────┐ │
│  │ qfeeds_blacklist_v4     │  │ qfeeds_blacklist_v4    │ │
│  │ (hash:ip)               │  │ _nets (hash:net)       │ │
│  │ maxelem 1000000         │  │ maxelem 65536          │ │
│  │                         │  │                        │ │
│  │ Individual IPs          │  │ CIDR ranges            │ │
│  └─────────────────────────┘  └────────────────────────┘ │
│                                                          │
│  ┌─────────────────────────┐                             │
│  │ qfeeds_whitelist_v4     │                             │
│  │ (hash:net)              │                             │
│  └─────────────────────────┘                             │
│                                                          │
│  iptables: INPUT/OUTPUT jump to a dedicated chain        │
│  (jump rule tagged -m comment "qfeeds"):                 │
│                                                          │
│  chain QFEEDS_INPUT (rebuilt each run, in order):        │
│    -m set --match-set whitelist_v4 src -j ACCEPT         │
│    -m set --match-set blacklist_v4 src -j DROP           │
│    -m set --match-set blacklist_v4_nets src -j DROP      │
│    (QFEEDS_OUTPUT mirrors this with dst, if enabled)     │
└──────────────────────────────────────────────────────────┘

Та же структура существует для IPv6 (таблица ip6 qfeeds или ip6tables + ipsets с family inet6).

Почему два типа наборов?

  • Hash-наборы хранят отдельные IP с вставкой и поиском за O(1) — загрузка 400k+ IP занимает секунды
  • Net/interval-наборы используются только для небольшого числа CIDR-диапазонов в фиде
  • Это позволяет избежать дорогостоящих операций слияния, которые замедлили бы единый набор с сотнями тысяч записей

Поток обновления

Скачать инструмент