Как вынести админку WordPress на поддомен и ограничить доступ по IP-адресу

Как вынести админку WordPress на поддомен и ограничить доступ по IP-адресу

Хотите спрятать админку WordPress от ботов и злоумышленников? Тогда перенесите её на поддомен и ограничьте доступ по IP. В статье объяснили, как это сделать на Apache и Nginx.

Введение

Каждый сайт на WordPress хранит в себе самое ценное — доступ к панели администратора. Именно туда стремятся попасть боты и злоумышленники, пытаясь подобрать пароли и перегрузить сервер бесконечными запросами. Обычная защита паролем — это минимум, но в эпоху постоянных брутфорс-атак его уже недостаточно.

В статье рассказали, как вынести админку WordPress на отдельный поддомен и дополнительно закрыть её доступом по IP-адресам. Разобрали, как создать поддомен, перенести туда административные файлы и настроить правила в Apache или Nginx так, чтобы в панель входили только свои.

Аренда VPS/VDS — от ₽219/месяц

Почему выбирают VPS от AdminVPS:

✓ Дешевле физического сервера

✓ Более гибкий и мощный, чем обычный хостинг

✓ Бесплатная защита от DDoS и техподдержка 24/7

✓ Масштабируется под любые задачи

Виртуальный сервер VPS/VDS — ваш личный сервер для сайтов, магазинов, ботов и других проектов.

popup12

Поддомен для админки и ограничение по IP

Панель администратора (админка) WordPress по умолчанию доступна по стандартному пути …/wp-admin и странице входа wp-login.php на основном домене сайта. Злоумышленники отлично знают эти адреса и регулярно пытаются подобрать пароли через них. Это как если бы ключ от дома всегда лежал на виду, рано или поздно кто-то проник бы в ваш дом. Вынос админки на отдельный скрытый поддомен убирает ключ из виду. Случайные боты не будут ломиться туда, потому что просто не узнают новый адрес административной панели. Конечно, опытный хакер может разгадать замысел, но такой шаг всё же отсекает массу автоматических атак и снижает нагрузку на сайт.

Дополнительно спрятанную админку можно закрыть на замок, а именно ограничить доступ к ней по IP-адресу. Тогда страница входа и консоль откроются только с тех устройств и сетей, которым вы сами разрешите. Даже если злоумышленник выяснит адрес вашего поддомена для админки, он не сможет увидеть страницу входа, потому что его запросы сервер просто отвергнет. Подобное IP-ограничение добавляет ещё один уровень защиты поверх обычного пароля. Этот метод особенно удобен, когда сайт администрирует один человек или небольшая команда из фиксированных локаций, где IP-адреса не меняются.

Перед тем как реализовывать такое решение, убедитесь, что у вас действительно статический IP-адрес или хотя бы стабильный. Статический IP остаётся неизменным при каждом подключении к Интернету. Его легко узнать, зайдя на сервис вроде 2ip. Если при повторных проверках цифры не меняются, адрес статический. Если же интернет-провайдер выдаёт динамический IP, то жёсткая привязка может сыграть злую шутку, и вы сами окажетесь заперты снаружи, если адрес изменится. В таком случае лучше заранее подумать о резервном доступе или использовать более гибкие методы защиты, например, двухфакторную авторизацию.

Перенос админ-панели WordPress на поддомен

Перенести административную панель на новый поддомен можно без переустановки WordPress, достаточно настроить домен и немного изменить конфигурацию сайта. Обязательно перед началом выполните резервное копирование файлов и базы данных на всякий случай. Хотя инструкция несложная, дополнительная подстраховка никогда не помешает.

Для начала вам нужен поддомен, на котором будет расположена админка. Поддомен — это адрес вида admin.ВашДомен.ru, то есть отдельное имя внутри вашего основного домена. Создать его можно через панель управления хостингом или вручную через настройки DNS. В панели хостинга достаточно зайти в раздел «Домены» или «Поддомены» и добавить новый поддомен, указав имя и корневую папку для него. Если сайт находится на VPS/VDS и вы настраиваете всё вручную, добавьте в DNS вашего домена запись типа A для поддомена, указывающую на IP вашего сервера или настройте CNAME на основной домен. Затем пропишите поддомен в конфигурации веб-сервера. Например, для Apache можно добавить ServerAlias, а для Nginx дописать имя поддомена в директиву server_name. В результате поддомен admin.вашдомен.ru будет указывать на тот же сервер, и его корневая директория станет отдельной папкой, куда вы поместите файлы админки.

Пример: если основной сайт работает из папки /home/user/site.com/public_html, хостинг может создать для поддомена admin.site.com отдельную папку вроде /home/user/site.com/admin. Запомните путь к этой директории, он пригодится в следующих шагах.

После создания поддомена необходимо разместить в его папке файлы, отвечающие за работу админ-панели. Проще всего скопировать туда содержимое директории wp-admin вашего WordPress. С помощью FTP-клиента или через файловый менеджер хостинга найдите на основном сайте папку wp-admin и скопируйте все файлы и подпапки из неё в директорию нового поддомена. Например, если поддомен указывает на папку admin/ в вашем хостинге, то внутри неё после копирования тоже должна появиться папка wp-admin со всеми файлами. Копировать нужно именно содержимое, сохраняя структуру, а не просто один файл. Также скопируйте файлы wp-login.php и wp-signup.php из корня сайта, они отвечают за страницу входа. Эти файлы можно тоже поместить в корень папки поддомена, чтобы вход происходил через admin.ВашДомен.ru/wp-login.php.

Теперь нужно сообщить самому WordPress, что его адрес WordPress изменился на новый поддомен, а адрес сайта для посетителей остаётся прежним. Проще всего сделать это через настройки админки, пока она ещё доступна на старом адресе. Авторизуйтесь в панель администратора через основной домен и перейдите в раздел «Настройки», далее в «Общие». Там есть два поля: «Адрес WordPress (URL)» и «Адрес сайта (URL)». В поле «Адрес WordPress (URL)» впишите полный URL вашего нового поддомена. Учтите, если сайт использует SSL, поддомен тоже должен работать по HTTPS. В поле «Адрес сайта (URL)» оставьте URL основного сайта, например https://example.com. Сохраните изменения.

После сохранения настроек WordPress начнёт воспринимать новый поддомен как место своей административной части. Это может привести к автоматическому разлогиниванию, потому что сессия привязана к другому домену. Не пугайтесь, так и должно быть. Теперь админка официально переехала на поддомен.

Попробуйте зайти в панель управления по новому адресу. Откройте в браузере admin.ВашДомен.ru/wp-login.php и введите свои имя пользователя и пароль WordPress. Если всё сделано правильно, вы попадёте в знакомый интерфейс консоли, но уже он загрузится с адреса поддомена. Все ссылки в админке теперь будут начинаться с admin.ВашДомен.ru/wp-admin/..., а не с основного домена. При попытке открыть ВашДомен.ru/wp-admin/ должно происходить перенаправление на новый адрес или показываться ошибка. Если по старому адресу админ-панель всё ещё открывается, значит настройка адресов прошла не до конца. Возможно, WordPress не сохранил новые URLs. В таком случае можно прописать их напрямую в файле wp-config.php или очистить кеш.

Сама по себе смена адреса — это лишь маскировка. Для полноты безопасности добавьте ограничение по IP, чтобы даже на новом скрытом адресе панель была доступна только вам.

Ограничение доступа к админке по IP-адресу

Следующим шагом нужно сказать серверу: «пропускай к странице входа только меня». При попытке зайти на админку с любого другого IP пользователь будет получать отказ в доступе. Настроить это можно через файл конфигурации веб-сервера. На Apache для этих целей используется файл .htaccess, а на Nginx правила прописываются в конфигурации сайта. Рассмотрим вариант с Apache/.htaccess, как наиболее распространённый и доступный на виртуальном хостинге.

Если вы не уверены, какой IP-адрес у вашего компьютера или офиса, сначала определите его. Проще всего зайти на сайт типа 2ip, он сразу покажет ваш внешний IP. Если администраторов несколько, соберите все их IP-адреса, с которых они будут работать. Запишите эти значения, нужно будет точно указать их в настройке.

Откройте файловый менеджер или FTP на сервере и найдите папку с вашим поддоменом, куда вы скопировали админку. В этой директории должен быть файл .htaccess. Если его нет, создайте новый текстовый файл с именем .htaccess. Используя встроенный редактор или любой текстовый, добавьте в начало файла такие строки:

Order Deny,Allow
Deny from all
Allow from 123.45.67.89

Здесь 123.45.67.89 — это образец вашего IPv4-адреса. Сначала директива Deny from all запрещает доступ всем подряд, а следующая строка Allow from ... выдаёт пропуск указанному адресу. Если нужно разрешить несколько адресов, просто добавьте новые строки Allow from ... с каждым IP. Сохраните изменения в файле .htaccess и закройте редактор.

Теперь проверьте, как работает ограничение. Попробуйте открыть страницу входа на админку с вашего разрешённого IP. Она должна отображаться, и вы сможете войти как обычно. После этого, для эксперимента, отключите Wi-Fi и попробуйте зайти, например, через мобильный Интернет. При попытке загрузить страницу входа вы должны увидеть сообщение об ошибке 403 или просто пустую страницу с отказом в доступе.

Если вы используете Nginx, настройка будет чуть отличаться. В конфигурационном файле сайта нужно прописать директивы доступа внутри блоков location для /wp-admin и для скрипта входа. Например:

location /wp-login.php {
    allow 123.45.67.89;
    deny all;
}
location /wp-admin/ {
    allow 123.45.67.89;
    deny all;
}

После добавления этих строк сохраните конфигурацию и перезагрузите nginx. Эффект будет аналогичным.

Как уже упоминалось, при смене вашего IP-адреса доступ будет заблокирован, и придётся снимать ограничения вручную через FTP/консоль. Чтобы снизить риск такой ситуации, можно заранее предусмотреть резерв. Один из вариантов — разрешать не конкретный IP, а диапазон. В правилах .htaccess допускается указать не все четыре группы цифр, а часть. Например, запись Allow from 123.45. впустит любого, чей адрес начинается на 123.45... Это менее безопасно, но если вы знаете, что ваш IP меняется только в последних числах, такой приём поможет не потерять доступ.

Другой вариант — добавить в разрешения IP вашего VPN или прокси, которым вы доверяете, чтобы в экстренном случае войти через него. Тем не менее, старайтесь мониторить свой актуальный адрес и при изменениях оперативно обновляйте правила.

Если редактирование .htaccess кажется сложным или неудобным, существует плагин WP-Ban и аналогичные решения, позволяющие блокировать адреса через интерфейс WordPress. В случае WP-Ban после установки зайдите в «Настройки», далее в Ban и добавьте нужные IP в белый список. Помните, что плагины работают уже на уровне WordPress, тогда как правила .htaccess или nginx отсекают лишний трафик раньше, не потребляя ресурсы сайта. Поэтому для постоянной защиты критически важных разделов лучше именно серверное ограничение.

Заключение

Теперь страница входа и консоль скрыты от посторонних глаз и заперты для чужих устройств. Даже если злоумышленник каким-то образом узнает, где находится ваша админка, попасть внутрь он не сможет. Вынесение админки на поддомен и ограничение по IP уже сейчас уменьшили вероятность взлома на порядки. Вы буквально превратили свою админ-панель в закрытый клуб по адресу, известному только вам.

Читайте в блоге:

Loading spinner
0 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Нужен VPS сервер?

Арендуйте мощный VPS сервер для ваших проектов! Быстрая настройка, высокая производительность и надежная поддержка 24/7. Начните прямо сейчас!

Что будем искать? Например,VPS-сервер

Мы в социальных сетях