VMmanager

Определение реальных IP-адресов пользователей

Модуль "Определение реальных IP-адресов пользователей" (Real IP) позволяет веб-серверу платформы Nginx правильно идентифицировать IP-адрес клиента. Это может быть полезно для логирования, ограничения доступа и других функций.

Например, подключение к платформе может осуществляться через обратный прокси-сервер. Обратный прокси-сервер ретранслирует запросы клиентов из внешней сети на один или несколько серверов, логически расположенных во внутренней сети. Если пользователь, которому разрешена авторизация только с определённых IP-адресов, пытается подключиться к платформе через обратный прокси-сервер, платформа заблокирует попытку авторизации. Это связано с тем, что подключение будет зарегистрировано с IP-адреса прокси-сервера, а не реального IP-адреса пользователя.

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

Настройка через интерфейс платформы

  1. В правом меню нажмите значок → вкладка Глобальные настройки.
  2. В разделе Определение реальных IP-адресов пользователей (Real IP) нажмите кнопку Настроить.
  3. Укажите параметры:
    1. Заголовок, содержащий реальный IP — значение директивы proxy_set_header в Nginx. В большинстве случаев подойдёт значение X-Forwarded-For или X-Real-IP. Если вы пользуетесь услугами Cloudflare, укажите значение CF-Connecting-IP.
    2. Доверенные IP-адреса для приёма заголовка — IP-адреса и подсети в формате IPv4 и IPv6, от которых сервер будет принимать заголовки с реальным IP-адресом пользователя. Актуальный список сетей уточните у вашего провайдера. Например, список сетей Cloudflare доступен по ссылкам https://www.cloudflare.com/ips-v4 и https://www.cloudflare.com/ips-v6.
  4. Нажмите кнопку Изменить.

Чтобы изменить настройки, в разделе Определение реальных IP-адресов пользователей (Real IP) нажмите кнопку Изменить .

Чтобы удалить настройки, в разделе Определение реальных IP-адресов пользователей (Real IP) нажмите кнопку Отключить.

Настройка через API

  1. Получите токен авторизации:
    curl -k -X POST -H "accept: application/json" -H "Content-Type: application/json" 'https://example.com/api/auth/v4/public/token' -d '{"email": "admin_email", "password": "admin_pass"}'
    Пояснения к команде

    В ответ придёт сообщение вида:

    Пример ответа в JSON
    {
      "confirmed": true,
      "expires_at": null,
      "id": "6",
      "token": "4-e9726dd9-61d9-2940-add3-914851d2cb8a"
    }

    Сохраните полученное значение параметра token — токен авторизации.

  2. Выполните запрос вида: 
    curl -k -X POST 'https://example.com/auth/v4/realip/trusted_servers' -d '{"header": "<proxy_set_header>", "ips": ["<network_1>","<network_2>","<network_3>",...,"<network_N>"]}' -H 'x-xsrf-token: <token>'
    Пояснения
    Пример команды
    curl -k -X POST 'https://example.com/auth/v4/realip/trusted_servers' -d '{"header": "CF-Connecting-IP", "ips": ["173.245.48.0/20","103.21.244.0/22","103.22.200.0/22"]}' -H 'x-xsrf-token: 4-e9726dd9-61d9-2940-add3-914851d2cb8a'

Чтобы проверить список добавленных сетей, выполните запрос: 

curl -k -X GET 'https://example.com/auth/v4/realip/trusted_servers' -H 'x-xsrf-token: <token>'

Чтобы удалить список добавленных сетей, выполните запрос: 

curl -k -X DELETE 'https://example.com/auth/v4/realip/trusted_servers' -H 'x-xsrf-token: <token>'
Пояснения к командам