На мой сайт попадает вредоносный трафик ботов, который я пытался остановить на прошлой неделе. Он отображается в моем журнале «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. Спасибо.
Оказывается, у меня была конфликтующая запись A (так как может быть только один хост для: перенаправления URL, CName и записи A). После того, как я удалил конфликтующую запись, соединение удалось быстро установить, и к сайту одновременно обращались несколько человек.