Журнал Nginx показывает подозрительный доступ к каталогу!!! Как их заблокировать?
В моем журнале Nginx недавно я заметил 100 записей вроде этой, где поиск по каталогу был выполнен с ошибкой, потому что этот каталог не существует на моем веб-сервере. Теперь, как я могу заблокировать их, если они не смогли найти несколько каталогов?
2015/06/29 09:33:54 [error] 23641#0: *1687 open() "/usr/share/nginx/html/section/wp-login.php" failed (2: No such file or directory), client: 116.58.246.226, server: localhost, request: "GET /section/wp-login.php HTTP/1.1", host: "blog.abcd.info"
2015/06/29 09:33:55 [error] 23641#0: *1687 open() "/usr/share/nginx/html/cms/wp-login.php" failed (2: No such file or directory), client: 116.58.246.226, server: localhost, request: "GET /cms/wp-login.php HTTP/1.1", host: "blog.abcd.info"
2015/06/29 09:33:56 [error] 23641#0: *1687 open() "/usr/share/nginx/html/site/wp-login.php" failed (2: No such file or directory), client: 116.58.246.226, server: localhost, request: "GET /site/wp-login.php HTTP/1.1", host: "blog.abcd.info"
2015/06/29 09:33:57 [error] 23641#0: *1687 open() "/usr/share/nginx/html/blog/wp-login.php" failed (2: No such file or directory), client: 116.58.246.226, server: localhost, request: "GET /blog/wp-login.php HTTP/1.1", host: "blog.abcd.info"
2015/06/29 09:33:58 [error] 23641#0: *1687 open() "/usr/share/nginx/html/admin/wp-login.php" failed (2: No such file or directory), client: 116.58.246.226, server: localhost, request: "GET /admin/wp-login.php HTTP/1.1", host: "blog.abcd.info"
1 ответ
1). Как правило, эти сканеры находят что-то вроде "admin.php" - вы можете собрать свою собственную базу URL;) и заблокировать их.
2). Если вы хорошо понимаете, какие веб-приложения работают на вашем сервере и какие файлы они используют - вы можете запретить доступ ко всем php-файлам - они являются наиболее популярной целью сканеров. И явно разрешить только для ваших файлов.
location =/index.php {
proxy_pass http://127.0.0.1:<port>;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
location / {
proxy_pass http://127.0.0.1:<port>;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
location =/custom.php {
# all other Your own scripts You may define such way, as this location
proxy_pass http://127.0.0.1:<port>;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
location ~ \.php$ {
access_log /path/to/log/nginx_deny.log name_log;
deny all;
}
Я задал подобный вопрос несколько месяцев назад здесь:) и нашел хороший способ в конце. Вы можете посмотреть более подробно здесь: nginx - отклонить все запросы *.php, кроме index.php по соображениям безопасности