Files
vServer/WebServer/tools/Proxy_vAccess
Falknat d11834da37 Добавление vAccess для Proxy
Теперь наши правила работают так же для Proxy серверов.
2025-10-03 01:04:50 +07:00
..

🔒 vAccess для Proxy-сервиса

Система контроля доступа для прокси-сервера, аналогичная vAccess для веб-сайтов.

📁 Структура

Proxy_vAccess/
├── _example_vAccess.conf     - Пример конфигурации с комментариями
├── {domain}_vAccess.conf      - Конфигурация для конкретного домена
└── README.md                  - Эта документация

🚀 Как использовать

1. Создание конфигурации

Для каждого прокси-домена создайте файл:

{ExternalDomain}_vAccess.conf

Пример:

  • git.example.ru_vAccess.conf
  • api.myservice.com_vAccess.conf
  • proxy.domain.org_vAccess.conf

2. Синтаксис конфигурации

Каждый блок правил начинается с комментария #:

# Описание правила
type: Allow | Disable
path_access: /path1/*, /path2/*
ip_list: 192.168.1.1, 127.0.0.1
exceptions_dir: /public/*
url_error: 404 | https://site.com | /error.html

📋 Параметры правил

Параметр Обязательный Описание
type Да Allow - разрешить доступ, Disable - запретить
type_file Нет Расширения файлов через запятую (*.json, *.pdf)
path_access Нет Список путей через запятую
ip_list Нет Список IP адресов через запятую
exceptions_dir Нет Пути-исключения (правило не применяется)
url_error Нет Страница ошибки при блокировке

🔍 Примеры использования

Пример 1: Админка только с локальных IP

# Разрешаем админку только с определённых IP
type: Allow
path_access: /admin/*, /api/admin/*
ip_list: 127.0.0.1, 192.168.1.100
url_error: 404

Пример 2: Блокировка определённых IP

# Блокируем подозрительные IP для всего сервиса
type: Disable
ip_list: 10.0.0.50, 192.168.1.200
url_error: https://example.com/blocked

Пример 3: Защита внутренних API

# Блокируем доступ к служебным API
type: Disable
path_access: /internal/*, /private/*
exceptions_dir: /internal/health
url_error: 404

Пример 4: Доступ только с локальной сети

# Разрешаем доступ к API только с локальных адресов
type: Allow
path_access: /api/*
ip_list: 127.0.0.1, ::1, 192.168.0.0/16
url_error: 404

Пример 5: Блокировка опасных файлов

# Блокируем исполняемые файлы через прокси
type: Disable
type_file: *.php, *.exe, *.sh, *.bat
path_access: /uploads/*, /files/*
url_error: 404

Пример 6: Разрешить только определённые типы

# В API разрешаем только JSON и XML
type: Allow
type_file: *.json, *.xml, no_extension
path_access: /api/*
url_error: 404

Пример 7: Блокировка архивов

# Блокируем скачивание архивов с приватных путей
type: Disable
type_file: *.zip, *.rar, *.7z, *.tar.gz
path_access: /downloads/private/*
exceptions_dir: /downloads/private/public/*
url_error: https://example.com/access-denied

⚙️ Логика работы

  1. Порядок проверки: правила проверяются сверху вниз
  2. Первое совпадение: первое подходящее правило срабатывает
  3. Нет конфига = доступ разрешён: если файла нет, доступ не ограничен
  4. Allow правило: доступ разрешён ТОЛЬКО если ВСЕ условия выполнены
  5. Disable правило: доступ запрещён если ЛЮБОЕ условие выполнено

📊 Логирование

Все события vAccess для прокси записываются в:

WebServer/tools/logs/logs_vaccess_proxy.log

Формат логов:

[2025-10-03 00:45:23] [vAccess-Proxy] 🚫 Доступ запрещён для 192.168.1.50 к git.example.ru/admin

🔗 Связь с основной системой

vAccess для прокси использует ту же кодовую базу, что и vAccess для сайтов:

  • Все функции парсинга, проверки IP, путей общие
  • Изменения в логике автоматически применяются везде
  • Единый стиль конфигурации

⚠️ Важные замечания

  1. IP-адреса берутся из соединения (не из заголовков прокси)
  2. Порядок правил важен - специфичные правила размещайте ВЫШЕ общих
  3. Проверка расширений работает - можно фильтровать по type_file даже для прокси
  4. Поддержка подсетей: можно использовать CIDR нотацию (192.168.0.0/24)
  5. Множественные расширения: поддержка файлов типа .tar.gz, .backup.sql

📞 Поддержка

При ошибках парсинга конфигурации:

  1. Проверьте синтаксис в _example_vAccess.conf
  2. Убедитесь что у правила есть type: и хотя бы одно условие
  3. Посмотрите логи в logs_vaccess_proxy.log