Назад | Перейти на главную страницу

предотвратить X-Forwarded-For спуфинг в haproxy

Вчера мы подверглись DDoS-атаке, достигнувшей нашего веб-сервера (apache2). Интерфейс состоит из соединений haproxy для балансировки нагрузки с веб-серверами. В access.log apache мы увидели тысячи запросов от двух IP-адресов, и через пару часов мы поняли, что это были поддельные / подделанные, а не настоящие IP-адреса.

Для пояснения мы сделали "curl GET /" с IP-адресом "137.137.136.136", и действительно, этот IP-адрес (поддельный) мы видели в наших веб-журналах

Теперь, в другом кластере, где мы используем nginx в качестве обратного прокси, изменение / создание заголовка X-Forwarded-For не работает. Это означает, что даже если вы введете случайный IP-адрес в конкретный заголовок, nginx все равно будет передавать правильный IP-адрес внутреннему веб-серверу?

Это связано с haproxy?
Кто-нибудь может подтвердить, что созданные заголовки X-Forwarded-For могут проходить через haproxy?
Почему этого не происходит в nginx?
Как это предотвратить?

В haproxy, если у вас нет ничего, что могло бы предотвратить это, это нормально, я не знаю, как с этим бороться в nginx, но я решил таким образом, используя haproxy:

в параметрах по умолчанию:

forwardfor

В моем определении интерфейса haproxy у меня есть:

reqidel ^X-Forwarded-For:.*

Это удаление X-Forwarded-For в HTTP-запросе, если клиент пытается подделать и haproxy вернет настоящий заголовок в HTTP-ответе с истинным IP-адресом

Если вы хотите использовать X-Forwarded-For чтобы проверить IP-адрес HTTP-клиентов, вам необходимо удалить его, если он существует в HTTP-запросе, потому что клиент, который использует HTTP-прокси, иногда устанавливает локальный IP-адрес в X-Forwarded-For