Network Filter: обмеження доступу до адмінпанелі за мережею
Огляд
Налаштування NetworkFilter
дозволяє обмежити доступ до адміністративної панелі сервера залежно від мережі користувача:
Повний доступ до адмін-панелі дозволений лише з внутрішньої (локальної або корпоративної) мережі
Зовнішні користувачі (через Інтернет) не можуть отримати доступ до інтерфейсу адміністратора
Протоколи автентифікації (SAML, OIDC, WS-Fed) та підключення пристроїв (ПК/мобільні) продовжують працювати з зовнішніх мереж
Приклад використання
Системний адміністратор хоче запобігти несанкціонованому доступу до адмін-панелі Hideez Enterprise Server ззовні. Увімкнувши NetworkFilter
, лише користувачі, які підключаються з корпоративної мережі (наприклад, офіс або VPN), зможуть керувати системою. Зовнішні користувачі зможуть автентифікуватися в сервісах, але не матимуть доступу до налаштувань сервера.
Системні вимоги
Щоб ця функція працювала, необхідно:
Розгорнутий сервер Hideez Enterprise Server (HES) із доступом до редагування
appsettings.json
Встановлений та налаштований NGINX на Linux-сервері, який працює як зворотній проксі перед HES
Адміністративний доступ до налаштування обох компонентів – як HES, так і NGINX
Як увімкнути NetworkFilter
Увімкнення NetworkFilter
відбувається у два етапи:
Етап 1: Налаштування Hideez Server (appsettings.json
)
appsettings.json
)На стороні сервера відкрийте файл appsettings.json
(у директорії встановлення HES) і додайте або переконайтеся, що є наступне:
"ServerSettings": {
"NetworkFilter": true
}
Це активує механізм фільтрації всередині сервера Hideez. Визначення мережевого походження запиту відбуватиметься через заголовок HTTP від NGINX.
Етап 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
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": "*"
}
Last updated