> For the complete documentation index, see [llms.txt](https://docs.iexexchanger.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.iexexchanger.com/guide/nachalo-raboty/centr-bezopasnosti/ogranichenie-dostupa-k-paneli-upravleniya-po-ip-cherez-cloudflare.md).

# Ограничение доступа к панели управления по IP через Cloudflare

Ограничение доступа по IP позволяет защитить административную панель от несанкционированного доступа.

После настройки открыть административную панель смогут только пользователи с разрешённых IP-адресов. Все остальные запросы будут автоматически заблокированы Cloudflare ещё до обращения к вашему серверу.

Для проектов iEXExchanger данная настройка является одной из рекомендуемых мер безопасности.

### Как работает защита

В стандартной архитектуре iEXExchanger административная панель располагается на отдельном техническом поддомене.

Пример: **app.example.com**

Cloudflare проверяет IP-адрес каждого посетителя до передачи запроса на сервер.

Если IP-адрес отсутствует в списке разрешённых адресов, доступ к административной панели блокируется автоматически.

***

## Проверка DNS-записи

Перед настройкой убедитесь, что технический поддомен работает через Cloudflare.

В панели Cloudflare откройте раздел: **«DNS» — «Records»**

Найдите запись технического поддомена.

Например: **app.example.com**

В колонке: **«Proxy status»**

должно быть указано: **Proxied** и отображаться оранжевое облако.

Если указано: **DNS only**

Cloudflare не сможет фильтровать запросы и защита работать не будет.

***

## Создание правила безопасности

Откройте раздел: **«Security» — «Security rules»**

Нажмите кнопку: **«Create rule»**

Выберите: **«Custom rules»**

***

## Настройка правила

В поле: **«Rule name»**

укажите название правила.

Например: **Restrict Admin Access By IP**

В блоке: **«When incoming requests match...»**

нажмите: **«Edit expression»**

***

## Настройка выражения

Если административная панель располагается на поддомене: **app.example.com**

используйте следующее выражение:

```
(
  http.host eq "app.example.com"
  and not (ip.src in {111.111.111.111 222.222.222.222})
)
```

Замените:

```
111.111.111.111
222.222.222.222
```

на <mark style="color:$success;">**ваши реальные IP-адреса.**</mark>

Если необходимо разрешить только один IP-адрес:

```
(
  http.host eq "app.example.com"
  and not (ip.src in {111.111.111.111})
)
```

{% hint style="warning" %}

## Важно:

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

Правило будет работать следующим образом:

* пользователь открывает технический поддомен панели управления;
* Cloudflare проверяет IP-адрес посетителя;
* если IP-адрес отсутствует в списке разрешённых адресов, запрос блокируется.
  {% endhint %}

***

## Выбор действия

В блоке: **«Then take action»**

выберите: **Block**

После этого нажмите: **«Deploy»**

После сохранения правило начнёт работать автоматически.

***

## Проверка работы

После создания правила выполните проверку.

Откройте административную панель с IP-адреса, который присутствует в списке разрешённых адресов.

Панель должна открываться без ограничений.

Затем попробуйте открыть тот же адрес через другой IP-адрес, который отсутствует в списке разрешённых.

Например:

* мобильный интернет;
* VPN;
* другой провайдер.

Cloudflare должен заблокировать запрос.

***

## Просмотр событий безопасности

Все срабатывания правила можно просмотреть в журнале Cloudflare.

Откройте раздел: **«Security» — «Events»**

Здесь будут отображаться все заблокированные запросы и информация о сработавшем правиле.

***

## Добавление нового IP-адреса

Если необходимо предоставить доступ новому сотруднику:

Откройте созданное правило.

Измените выражение:

```
(
  http.host eq "app.example.com"
  and not (ip.src in {111.111.111.111 222.222.222.222})
)
```

и добавьте новый IP-адрес в список.

Пример:

```
(
  http.host eq "app.example.com"
  and not (ip.src in {111.111.111.111 222.222.222.222 333.333.333.333})
)
```

После сохранения новый IP-адрес получит доступ к административной панели.

***

## Защита от обхода Cloudflare

Ограничение доступа по IP работает только для запросов, проходящих через Cloudflare.

Если злоумышленник узнает реальный IP-адрес вашего сервера, он может попытаться обратиться к нему напрямую, минуя Cloudflare.

Для дополнительной защиты рекомендуется:

* разрешить доступ к портам 80 и 443 только с IP-адресов Cloudflare;
* ограничить SSH-доступ только доверенными IP-адресами;
* использовать VPN для административного доступа;
* скрыть реальный IP-адрес сервера.

Дополнительные рекомендации по защите инфраструктуры представлены в разделе «Операционная безопасность (OPSEC)».

***

## Рекомендации по безопасности

* Используйте двухфакторную аутентификацию для всех административных аккаунтов.
* Не передавайте доступ к панели управления третьим лицам.
* Регулярно проверяйте список разрешённых IP-адресов.
* Используйте статический IP-адрес или VPN с постоянным IP.
* Контролируйте события безопасности в журнале Cloudflare.
* Не отключайте правило без необходимости.

После выполнения данной настройки административная панель iEXExchanger будет доступна только с разрешённых IP-адресов.
