> 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": "*"
  }
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://enterprise-ua.hideez.com/korporativnii-server-hideez/administration/network-filter-obmezhennya-dostupu-do-adminpaneli-za-merezheyu.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
