@donater47

Как заблокировать useragent?

Сайт ддосят такими запросами:
127.0.0.1 - - [27/Feb/2018:00:16:23 +0300] "POST /payment.php HTTP/1.0" 302 0 "-" "-"

127.0.0.1 - - [27/Feb/2018:00:16:24 +0300] "GET // HTTP/1.0" 200 33183 "https://XXXX.ru/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36"

Как их запретить на уровне iptables?
  • Вопрос задан
  • 103 просмотра
Пригласить эксперта
Ответы на вопрос 4
kotomyava
@kotomyava
Системный администратор
Разбирать user agent на уровне iptables не лучшая идея - там проверку будет проходить каждый пакет и это будет весьма накладно по ресурсам. К том же, это не будет работать для https.
Блокировку по user agent можно делать на уровне веб сервера.
Или логировать веб сервером попытки, и блокировать через iptables с помощью fail2ban, например уже по адресу.
Ответ написан
megafax
@megafax
web-программист
Решите данную проблему на уровне nginx через limit_req а не через UserAgent. Если у Вас подключена внешняя оплата, то при фильтрации UA не будут доходить запросы с нее, поскольку сторинние сервисы не заботяся о простановке UA при информировании статуса оплаты.
Ответ написан
gobananas
@gobananas
botbot.ru
Если там апач веб-сервер, то можно через htaccess заблокировать:
SetEnvIfNoCase user-Agent *Slurp* [NC,OR]
SetEnvIfNoCase user-Agent *Baiduspider* [NC,OR]
SetEnvIfNoCase user-Agent ^DuckDuckBot [NC,OR]
SetEnvIfNoCase user-Agent ^Sogou [NC]

Order Allow,Deny
Allow from all
Deny from env=bad_bot
Ответ написан
grep-ом выбираешь адреса с интересующим UA и в iptables на DROP
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы