> For the complete documentation index, see [llms.txt](https://enterprise-ua.hideez.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://enterprise-ua.hideez.com/korporativnii-server-hideez/administration/network-filter-obmezhennya-dostupu-do-adminpaneli-za-merezheyu.md).

# Network Filter: обмеження доступу до адмінпанелі за мережею

### Огляд

Налаштування `NetworkFilter` дозволяє обмежити доступ до адміністративної панелі сервера залежно від мережі користувача:

* Повний доступ до адмін-панелі дозволений лише з внутрішньої (локальної або корпоративної) мережі
* Зовнішні користувачі (через Інтернет) не можуть отримати доступ до інтерфейсу адміністратора
* Протоколи автентифікації (SAML, OIDC, WS-Fed) та підключення пристроїв (ПК/мобільні) продовжують працювати з зовнішніх мереж

### Приклад використання

Системний адміністратор хоче запобігти несанкціонованому доступу до адмін-панелі Hideez Enterprise Server ззовні. Увімкнувши `NetworkFilter`, лише користувачі, які підключаються з корпоративної мережі (наприклад, офіс або VPN), зможуть керувати системою. Зовнішні користувачі зможуть автентифікуватися в сервісах, але не матимуть доступу до налаштувань сервера.

### Системні вимоги

Щоб ця функція працювала, необхідно:

1. Розгорнутий сервер Hideez Enterprise Server (HES) із доступом до редагування `appsettings.json`
2. Встановлений та налаштований **NGINX на Linux-сервері**, який працює як зворотній проксі перед HES
3. Адміністративний доступ до налаштування обох компонентів – як HES, так і NGINX

{% hint style="info" %}
Ця функція працює лише за умови **двостороннього налаштування** – на стороні сервера Hideez і на стороні NGINX, встановленого на Linux.
{% endhint %}

### Як увімкнути NetworkFilter

Увімкнення `NetworkFilter` відбувається у **два етапи**:

### &#x20;Етап 1: Налаштування Hideez Server (`appsettings.json`)

На стороні сервера відкрийте файл `appsettings.json` (у директорії встановлення HES) і додайте або переконайтеся, що є наступне:

```
"ServerSettings": {
  "NetworkFilter": true
}
```

Це активує механізм фільтрації всередині сервера Hideez. Визначення мережевого походження запиту відбуватиметься через заголовок HTTP від NGINX.

### &#x20;Етап 2: Налаштування NGINX на Linux

На стороні NGINX (встановленого на Linux) потрібно налаштувати перевірку IP-адреси клієнта і передати відповідний заголовок на сервер.

**Додайте перед `location`-блоком у конфігурації NGINX наступне:**

```
# Визначення, чи IP-адреса належить внутрішній мережі
geo $is_local {
    default 0;
    # Приклад внутрішньої мережі
    192.168.1.0/24 1;
    # Приклад окремої IP-адреси
    10.10.100.1/32 1;
}

# Призначення значення для заголовка X-Local-Network
map $is_local $x_source_type {
    1 "true";
    0 "false";
}
```

Ця конфігурація встановлює змінну `$x_source_type` у `"true"` для внутрішніх IP і `"false"` — для всіх інших.

**Оновіть блок `location`:**

```
location / {
    proxy_pass http://HES;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Local-Network $x_source_type;
}
```

#### Приклад файлу конфігурації `appsettings.json`

```
{
  "ConnectionStrings": {
    "DefaultConnection": "server=127.0.0.1;port=3306;database=db;uid=user;pwd=password",
    "Provider": "MySql"
  },
  "Logging": {
    "LogLevel": {
      "Default": "Debug",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "ServerSettings": {
    "NetworkFilter": true
  },
  "AllowedHosts": "*"
  }
```
