Я хотел бы сделать то же самое. У меня есть очень длинный список IP-адресов, которые нужно заблокировать в формате CIDR, и преобразование его в регулярные выражения для использования в файле .htaccess не кажется правильным. И вы знаете, что с точки зрения загрузки процессора регулярные выражения в .htaccess даже не в той же галактике, что и целочисленные битовые возни, которые может делать iptables. Но я не верю, что для этого можно использовать iptables. Iptables работает в ядре и блокирует входящие IP-адреса на низком уровне, прежде чем любой заголовок будет прочитан.
В моем случае я использую балансировщик нагрузки только как удобный способ обработки запросов https, мне действительно не нужно балансировать большую нагрузку между несколькими экземплярами веб-сервера. Итак, я рассматривал возможность запуска отдельного экземпляра с обратным прокси-сервером nginx для обработки https для моего веб-сервера apache, добавляя заголовки X_FORWARDED точно так же, как это делает балансировщик нагрузки AWS. Таким образом, я могу использовать iptables на экземпляре, на котором работает nginx, и мне не нужно трогать конфигурацию apache или веб-приложения, которые работают за балансировщиком нагрузки.
Вы теряете избыточность нескольких IP-адресов для самого балансировщика нагрузки, а также интеграцию с AWS Cloud Front для балансировки серверной нагрузки, но получаете возможность использовать iptables и можете разгрузить обработку статического контента от apache, возможно, улучшив время отклика. . Поскольку считается, что nginx намного легче, чем apache, для простой обработки запросов, вам не нужно много усилий в этом экземпляре. Интересно, являются ли балансировщики нагрузки AWS просто экземплярами, работающими под управлением nginx. Если вы посмотрите на цены, почасовая стоимость балансировщика нагрузки примерно такая же, как у экземпляра t2.small linux.
Я еще не пробовал это сам, так как конфигурация nginx для меня совершенно новая, и это потребует покупки и установки SSL-сертификата вместо использования удивительно простого и удобного менеджера сертификатов.
Интересно, будет ли AWS рассматривать пользовательские запросы функций, чтобы иметь возможность настраивать балансировщики нагрузки с помощью iptables...
ОБНОВЛЕНИЕ: я только что опубликовал это на форуме AWS EC2.
ОБНОВЛЕНИЕ 2. На мой запрос функции к AWS с просьбой о настройке iptables для балансировщика нагрузки был дан ответ с объяснением того, как использовать сетевой ACL для блокировки запросов, исходящих из любого CIDR в списке, от достижения балансировщика нагрузки. По мне, так же хорошее решение. ОП искал решение, не относящееся к AWS, и оно не соответствует этому критерию. Если у вас есть эта проблема с каким-либо сервером, который находится за обратным прокси-сервером, просто невозможно использовать брандмауэр в стиле iptables этого сервера для блокировки входящих запросов на основе исходного IP-адреса — брандмауэр должен решить, блокировать ли запрос задолго до того, как он прочитает заголовки, которые являются единственным местом, где можно найти исходный адрес запроса. Если вы используете AWS, вы можете использовать сетевой ACL. В противном случае вам нужно будет иметь полный контроль над сервером, выполняющим обратный прокси-сервер, и установить правила брандмауэра на этом сервере.
29.03.2016