Сегодня наш магазин magento подвергся атаке, я надеюсь, что кто-то может помочь мне сказать, как заблокировать эти запросы с сотен разных IP-адресов:
182.255.44.234 - - [15/May/2017:13:24:14 +0100] "POST /calais-shop/customer/account/createpost/ HTTP/1.1" 503 1916
59.61.38.24 - - [15/May/2017:13:24:14 +0100] "POST /calais-shop/customer/account/createpost/ HTTP/1.1" 503 1916
120.39.95.47 - - [15/May/2017:13:24:13 +0100] "POST /calais-shop/customer/account/createpost/ HTTP/1.1" 503 1916
114.236.17.181 - - [15/May/2017:13:24:14 +0100] "POST /calais-shop/customer/account/createpost/ HTTP/1.1" 503 1916
114.236.17.181 - - [15/May/2017:13:23:47 +0100] "POST /calais-shop/customer/account/createpost/ HTTP/1.1" 503 1916
58.219.222.251 - - [15/May/2017:13:24:15 +0100] "POST /calais-shop/customer/account/createpost/ HTTP/1.1" 503 1916
182.46.161.100 - - [15/May/2017:13:24:16 +0100] "POST /calais-shop/customer/account/createpost/ HTTP/1.1" 503 1916
49.83.89.244 - - [15/May/2017:13:24:16 +0100] "POST /calais-shop/customer/account/createpost/ HTTP/1.1" 503 1916
117.28.127.48 - - [15/May/2017:13:24:16 +0100] "POST /calais-shop/customer/account/createpost/ HTTP/1.1" 503 1916
60.167.222.175 - - [15/May/2017:13:24:16 +0100] "POST /calais-shop/customer/account/createpost/ HTTP/1.1" 503 1916
114.236.17.181 - - [15/May/2017:13:24:16 +0100] "POST /calais-shop/customer/account/createpost/ HTTP/1.1" 503 1916
110.84.8.132 - - [15/May/2017:13:24:17 +0100] "POST /calais-shop/customer/account/createpost/ HTTP/1.1" 503 1916
Я не могу блокировать запросы POST, поэтому мне интересно, какое решение лучше?
Роб
Это был лучший результат Google по поиску «атаки magento createPost», поэтому я продолжу и включу здесь свое решение.
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ вам никогда не следует изменять Magento Core. Поскольку вы можете запаниковать во время такой продолжающейся атаки, вы можете временно изменить файлы Magento Core и реализовать правильное решение как только вы заблокируете оскорбительные IP-адреса.
tl; dr переместить код приложения с этого URL (/route/being/attacked
) другому (/some/new/route
), обновите внешний код, чтобы отправить форму (или что-то еще) в /some/new/route
, регистрируем все посещаемые IP-адреса /route/being/attacked
и забанить их с помощью IPtables или другого инструмента.
Здесь вы создаете приманку, чтобы перехватить IP-адреса-нарушители, чтобы вы могли навсегда заблокировать их с помощью предпочитаемых вами средств, например, iptables.
Перенести функциональность из Mage_Customer_AccountController :: createPostAction
Просто создайте новый метод в AccountController, например, createPostNewAction
который является копией / вставкой содержимого createPostAction
Обновить URL-адреса веб-формы на новый маршрут
Маршрут к / customer / account / createPost извлекается из класса Helper, Mage_Customer_Helper_Data::getRegisterPostUrl
. Вы должны изменить этот метод так, чтобы он возвращал маршрут к вашему новому действию, например, return $this->_getUrl('customer/account/createpostnew');
Записать оскорбительные IP-адреса в createPostAction
Заменить содержимое createPostAction
с заявлением о регистрации. При желании убедитесь, что этот файл журнала не перезаписывается и не усекается автоматически.
public function createPostAction {
Mage::log($_SERVER['REMOTE_ADDR'], Zend_Log::DEBUG, 'ban_customer_spam_ips', true);
return false;
}
Итак, теперь то, что мы сделали, - переместили функциональность для обработки `` новой формы регистрации клиента '' на новый маршрут и заменили исходный маршрут оператором регистрации, который будет регистрировать IP-адрес того, кто запрашивал URL-адрес файла. ban_customer_spam_ips
. Нет причин для того, чтобы законный запрос попадал на этот маршрут, поэтому мы можем предположить, что любые запросы к этому маршруту являются вредоносными, и мы можем их заблокировать.
Как пользователь root, tail
вышеупомянутый файл журнала и запретить IP-адреса любым способом, который вы предпочитаете. Здесь я использую fail2ban
который использует iptables
. Вы можете использовать iptables
прямо - делай, что хочешь. При необходимости измените пути, моя установка Magento /var/www/magento
но ваш может быть другим! Вы можете создать .sh
файл и выполните его в фоновом режиме или просто запустите его в командной строке:
tail -f /var/www/magento/var/log/ban_customer_spam_ips | awk '
BEGIN {}
{
print "banning ip: " $4
block_command = "fail2ban-client set apache banip "$4
system(block_command)
close(block_command)
}'