Задать вопрос

Почему Nginx не всегда пишет в log 404-ю ошибку?

Привет.
Такой вопрос про nginx.

Типично, при обращении по https к несуществующему файлу в access.log пишется нормальная 404-я ошибка:
176.111.75.7 - - [14/Dec/2024:22:08:07 +0300] "GET /durdom.php HTTP/1.1" 404 187 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"


При попытке обращения по http происходит 301-й редирект на https (это прописано в конфиге nginx) и также 404-я ошибка:
176.111.75.7 - - [14/Dec/2024:22:09:25 +0300] "GET /durdom.php HTTP/1.1" 301 169 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"
176.111.75.7 - - [14/Dec/2024:22:09:25 +0300] "GET /durdom.php HTTP/1.1" 404 187 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"


Но, почему то часто в acсess.log вижу многотысячные попытки ботов прошерстить разные файлы, которые при этом не вызывают ошибки 404. И везде пишется попарная 301- ошибка. Вот фрагмент лога:

150.136.112.62 - - [14/Dec/2024:14:21:11 +0300] "GET /dropdown.php HTTP/1.1" 301 169 "-" "-"
150.136.112.62 - - [14/Dec/2024:14:21:12 +0300] "GET /dropdown.php HTTP/1.1" 301 169 "-" "-"
150.136.112.62 - - [14/Dec/2024:14:21:12 +0300] "GET /about.php HTTP/1.1" 301 169 "-" "-"
150.136.112.62 - - [14/Dec/2024:14:21:12 +0300] "GET /about.php HTTP/1.1" 301 169 "-" "-"
150.136.112.62 - - [14/Dec/2024:14:21:13 +0300] "GET /admin.php HTTP/1.1" 301 169 "-" "-"
150.136.112.62 - - [14/Dec/2024:14:21:13 +0300] "GET /admin.php HTTP/1.1" 301 169 "-" "-"
150.136.112.62 - - [14/Dec/2024:14:22:11 +0300] "GET /wp-admin/js/widgets/xmrlpc.php?p= HTTP/1.1" 301 169 "-" "-"
150.136.112.62 - - [14/Dec/2024:14:22:11 +0300] "GET /wp-admin/js/widgets/xmrlpc.php?p= HTTP/1.1" 301 169 "-" "-"
150.136.112.62 - - [14/Dec/2024:14:22:11 +0300] "GET /wp-admin/css/colors/xmrlpc.php?p= HTTP/1.1" 301 169 "-" "-"
150.136.112.62 - - [14/Dec/2024:14:22:12 +0300] "GET /wp-admin/css/colors/xmrlpc.php?p= HTTP/1.1" 301 169 "-" "-"
150.136.112.62 - - [14/Dec/2024:14:22:01 +0300] "GET /alfanew.php7 HTTP/1.1" 301 169 "-" "-"
150.136.112.62 - - [14/Dec/2024:14:22:01 +0300] "GET /alfanew.php7 HTTP/1.1" 301 169 "-" "-"
150.136.112.62 - - [14/Dec/2024:14:22:02 +0300] "GET /adminfuns.php7 HTTP/1.1" 301 169 "-" "-"
150.136.112.62 - - [14/Dec/2024:14:22:02 +0300] "GET /adminfuns.php7 HTTP/1.1" 301 169 "-" "-"
150.136.112.62 - - [14/Dec/2024:14:22:02 +0300] "GET /ebs.php7 HTTP/1.1" 301 169 "-" "-"
150.136.112.62 - - [14/Dec/2024:14:22:02 +0300] "GET /ebs.php7 HTTP/1.1" 301 169 "-" "-"
150.136.112.62 - - [14/Dec/2024:14:22:02 +0300] "GET /ws.php7 HTTP/1.1" 301 169 "-" "-"
150.136.112.62 - - [14/Dec/2024:14:22:03 +0300] "GET /ws.php7 HTTP/1.1" 301 169 "-" "-"
150.136.112.62 - - [14/Dec/2024:14:22:03 +0300] "GET /alfanew2.php7 HTTP/1.1" 301 169 "-" "-"
150.136.112.62 - - [14/Dec/2024:14:22:03 +0300] "GET /alfanew2.php7 HTTP/1.1" 301 169 "-" "-"
150.136.112.62 - - [14/Dec/2024:14:22:03 +0300] "GET /alfa-rex2.php7 HTTP/1.1" 301 169 "-" "-"
150.136.112.62 - - [14/Dec/2024:14:22:03 +0300] "GET /alfa-rex2.php7 HTTP/1.1" 301 169 "-" "-"


Причем я сам такой запрос не смог составить, чтобы 404-я не писалась.

У меня на nginx стоит fail2ban, который ищет множественные попытки запросов к несуществующим .php по шаблону на 404 ошибку и он, разумеется, отлавливает такие запросы, а они иногда прям по несколько часов долбятся забивая и без того не жирные ресурсы.

Вопрос:
Что за запрос мне посылают, что он не пишет в лог 404-ю ошибку?
  • Вопрос задан
  • 59 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
@SunTechnik
Редирект отрабатывает Web-client ( browser, curl, wget)
Но если используется своя реализация, то могут и не отрабатывать. (если куда-то послали, не обязательно туда идти).
Вы это можете реализовать через telnet/netcat вручную сформирован http запрос.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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