Защищаем и прячем админку через .htaccess
Еще год назад у меня очень часто нагрузка на сервер превышала предел допустимого по тарифу лимита. При этом проблема была не в самих сайтах, а банальной атаке злоумышленников на админку, с целью получить доступ для каких-то своих целей.
Сегодня я расскажу как справился с проблемой, что советую и вам сделать на всякий случай у себя.
ВНИМАНИЕ!!! Рекомендую способ двойной авторизации, вместо представленного на этой странице.
Соль всей ситуации в том, что сам процесс перебора пароля создавал нагрузку на сервер, т.к. шло обращение к БД. Установленный плагин Login Lockdown справлялся со свое работой, но злоумышленники постоянно меняли свой IP.
Это стало известно после анализа файла логов сервера. Если вы так же в будущем будете анализировать данный файл, то не забудьте исключить свой компьютер из списка. Для начала узнайте как проверить ip в офисе и дома.
В результате было принято решение сменить адрес формы логина в админку, а так же прикрыть админку для всех посторонних, у кого не мой IP.
Стоит заметить, что некоторые хостинг-компании сами автоматически создали для всех пользователей новый адрес админки. Если вы пользуетесь услугами подобных хостингов, то дальше не читайте статьи и не тратьте время.
Как сменить адрес админки WordPress
Раньше публиковал такую статью Меняем URL страницы авторизации на WordPress. Здесь вроде бы и похожий результат, но эффект и назначение другие.
Не забываем делать резервные копии файлов, с которыми работаем.
- Для начала скопируем файл wp-login.php из корня сайта (там где лежит wp-config.php) на ftp к себе на компьютер.
- Переименовываем его как душе угодно. Например vhod.php
- Открываем этот файл бесплатной программой Notepad++ (или чем вам удобнее редактировать) и подменяем все вхождения фразы wp-login.php на vhod.php.
Сделать это быстро можно нажатием сочетания клавиш CTRL+F в Notepad++. Ну а в появившемся окне вводим:
Вот так за секунду я заменил во всем файле нужное мне вхождение фразы. Попадалось оно 12 раз.
Новый файл закидываем на ftp.
Аналогичную штуку нужно будет провернуть в файле general-template.php, который найдете в папке wp-includes тут же на ftp. Т.е. меняете вхождение фразы wp-login.php на vhod.php, а само название файла не меняете!
Теперь там же в корне сайта у вас есть файл .htaccess. Тоже копируем его к себе на компьютер и открываем на редактирование (можно обычным блокнотом Windows Notepad). Вставляем такой кусок кода, который блокирует доступ всем к файлу wp-login.php
Именно данный шаг снял нагрузку, а так же спрятал форму авторизации. Нагрузка была снята за счет вставки представленного кода в .htaccess: если шло обращение к http://site.ru/wp-login.php, то отдавало 403 ошибку, а не 404.
Повторим кратко алгоритм работы:
- Переименовываем файл wp-login.php на произвольное имя и подменяем в нем вхождения названия на новое.
- Аналогично подменяем в файле general-template.php старое название wp-login.php на новое.
- Прописываем в файле .htaccess запрет к доступу wp-login.php для всех
После обновления WordPress останется поправить только файл general-template.php. Но т.к. обновляется движок не так уж часто — это мелочь по сравнению с эффектом.
Ставим ограничение на вход по IP через .htaccess
В качестве дополнительных мер по защите сайта мною было принято ограничение на вход в админку по IP. Проблема решалась очень просто: создаем пустой файл .htaccess и добавляем в него такой код
Файл сохраняем и закидываем в папку wp-admin там же в корне сайта.
Вместо моего IP из примера поставьте свой настоящий. Притом можно добавить несколько IP с новой строки каждый:
Если IP динамический, то можете поставить цифры только до первой-второй-третьей точки:
На этом все.