УрокЗакрываем доступ к сайту определённым IP адресам
На протяжении последних нескольких месяцев в источниках посетителей наблюдаю сервис http://checks.panopta.com. По заявлению создателей - это сервис, который постоянно пингует сайт, проверяя на доступность. По совету xandeadx, я решил закрыть этому сервису доступ к своему сайту. Делается это в два этапа:
Узнаём IP адрес сайта
Банить надо по айпишнику, поэтому для начала его надо узнать :) Можно пользоваться разными whois-серсисами, однако мне проще открыть консоль пингануть сайт:
ping checks.panopta.com
Ответ я получу с ip адреса сайта.
Теперь копируем ip адрес и переходим к следующему этапу.
Добавляем IP в список запрещённых
В корне Друпала лежит файл .htaccess. По умолчанию доступ к сайту есть у всех. Но в данной ситуации надо у одного ip адреса этот доступ забрать. Поэтому дописываем в начало файла:
Order allow,deny allow from all deny from 66.228.52.108
Теперь всех запросы, которые будут идти с ip 66.228.52.108 апач будет посылать лесом, а я буду спать спокойно.
Дополнение
В Drupal 7 в settings.php появилась возможность добавлять список айпишников для бана. За это отвечает переменная $conf['blocked_ips'].
$conf['blocked_ips'] = array( '66.228.52.108', );
Принцип работы следующий: каждый раз при загрузке страницы Друпал вытягивает из таблицы {blocked_ips} список блокированных ip адресов. Для таких адресов загрузка тем, модулей и т.д. производиться не будет. Кстати, если можно указать такую конфигурацию блокированных адресов:
$conf['blocked_ips'] = array();
В этом случае блокировка пользователей по ip адресам будет отключена.
Однако на высоконагруженных проектах лучше избегать даже этого проверяющего запроса перед загрузкой сайта. Поэтому я всё же рекомендую пользоваться первым вариантом - блокировать пользователей не поднимая php и mysql.
- Spleshka
- 02.11.2011
- 19580
Комментарии
а расскажи про
# $conf['blocked_ips'] = array(
# 'a.b.c.d',
# );
в settings.php
дописал
Спасибо. Сайт воистину заиграл по новому!!
Еще можно закрыть доступ для всех адресов начинающихся например с 66.228...
Если кому интересно можете почитать мою статью:
htaccess запретить доступ
Возможно вам покажется интересным этот пост: http://litl-admin.ru/linux/banim-podnebesnuyu-kak-zakryt-dostup-na-sajt-dlya-celoj-strany.html
Так я блокировал доступ на сайт для Китая. Чем этот метод лучше - не нагружает веб-сервер лишними проверками, так как в случае ДДОС-а сайт "ляжет"
Привет, а если первый вариант не работает и вредный айпишник каждый день стоит на пороге сайте и ковыряет его - как ещё его можно запретить на WP
Комментировать