Чрезмерное время до первого байта

На мой сайт попадает вредоносный трафик ботов, который я пытался остановить на прошлой неделе. Он отображается в моем журнале «other_vhost_access.log»:

www.mywebsite.com:80 217.96.40.85 - - [01 / Sep / 2017: 12: 21: 08 +0000] "HEAD http://xxx.xxx .xxx.xxx: 80 / phpmyadmin / HTTP / 1.1 "302 237" - "" Mozilla / 5.0 Jorgee "

и:

www.mywebsite.com:80 173.208.148.218 - - [31/Aug/2017:09:32:10 +0000] "POST /FlashChat/upload.php HTTP/1.1" 302 523 "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)"

www.mywebsite.com:80 173.208.148.218 - - [31/Aug/2017:09:32:11 +0000] "GET /FlashChat/temp/error.php HTTP/1.1" 302 531 "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)"

Вчера у меня было около 4000 таких запросов в пакетах по 100 за 30 секунд. Это неприятно, потому что, когда это происходит, TTFB выстреливает на 21 секунду (каждый раз).

Я включил Apache Server-Status, и, насколько я могу судить, ресурсы не облагаются чрезмерными налогами (процессор остается ниже 1% , работает максимум 4 из 8 рабочих). Но даже обновление страницы состояния сервера ставится в очередь.

Я использую экземпляр EC2 t2 micro с сертификатами tls. Я перенаправляю трафик с порта 80 на порт 443 с помощью двух директив VirtualHost (одна - на основной сайт, другая - на субдомен, обе находятся в одном файле).

Я пробовал различные предложения в Интернете, но я ' m не уверен, действительно ли они работают, поскольку атаки продолжаются, а затем время ожидания в очереди.

Например, Хорхе запрашивает у меня это в моем .conf:

IfModule mod_ssl.c>
FileETag None
TraceEnable off
<IfModule mod_headers.c>
        Header set X-XSS-Protection "1; mode=block"
</IfModule>

<Location "/">
SetEnvIfNoCase User-Agent "Mozilla/5.0 Jorgee" bad_bot
Deny from env=bad_bot
</Location>

Это первые строки в моем .conf. Прошло через https: //www.hurl. it / , который отвечает 403. Я бы подумал, что он прямо откажет в соединении, но это не так.

Я также попытался ограничить количество соединений на IP, используя команду iptables:

sudo iptables -A INPUT -p tcp --syn -m connlimit --connlimit-above 5 --connlimit-mask 32 -j REJECT --reject-with tcp-reset 

Выполнение sudo iptables -L отображает следующее:

ubuntu@ip-172-31-55-158:~$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
LOG        all  --  anywhere             anywhere             limit: avg 5/min burst 5 LOG level debug prefix "iptables denied: "
REJECT     tcp  --  anywhere             anywhere             tcp flags:FIN,SYN,RST,ACK/SYN #conn src/32 > 5 reject-with tcp-reset

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Тем не менее, я все еще получаю более 100 запросов менее чем за минуту с того же IP.

Я хочу управлять этими запросами с помощью apache и iptables. Спасибо.

0
задан 1 September 2017 в 18:01
1 ответ

Оказывается, у меня была конфликтующая запись A (так как может быть только один хост для: перенаправления URL, CName и записи A). После того, как я удалил конфликтующую запись, соединение удалось быстро установить, и к сайту одновременно обращались несколько человек.

0
ответ дан 24 November 2019 в 03:54

Теги

Похожие вопросы