2015-09-30 12 views
2

У меня есть сервер nginx за обратным прокси (Cloudflare) и вы хотите заблокировать ips на основе xforwarded ip, отправленного в заголовке.Iptables строка, соответствующая блоку ips за обратным прокси?

Я попробовал следующее правило IPtables строка соответствия:

Iptables -A ВХОД -m строка --string "1.1.1.1" --algo Ьт --to 1024 -j DROP

Однако это похоже, ничего не делает.

Почему рабочая строка не подходит? Я уверен, что реальный IP-адрес отправляется в пакете либо как X-Forwarded-For, либо CF-Connection-IP.

Ядро - 3.4.x и iptables 1.4.7, поэтому проблем нет.

+0

Это мой файл iptables: – Rdang

+0

Это может помочь: 'iptables -I INPUT -m string --algo bm -string" 1.1.1.1 "-j DROP' (-I вместо -A) - если вы имеют другие правила, этот станет первым правилом для проверки. –

ответ

0

Как вы упомянули, CF-Connecting-IP - лучший способ получить реальный IP-адрес за CloudFlare. Это лучше, чем X-Forwarded-For, поскольку это можно изменить, если ваш сервер затем помещен за балансировщик нагрузки или другой обратный прокси (X-Forwarded-For даже поддерживает список, разделенный запятыми, в RFC).

CloudFlare должен передавать только безопасный трафик и только веб-трафик до CloudFlare supported web server ports, поэтому вы можете использовать белый список CloudFlare IPs и включить IPTables на других IP-адресах. Затем вы можете заблокировать IP-адреса на вкладке брандмауэра на сайте CloudFlare, а затем просмотреть IP-брандмауэр. Трафик Non-CloudFlare может затем использовать IPTables.

Мы используем официальный сервер Mod_CloudFlare на наших серверах Apache, чтобы правильно получить IP-адрес на нашем веб-сервере и, в конечном счете, в веб-приложение. На NGinX вы можете попробовать ngx_http_realip_module.

+0

Спасибо, но это был не мой вопрос, я уже сделал все это ... – Rdang

+0

По сути, лучше всего блокировать IP-адреса на уровне CloudFlare. Если вы хотите сделать это программно (например, с Fail2Ban), лучше использовать официальный API. – mjsa

+0

Я уже блокирую ips на уровне cloudflare, но их API ограничен, и существует максимальная квота для числа ips. Я хочу заблокировать ips на уровне ядра, и мой вопрос касается соответствия строк iptables, но спасибо за ваше предложение в любом случае. – Rdang

 Смежные вопросы

  • Нет связанных вопросов^_^