Добавление разрешенного IP и сохранение исходных IP клиентов для hoster Guard
hoster Guard — автоматизированная платформа безопасности для многоуровневой защиты веб-приложений от взломов, утечек данных и отказа в обслуживании. Услуга предоставляется по подписке с тарифами на выбор.
Порядок подключения услуги см. по ссылке.
Для веб-сервера клиента предоставляется прокси-сервер (прокси), который устанавливается между веб-сервером клиента и входящим трафиком. Прокси анализирует входящие HTTP-запросы и блокирует потенциально опасные. Прокси-сервер имеет свой IP-адрес (Guard IP, указан в разделе Список доменов меню управления услугой hoster Guard).

Поскольку при прохождении трафика через прокси исходный IP-адрес клиента заменяется IP-адресом прокси (IP Guard), необходимо включить адрес прокси в список разрешенных адресов веб-сервера. При этом прокси сохраняет исходный адрес клиента в заголовках (Headers) запроса: X-Forwarded-For и X-Real-IP. Сохранение исходных адресов обеспечивает корректное логирование запросов к серверу, работу ограничений по IP и других функций, зависящих от IP-адреса клиента.
Как добавить адреса
Ниже приведены примеры настройки разрешенных адресов для веб-серверов различного типа.
Nginx
Когда Nginx работает за прокси-сервером, корректно определять реальный IP-адрес клиента позволяет директива set_real_ip_from. Данная директива также защищает сервер от запросов, в которых заголовок X-Forwarded-For мог быть подделан.
К примеру, IP-адрес вашей услуги (IP Guard) 192.168.1.25
1. Откройте конфигурационный файл Nginx. По умолчанию конфигурационный файл называется nginx.conf и расположен в каталоге /usr/local/nginx/conf, /etc/nginx или /usr/local/etc/nginx.
2. В секции http вставьте следующие директивы:
http {
# Указываем доверенные IP-адреса прокси-серверов:
set_real_ip_from 192.168.1.25;
# Указываем заголовок, из которого брать реальный IP:
real_ip_header X-Forwarded-For;
# Указываем, как обрабатывать несколько IP-адресов в заголовке:
real_ip_recursive on;
server {
listen 80;
server_name example.com;
location / {
# Теперь $remote_addr будет содержать реальный IP клиента
proxy_pass http://backend_URL;
}
}
}
3. Проверьте конфигурацию на отсутствие ошибок с помощью команды
nginx –t
4. Для применения изменений перезагрузите Nginx с помощью команды
nginx -s reload
Apache
В Apache для получения реального IP-адреса клиента, который проходит через прокси-сервер, можно использовать модуль mod_remoteip. Этот модуль позволяет Apache учитывать заголовки, такие как X-Forwarded-For, и заменять IP-адрес прокси-сервера на реальный IP-адрес клиента.
1. Включите модуль mod_remoteip с помощью команды
a2enmod remoteip
2. В конфигурационном файле /etc/apache2/apache2.conf или /etc/httpd/conf/httpd.conf добавьте:
<IfModule mod_remoteip.c>
RemoteIPHeader X-Forwarded-For
RemoteIPInternalProxy xxx.xxx.xxx.xxx/24
RemoteIPInternalProxy 127.0.0.1
</IfModule>
вместо «xxx.xxx.xxx.xxx» введите выданный вам Guard IP;
RemoteIPInternalProxy 127.0.0.1 – это неизменная часть локального хоста, корректировать ее не нужно.
3. Перезапустите Apache с помощью команды
systemctl restart apache2
