Skip to content

UtyaDev/AntiZapret-Core

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2,893 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AntiZapret-Core

AntiZapret-Core — это инструмент для расширенного управления сетевой маршрутизацией и DNS на стороне сервера. Он позволяет автоматизировать процесс перенаправления трафика для определенных списков ресурсов и настраивать избирательное проксирование через систему подменных IP-адресов.

Основные возможности

  • Гибкая настройка DNS: Использование Knot Resolver с поддержкой RPZ (Response Policy Zones) и различными апстрим-резолверами.
  • Сетевая фильтрация: Защита от рекламы, трекеров и вредоносного ПО на уровне DNS.
  • Поддержка IPv6: Полная поддержка протокола IPv6 как для DNS-запросов, так и для маршрутизации трафика.
  • Агрегация маршрутов: Автоматическое сжатие списков IP-адресов (по умолчанию до 300 маршрутов) для обеспечения совместимости с аппаратными роутерами и повышения производительности.
  • Защита сервера: Встроенные механизмы защиты от brute-force атак на SSH и защиты от сетевого сканирования.
  • Удобная конфигурация: Управление списками ресурсов через локальные файлы или внешние источники по ссылкам.

Варианты установки

1. Нативная установка (Debian/Ubuntu)

Рекомендуется для выделенных серверов (VPS) на базе дистрибутивов Debian или Ubuntu.

Требования:

  • ОС: Debian 11/12 или Ubuntu 22.04/24.04.
  • Виртуализация: KVM, VMware или физический сервер (OpenVZ/LXC не поддерживаются).
  • Минимум 2 ГБ свободного места.

Команда для установки:

bash <(wget -qO- --no-hsts --inet4-only https://raw.githubusercontent.com/UtyaDev/AntiZapret-Core/main/setup.sh)

Скрипт предложит выбрать DNS-резолверы и задать параметры конфигурации. После установки сервер перезагрузится.


2. Установка через Docker

Универсальный способ запуска в изолированной среде с поддержкой автоматического обновления образа.

Подготовка: Создайте директорию и загрузите конфигурацию:

mkdir -p /root/antizapret && cd /root/antizapret
wget https://raw.githubusercontent.com/UtyaDev/AntiZapret-Core/main/docker-compose.yml

Запуск:

docker compose up -d

3. Установка через Docker (Сборка из исходников)

Для тех, кто хочет самостоятельно собрать образ или внести изменения в код.

Инструкция:

  1. Клонируйте репозиторий:
    git clone https://github.com/UtyaDev/AntiZapret-Core.git
    cd AntiZapret-Core
  2. Соберите и запустите проект:
    docker compose up -d --build

Конфигурация

Параметры управления системой (через переменные окружения в docker-compose.yml или в файле /root/antizapret/setup при нативной установке):

Переменная Значение Описание
ANTIZAPRET_DNS 1-6 Выбор апстрим DNS: 1 — Cloudflare+Quad9+MSK-IX+SkyDNS, 2 — SkyDNS, 3 — Cloudflare+Quad9, 4 — Comss, 5 — XBox, 6 — Malw.
ALTERNATIVE_IP y/n Использовать диапазон 172.77.77.77 вместо 10.77.77.77 для DNS.
ALTERNATIVE_FAKE_IP y/n Использовать диапазон 198.18.0.0/15 для подменных адресов (рекомендуется y).
SSH_PROTECTION y/n Защита от brute-force атак на SSH (нативно).
ATTACK_PROTECTION y/n Защита от сетевых атак и сканирования.
ROUTE_AGGREGATION_LIMIT число Лимит количества маршрутов (по умолчанию 500). 0 для отключения.
CLEAR_HOSTS y/n Очистка доменов от азартных игр и букмекеров при генерации списков.

Технические особенности Docker

Для работы сетевых функций контейнер требует расширенных прав:

  • network_mode: host — обязателен для управления сетевым стеком хоста.
  • privileged: true — необходим для загрузки модулей ядра и изменения параметров sysctl.
  • Тома (Volumes):
    • ./config — пользовательские списки и источники.
    • ./result — файлы с результатами генерации правил.

Управление списками ресурсов

Конфигурация ресурсов разделена на ручную и автоматическую (через источники). Все файлы конфигурации находятся в директории config/.

1. Ручные списки (config/manual/)

Добавляйте домены или IP-адреса непосредственно в текстовые файлы:

  • include-hosts.txt: Домены для проксирования.
  • exclude-hosts.txt: Домены-исключения.
  • include-ips.txt: IP-адреса/подсети для проксирования.
  • exclude-ips.txt: IP-адреса-исключения.
  • allow-ips.txt: IP-адреса, которым разрешено сканирование (белый список для ATTACK_PROTECTION).
  • rpz.txt: Пользовательские записи для Knot Resolver (формат RPZ).

2. Внешние источники (config/sources/)

Файлы в этой директории имеют те же названия, что и в manual/, но должны содержать ссылки (URL) на внешние списки. Система будет автоматически скачивать и объединять их.

Применение изменений

Для обновления списков и правил выполните:

  • Нативно: /root/antizapret/doall.sh
  • Docker: docker exec antizapret /root/antizapret/doall.sh

Агрегация маршрутов

AntiZapret-Core автоматически объединяет мелкие подсети в более крупные, чтобы итоговое количество маршрутов не превышало заданный лимит (параметр ROUTE_AGGREGATION_LIMIT, по умолчанию 500).

Чтобы отключить агрегацию, установите значение 0. В этом случае все маршруты будут переданы как есть.


Благодарность

Проект базируется на наработках следующих авторов:

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 60.9%
  • Python 27.1%
  • Lua 8.7%
  • Dockerfile 3.3%