> 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»**&#x20;

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

Например: **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-адресов.


---

# 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://docs.iexexchanger.com/guide/nachalo-raboty/centr-bezopasnosti/ogranichenie-dostupa-k-paneli-upravleniya-po-ip-cherez-cloudflare.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.
