Цитата:
Сообщение от Strikelol
поставить nginx сверху
|
да
Цитата:
Сообщение от Strikelol
и/или блочить в iptables
|
в общем случае
нет
а кого блокировать будем?
всех http-клиентов в мире, которые обратились по указанным левым доменам? - ошибка(или злой умысел) в настройках чужого DNS - не повод всех банить.
я могу создать под-домен gofuck.chesser.ru и указать для него A-запись на IP-адрес сервера гоуфака, после чего в твиттеры заслать сообщение "гоуфак переехал" и линк на мой под-домен. Далее все из твиттера пойдут посмотреть что за бред я написал...и было глупо всех этих юзеров забанить ))
Теперь о технически причинах.
На сервер ТС приходят http-запросы от http-клиентов, у которых в http-загаловке host прописан какой-то домен, не имеющий отношения к этому веб-серверу. Веб-сервер должен адекватно реагировать на такие запросы и, например, просто молчать, или редирект, или 404 ответ и тд, при этом нужно минимизировать затраты ресурсов на такие ответы. К примеру, надо отключить логи для такого и вообще дать понять клиенту, что он ошибся и больше не стоит приходить повторно.
Один апач будет тратить много ресурсов на каждый подобный ответ, т.к. из апача получается малоэффективный веб-фронтэнд, а если перед ним поставить nginx, то nginx всю работу сделает сам, а до бекэнда(апача) этот спам не дойдет. В nginx нужно сделать виртуальный сервер "по дефолту", отрубить для него access-логи и отдавать 444 ответ. Вместо nginx может быть lighttpd/varnish/CDN-сервисы - в общем любые фронтэнды, способные анализировать http-заголовки.
Теперь на счет ip и iptables... в данном случае нужна фильтрация по http-заголовкам, а на уровне системного фаервола http-хедеры еще не готовы к анализу и их парсинг происходит уже на веб-сервере.
Но iptables тут тоже может пригодиться для фильтрации конкретных "вредных" http-клиентов.
Например, если после анализа логов обнаружилось, что большая часть этих спам-запросов идет с одних и тех же IP адресов(часто они принадлежат хостерам), тот тут да - можно банить через iptables.
имхо