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

159 lines
6.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🔒 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. Синтаксис конфигурации
Каждый блок правил начинается с комментария `#`:
```conf
# Описание правила
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
```conf
# Разрешаем админку только с определённых IP
type: Allow
path_access: /admin/*, /api/admin/*
ip_list: 127.0.0.1, 192.168.1.100
url_error: 404
```
### Пример 2: Блокировка определённых IP
```conf
# Блокируем подозрительные IP для всего сервиса
type: Disable
ip_list: 10.0.0.50, 192.168.1.200
url_error: https://example.com/blocked
```
### Пример 3: Защита внутренних API
```conf
# Блокируем доступ к служебным API
type: Disable
path_access: /internal/*, /private/*
exceptions_dir: /internal/health
url_error: 404
```
### Пример 4: Доступ только с локальной сети
```conf
# Разрешаем доступ к API только с локальных адресов
type: Allow
path_access: /api/*
ip_list: 127.0.0.1, ::1, 192.168.0.0/16
url_error: 404
```
### Пример 5: Блокировка опасных файлов
```conf
# Блокируем исполняемые файлы через прокси
type: Disable
type_file: *.php, *.exe, *.sh, *.bat
path_access: /uploads/*, /files/*
url_error: 404
```
### Пример 6: Разрешить только определённые типы
```conf
# В API разрешаем только JSON и XML
type: Allow
type_file: *.json, *.xml, no_extension
path_access: /api/*
url_error: 404
```
### Пример 7: Блокировка архивов
```conf
# Блокируем скачивание архивов с приватных путей
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`