htaccess блокировка по ip

В последнее время участились результаты подбора паролей для движков wordpress и joomla, некие “заинтересованные” лица  пытаются подобрать пароли администраторов к сайтам. А так как админка этих сайтов всегда имеет один и тот же url адрес, имя “admin” и отсутствие капчи при входе, что существенно практически 90% сайтов на этих движках, то узнать пароль не составляет труда обычным перебором (брутфорсом). Для этих целей иногда используют целые ботнеты и блокировка одного ip адреса, часто не дает желаемого результата.

Некоторые разработчики предлагают специальные плагины, которые устанавливают капчу при входе. Это спасает от перебора, но не всегда дает 100% результат, так например атака спроецированная именно против вашего сайта может может обойти капчу, все зависит от мастерства людей, которые пытаются подобрать пароль.

htaccess блокировка ip

Так же различные плагины создают большую нагрузку на сервер, а именно апачу приходиться обрабатывать php код, а если он еще содержит и капчу и будет не одно обращение в секунду, а несколько потоков. То это уже будет похоже на небольшой DDOS :)

Решением все этих проблем будет использование файла htaccess и блокировка ip адресов по его конфигурации.

Можно использовать 2 варианта:

  • Запретить все адреса кроме своего (несколько своих)
  • Запретить определенные IP адреса (нескольких)

Чаще все используется первый метод, т.к. заходим мы с определенных компьютеров, а подбирать могут с любого IP, которые могут меняться в течении суток ( если ботнет).

Итак, для 1 варианта необходимо создать в нужно директории сам файл .htaccess (если он уже у вас существует, то необходимо дописать в его конец, с новой строки):

Где:

имя_файла.php – сайм файл, к которому необходимо запретить доступ

Order- в какой последовательности следует читать правила.

Deny – запретить

Allow – разрешить

Т.е. наш конфиг будет читаться веб сервером так: Для файла имя_файла.php  запретить доступ по всем ip адресам, но разрешить для Ваш_ip_адрес.php

Количество разрешаемых (Allow) ip адресов можно выставлять любое количество (ну в разумных пределах).

Если у вас используется огромное число ip адресов с которых нужно иметь доступ, а блокируемых ограниченное количество, то разумнее сделать правило на оборот (как во 2 варианте):

Теперь веб сервер будет читать так: Для имя_файла.php разрешить доступ всем, кроме Блокируемый_ip_адрес

htaccessТак же следут учесть, что файл .htaccess необходимо располагать в той же папке, что и обрабатываемый им файл (имя_файла.php), либо указывать полный путь до этого файла, начиная с корня системы.

Если у вас остались вопросы, пишите в комментариях или в форме обратной связи.

 

Поделиться в соц. сетях:

Опубликовать в Google Buzz
Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс