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

Как решить почтовый запрос ddos

Сегодня наш магазин 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.

  1. Перенести функциональность из Mage_Customer_AccountController :: createPostAction

    Просто создайте новый метод в AccountController, например, createPostNewAction который является копией / вставкой содержимого createPostAction

  2. Обновить URL-адреса веб-формы на новый маршрут

    Маршрут к / customer / account / createPost извлекается из класса Helper, Mage_Customer_Helper_Data::getRegisterPostUrl. Вы должны изменить этот метод так, чтобы он возвращал маршрут к вашему новому действию, например, return $this->_getUrl('customer/account/createpostnew');

  3. Записать оскорбительные 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)
}'