> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lampac.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Безопасность Lampac: WAF, геоблокировка и accsdb

> Настройте WAF с геоблокировкой и защитой от брутфорса, а также систему аутентификации accsdb в Lampac NextGen.

Lampac NextGen предоставляет два уровня защиты: WAF (Web Application Firewall) для фильтрации входящего трафика и систему аутентификации `accsdb` для ограничения доступа к API. Оба механизма отключены по умолчанию и настраиваются через `init.conf` или `init.yaml`.

## WAF: брандмауэр приложения

WAF фильтрует входящие запросы по стране, IP-адресу и частоте обращений. Включите его, если сервер доступен из интернета.

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

```jsonc theme={null}
{
  "WAF": {
    "enable": true,
    "countryAllow": ["RU", "UA", "BY"],
    "whiteIps": ["192.168.1.0/24"],
    "bruteForceProtection": true,
    "limit_map": {
      "/lite/": 10,
      "/externalids": 10
    }
  }
}
```

### Параметры WAF

| Параметр               | Описание                                                                                       |
| ---------------------- | ---------------------------------------------------------------------------------------------- |
| `enable`               | Включить WAF. По умолчанию `false` в `base.conf`                                               |
| `countryAllow`         | Разрешённые страны в формате ISO 3166-1 alpha-2. Пустой массив — без ограничений               |
| `whiteIps`             | IP-адреса и CIDR-блоки, которые всегда пропускаются в обход всех ограничений                   |
| `bruteForceProtection` | Автоматический бан при множественных ошибках аутентификации                                    |
| `limit_map`            | Rate-limit по префиксу URL: ключ — путь, значение — максимальное количество запросов в секунду |

<Tip>
  Параметр `whiteIps` поддерживает CIDR-нотацию. Например, `"192.168.1.0/24"` пропустит всю локальную подсеть, а `"10.0.0.0/8"` — корпоративную сеть.
</Tip>

<Note>
  Геолокация работает через встроенные базы MaxMind GeoLite2 (`data/GeoLite2-Country.mmdb` и `GeoLite2-ASN.mmdb`). Базы обновляются вместе с релизом сервера.
</Note>

## Аутентификация (accsdb)

Система `accsdb` ограничивает доступ к API по логинам с датой истечения. Поддерживаются два формата записи пользователей.

### Краткий формат

```json theme={null}
{
  "accsdb": {
    "enable": true,
    "accounts": "user1:2026-12-31,user2:2027-06-01"
  }
}
```

### Подробный формат

```json theme={null}
{
  "accsdb": {
    "enable": true,
    "users": [
      { "id": "user1", "expires": "2026-12-31" },
      { "id": "user2", "expires": "2027-06-01" }
    ]
  }
}
```

При включённом `accsdb` клиент получает уникальный токен, который передаётся в URL плагина (`/online/js/{token}` и `/sisi/js/{token}`). После истечения даты доступ автоматически блокируется.

## Важное предупреждение о публичном доступе

<Warning>
  Модули **DLNA**, **Tracks**, **Transcoding**, **GStreamer** и **Catalog** не выполняют экранирование входящих запросов. Не включайте их на публично доступном VPS без ограничения доступа через firewall или reverse proxy.
</Warning>

Эти модули предназначены для работы в доверенной локальной сети. Если вы используете сервер удалённо, оставьте их в `SkipModules` или ограничьте доступ на уровне сети.
