LINUX.ORG.RU
решено ФорумAdmin

Как запретить доступ к веб-странице

 , ,


0

2

На веб страничке одного сайта была форма для комментариев, которая не запрашивала капчи. На этой странице начал флудить какой-то бот. База данных комментов очищена, страничка удалена, но боты всё ещё хотят что-то от этой несуществующей странички. Постоянно в логах, идут запросы на страничку (с разных айпишников), пример:

193.242.117.220 - - [17/May/2014:00:15:43 +0400] "GET /lalala/page.html?start=232630 HTTP/1.1" 403 336 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.102 YaBrowser/14.2.1700.12403 Safari/537.36"
Что бы это значило? Опасно ли это (я думаю что нет)? Можно ли сделать так, чтобы это не мозолило глаза в логах?

★★★★★
Ответ на: комментарий от Amet13

Ну так добавь отдельный локейшн для этого, типа такого

          location = /lalala/page.html {
                        allow 1.2.3.4;
                        deny all;
     }
Или просто:
location = /lalala/page.html {
    return 444;
}

xtraeft ★★☆☆
()
Последнее исправление: xtraeft (всего исправлений: 1)
Ответ на: комментарий от hbars

В htaccess прописано такое:

RewriteEngine On
RewriteRule ^lalala/lalala/page.+$ - [F,L]
Но логи всё равно забиваются информацией.

Amet13 ★★★★★
() автор топика
Ответ на: комментарий от xtraeft

Пробовал добавлять такое правило в iptables:

iptables -I INPUT 1 -p tcp --dport 80 -m string --string "GET /lalala/page" --algo kmp -j DROP
Nginx на некоторых сайтах начинает то 500ю ошибку отдавать, то ли ещё что-то. В логах что-то типа:
2014/05/17 23:08:29 [crit] 7685#0: *217047 open() "/var/www/site/main.css" failed (24: Too many open files), client: 99.99.99.99, server: example.ru, request: "GET main.css HTTP/1.1", host: "example.ru", referrer: "http://example.ru/support.html"

Amet13 ★★★★★
() автор топика
Последнее исправление: Amet13 (всего исправлений: 1)

Пока сделал так, вроде работает без косяков:

iptables -A INPUT -p tcp -m tcp --dport 80 -m string --string "/lalala/page.html" --algo kmp -j DROP

Amet13 ★★★★★
() автор топика
Ответ на: комментарий от Amet13

Nginx на некоторых сайтах начинает то 500ю ошибку отдавать

А зачем ты это правило всем доменам добавляешь? Добавь только для нужного. Хотя эти правила не могут вызвать 500 ошибку, поэтому читай ниже.

В логах что-то типа:
Too many open files

Эта ошибка не имеет отношения к тому правилу, что я дал.
Читай http://arm1.ru/blog/oshibka-nginx-too-many-open-files

Для начала worker_rlimit_nofile 16384 в конфиг nginx, если не поможет - правь лимиты, как описано по той ссылке.

xtraeft ★★☆☆
()
Последнее исправление: xtraeft (всего исправлений: 1)
Ответ на: комментарий от xtraeft

Добавь только для нужного.

В логах запрос идёт в виде:

GET /lalala/page.html
а не
http://domain.com/lalala/page.html

worker_rlimit_nofile 16384

Это я уже поставил.

Пока вроде работает, буду дальше смотреть логи, пока чисто всё.

Amet13 ★★★★★
() автор топика
Последнее исправление: Amet13 (всего исправлений: 1)
Ответ на: комментарий от Amet13

Похоже

Скорее всего - глупости. Назначь вхостам по отдельному логу и убедись сам.

То что я написал постом выше работает уже час без ошибок.

Помоему, это костыль, т.к. твою задачу предназначен решать именно фронтенд (иначе зачем он нужен?).

xtraeft ★★☆☆
()
Последнее исправление: xtraeft (всего исправлений: 1)

Что бы это значило? Опасно ли это (я думаю что нет)?

Это говорит что кто-то попросил эту страницу и получил в ответ статус 403. Ничего опасного нет. Решение с iptables это еще тот костыль

Можно ли сделать так, чтобы это не мозолило глаза в логах?

location /lalala/page.html {
    access_log  off;
}

А зачем смотреть в лог глазами? Там еще не такое бывает

disarmer ★★★
()
Ответ на: комментарий от disarmer

Вот пример лога:

213.183.27.144 - - [18/May/2014:19:52:19 +0400] "GET /zakony/item/3-%D0%BE-%D0%B4%D0%B5%D1%8F%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D0%B8-%D0%BF%D0%BE-%D0%B2%D0%B7%D1%8B%D1%81%D0%BA%D0%B0%D0%BD%D0%B8%D1%8E-%D0%BF%D1%80%D0%BE%D1%81%D1%80%D0%BE%D1%87%D0%B5%D0%BD%D0%BD%D0%BE%D0%B9-%D0%B7%D0%B0%D0%B4%D0%BE%D0%BB%D0%B6%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8/3-%D0%BE-%D0%B4%D0%B5%D1%8F%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D0%B8-%D0%BF%D0%BE-%D0%B2%D0%B7%D1%8B%D1%81%D0%BA%D0%B0%D0%BD%D0%B8%D1%8E-%D0%BF%D1%80%D0%BE%D1%81%D1%80%D0%BE%D1%87%D0%B5%D0%BD%D0%BD%D0%BE%D0%B9-%D0%B7%D0%B0%D0%B4%D0%BE%D0%BB%D0%B6%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8.html?start=644 HTTP/1.1" 200 9372 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.102 YaBrowser/14.2.1700.12403 Safari/537.36"

При добавлении:

location /zakony/item/3-*.html {
access_log off;
}
Ничего не происходит.

Amet13 ★★★★★
() автор топика
Ответ на: комментарий от hidden_4003

Вот скажи ты в документации на location хоть в одном месте видишь звездочки?

Да.

Пробовал:

location ~* /zakony/item/3-*.html$
Не выходит.

Amet13 ★★★★★
() автор топика
Ответ на: комментарий от Amet13

location ~* /zakony/item/3-*.html$

Точку перед звездочкой забыл. Ну и nginx рестартить/релоадить не забываешь, разумеется?

 location ~ ^/(wp-admin|wp-login\.php) {
                        deny all;
                }

Кусок из моего рабочего nginx конфига, например. Вобщем учи регекспы, или жди кого-то, кто напишет его за тебя.

xtraeft ★★☆☆
()
Последнее исправление: xtraeft (всего исправлений: 1)
Ответ на: комментарий от xtraeft

А для чего точка перед звёздочкой нужна? Я этого не понял, вроде она там не нужна. nginx рестарчу.

Amet13 ★★★★★
() автор топика

fail2ban натрави на логи nginx'а.

anonymous
()
Ответ на: комментарий от Amet13

Заранее уточню, что могу ошибаться, но все же: точка - любой символ, * - ноль или больше повторений паттерна.

Точно не помню, как работают регекспы в nginx, но если точку не поставить - у тебя будут искаться дефисы. Если точку поставишь - любое количество любых символов.

Проверил пхп регулярками
/zakony/item/3-.*.html - работает
/zakony/item/3-*.html - не работает

xtraeft ★★☆☆
()
Ответ на: комментарий от xtraeft

Спасибо. Оно.

location ~* /zakony/item/3-.*.html {
	access_log off;
	error_log off;
}

Amet13 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.