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

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

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

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

Лицензия Linux


📋 Содержание

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

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

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

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

Шаг 2: Загрузите скрипты```bash

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```bash
sudo ./qfeeds-installer.sh

Установщик:

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

Шаг 4: Готово

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


📖 Обзор

Это решение периодически загружает последнюю ленту угроз от Q-Feeds и применяет её в качестве правил брандмауэра, позволяя вам:

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

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

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

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

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

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

ПриоритетОпределениеБэкенд
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 + family inet6 ipsets).

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

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