Разбираемся с атаками на ваш веб-сервер

Второй мой перевод для русскоязычной мандрива-вики. Статья про то, как бороться со спамом в коменты и рефер-спамом.

Спам в Referrer

Если вы ведете блог с APXS, который является модульной версией Апача, поставляемой с мандрива линукс, то есть три способа сделать это: директивы Апача, .htaccess директивы и наконец, mod_security.

Директивы Apache

Существует возможность установить переменные Апач так, что они будут срабатывать, когда рефер будет содержать часть урла и блокировать доступ по этим признакам. Сначала надо добавить строки устанавливающие правила для переменной окружения исходя из ключевых слов:

SetEnvIfNoCase Referer ".*(keyword1|keyword2|keyword\.com|etc.).*" BadReferrer


Затем устанавливаем доступ исходя из этих переменных:

#Site settings
<Directory "/var/www/html/directory">
    allow from all
    deny from env=BadReferrer
</Directory>

Теперь, когда кто-нибудь попытается зайти на сайт используя левый рефер, содержащий запрещенное слово, получит 403.

.htaccess директивы

Просто добавьте эти строки в .htaccess в корне сайта.

RewriteCond %{HTTP_REFERER} ^(.*).keyword1(.*)$ [OR]
RewriteCond %{HTTP_REFERER} ^(.*).key(.*)-word(.*)$ [OR]
RewriteCond %{HTTP_REFERER} ^(.*)keyword2(.*) [OR]
RewriteCond %{HTTP_REFERER} ^(.*)keyword3.(.*) [OR]
RewriteCond %{HTTP_REFERER} ^(.*)keyword.com(.*) [OR]
RewriteCond %{HTTP_REFERER} ^http://(www\.)?keyword4.*$
RewriteRule .* http://www.thispagecannotbedisplayed.com/ [R,L]

правила для mod_security

Часто используемый метод, и очень эффективный в плане неограничееных опций, которые можно применить к проблемным посетителям.

Добавьте строки /etc/httpd/conf.d/82_mod_security.conf навроде этих:

SecFilterSelective "HTTP_REFERER" "(keyword1|keyword2|key\.word\.3|etc)" "deny,log,status:403"

для запрета доступа. Можно поменять «status:403» на «redirect:http://127.0.0.1» для отправки запроса на машину запрашивающего. Или,можно отправить на несуществующий адрес, например 192.168.52.142 и сайт будет грузится до тех пока не сбросится по таймауту.

Также, для особо назойливых товарищей, можно сделать редирект на хост, с которого идет спам.

Добавьте следующие строки для решения спама в комментах:

SecFilterSelective "POST_PAYLOAD" "(keyword1|keyword2|key\.word\.3|etc)" "deny,log,status:403"

примерно тоже самое, что в случае с реферами, но уже блокирует комментарии.

0.00 avg. rating (0% score) - 0 votes

Comments are closed.

css.php