Защита сайта от взлома и брута

28/08/2016 12:10

В статье пойдет речь о защите сайта на CMS WordPress, хотя эта конструкция подойдет и к другим сайтам, так она основана на файлах .htaccess и .htpasswd. Для истинных хакеров я не думаю, что они вызовут непреодолимую преграду, если захотят взломать, взломают, но и хлопот получат. Это прежде всего защита от скрипт кидисов, товарищей считающих себя хакерами, но на самом деле пользующимеся софтом и методиками выложенными в паблик, и любое отклонение от шаблона заставляет виснуть их мозг.


Первое, что я делал это ставил пароль на админку сайта. Создаем файл в админки сайта .htaccess, в котором указываем путь до файла .htpasswd относительно корня сервера. Пример:


 AuthName В«Защищенная зонаВ»
 AuthType Basic
 AuthUserFile /home/xxxx/www/mysite.ru/wp-admin/.htpasswd
 Require valid-user

 Теперь нам нужно создать файл .htpasswd в директории /wp-admin/, который содержит логин пользователия и пароль зашифрованный в MD5. Идем по ссылке,https://support.ihc.ru/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=48 и в самом низу геннерируем необходимоую информацию. Вводим необходимые данные, нажимаем на кнопку В«GenerateВ» и полученную информацию копируем, вставляем в файл .htpasswd и сохраняем. Все теперь в вашу админку без этих паролей не попасть. Это конечно не 100% защита, но отобьет желание у большинства В«хакеровВ».
 

Но как показала практика, защита сайта на этом не ограничивается, ведь многие пробуют узнать пароль не взломом, а брутом (брутфорс – полный перебор, для желающих более полно ознакомится, что это такое могу посетить сайт википдеия, http://ru.wikipedia.org/wiki/Полный_перебор). Так вот, проснувшись одним прекрасным зимним утром, в статистике нагрузке на хостинг я увидел неприлично большой для своих сайтов показатель – 210cpu (это значение к 9 утра!!!), это при том что разрешенная нагрузка на моем тарифе 72cpu, а среднее потребление за последний месяц колебалось от 60 до 70cpu.


 Посмотрев в файл логов сайта, который хранится в большенстве случаев в папке /logs/, понял, что это брут. Первая мысль была просто забанить ip, но что делать если взломщик сменить ip или будет использовать прокси? На мой взгляд это не выход, так можно миллион ip забанить, это рутина. Проще не запрещать ip на вход, а разрешать (это конечно вопрос философский, так как авторы подобной информации считают наоборот). Т.е. можно создать список, и только пользователь с ip из этого списка сможет попасть в закрытую директорию. Конечно пользователям билайн, мтс, мегафон – это проблематично, так как составить все возможные варианты сложно. Например, сидя дома в Ставропольском крае, яндекс мне предлагал поиск, то по Ростову, то по Краснодару, т.е. мне нужно было бы собирать подсети оператора всего юга, что бы без проблем входит на сайт. Но к счастью или к несчастью (качество нашего Ростелекома не самое лучшее), я использую ADSL. У своих провайдеров вы можете получить используемые ими подсети.