Ограничить доступ к админке wordpress. Как ограничить доступ к админке wordpress? Защита админки от брутфорс-атак

Файл .htaccess (Hypertext Access, Доступ к гипертексту ) — это конфигурационный файл сервера, который находится в корневой папке сайта. В этом файле можно сделать дополнительные настройки для защиты от хакеров и спама, например, запретить доступ к определенному файлу или папке, установить пароль на папку, добавить редиректы каких-то запросов, заблокировать ip и так далее. Это мощный инструмент, который можно использовать для увеличения безопасности сайта.

В этой статье вы узнаете, что можно добавить в файл .htaccess для увеличения безопасности сайта.

Что может делать.htaccess

Файл .htaccess находится в корневой папке сайта. Точка перед названием файла означает, что файл невидим, и вы сможете его видеть если включите настройку «Показывать скрытые файлы».

Отображать скрытые файлы в Filezilla

Файл используется для настройки сервера, типичное применение файла:

  • Включает и отключает редиректы на другие страницы
  • Добавляет пароль на папки
  • Блокирует пользователей по IP
  • Отключает показ содержимого папок
  • Создает и использует собственные страницы для ошибок

В Вордпрессе этот файл используется для создания красивых постоянных ссылок (Настройки — Постоянные ссылки — Общие настройки), и создается автоматически когда эта функция включается.

Если вы уже знаете, для чего нужен этот файл, переходите к .

Сделайте бэкап

.htaccess довольно чувствительный файл, поэтому одна ошибка в синтаксисе может положить весь сайт. Скопируйте файл на компьютер, если появится ошибка, вы сможете вернуться к первоначальному варианту.

Как создать.htaccess

В зависимости от вашей установки Вордпресс, у вас может не быть файла .htaccess , поэтому его нужно создать. Вы можете создать его на компьютере и перенести на сервер с помощью ftp-клиента, или создать этот файл в файл менеджере на хостинг-панели.

Если ваш сервер или компьютер не позволяет создать файл с таким именем, создайте файл htaccess.txt, перенесите его на сервер и на сервере переименуйте его в .htaccess .

Начиная с версии 4.2 все установки Вордпресс имеют красивые постоянные ссылки по умолчанию, поэтому файл .htaccess в этих версиях создается автоматически. В новый пустой файл добавьте стандартную запись, которую делает Вордпресс.

Для одиночной установки:

Для мультисайт установки, версия Вордпресс 3.5 или выше, если сайты находятся в подпапках:

Для мультисайт установки, версия Вордпресс 3.5 или выше, если сайты находятся на субдоменах:

Когда вы создаете новый .htaccess файл, дайте этому файлу как минимум 640 для защиты от возможных атак. Нормальные права для этого файла — 600. Если файл уже есть, проверьте, чтобы права доступа были не выше 640.

Куда добавлять изменения

Строки, начинающиеся с тега #, являются комментариями и не являются правилами для исполнения .htaccess .

Добавляйте свои комментарии к вашим правилам.

Когда вы добавляете свои правила, добавляйте их выше или ниже стандартных правил Вордпресс.

Не добавляйте и ничего не редактируйте между строками # BEGIN WordPress и # END WordPress . Для мультисайт установок таких комментариев нет, но не добавляйте и не редактируйте ничего в коде для мультисайт установок.

Если вы что-то исправили в этом коде, Вордпресс должен автоматически вернуть первоначальный вариант, но лучше ничего не менять. В крайнем случае у вас должна остаться копия файла, которую вы можете вернуть на сервер.

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

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

От автора: согласно данным исследования 2013 года, каждый день взламываются примерно 30 000 сайтов. И как все мы понимаем, чтобы обезопасить свой сайт от взлома, необходимо предпринять определенные меры. Важно обезопасить свои личные данные, но еще важнее дать пользователям понять, что их данные также находятся под защитой. Защищенный сайт значит сайт, заслуживающий доверия.

Существует несколько методов от взлома вашего сайта на WordPress. Один из них это ограничить доступ заданным пользователям. В этой статье я пошагово расскажу, как ограничить доступ к панели администратора WordPress по ip-адресу.

Но сначала давайте быстро пробежимся по угрозам безопасности сайтов на WordPress.

Угрозы безопасности WordPress

Взлом простым перебором – Когда хакер пытается получить доступ к сайту через форму авторизации, перебирая возможные имена пользователя и пароли.

Подтверждение правильности ввода имени – WordPress сообщает пользователям, какую часть из данных авторизации они ввели неправильно. К примеру, если правильно ввести имя пользователя, но ошибиться с паролем, WordPress подскажет пользователю об этом, что значительно облегчает поиск пароля простым перебором.

Версия WordPress – Если хакер узнает вашу версию WordPress, он может использовать уязвимости данной версии для получения доступа к сайту.

Глобальная регистрация в WordPress – По умолчанию в WordPress отключена возможность регистрации на сайте из любого уголка мира. Лучше оставить эту опцию выключенной в качестве превентивной меры.

Доступ к темам и плагинам – Администраторы сайта получают доступ к редактированию файла функциональности, что может привести к проблемам в безопасности. Не рекомендуется изменять файл функционала сайта.

Прежде чем редактировать файлы сайта, давайте рассмотрим предварительные шаги, которые необходимо проделать.

Меры безопасности

Чуть ниже мы добавим PHP код в файл настроек.htaccess. Но перед этим необходимо сделать резервную копию файла конфигурации.

Некоторые из вас захотят сделать полную копию сайта перед тем, как что-то изменять. Регулярное резервное копирование – хорошая привычка. Обязательно делайте копию сайта перед серьезными изменениями. Помочь в этом вам может плагин VaultPress .

Статический или динамический ip-адрес

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

Используйте инструкцию для динамического ip-адреса, если вы редактируете свой сайт из множества разных мест. IP-адрес часто меняется в случаях:

Когда другие члены команды разработчиков заходят и редактируют сайт из разных мест

Когда для редактирования вы используете мобильный телефон

Вы постоянно путешествуете, и вы заходите на сайт из разных мест

Основы разобрали, вот теперь можно и приступить к делу.

Приступаем к работе

Выше мы уже упоминали, что нам потребуется внести изменения в файл.htaccess. Второй шаг – найти файл конфигурации.htaccess. Этот файл располагается в корневой папке сайта. Если по каким-то причинам файла там нет, его можно создать вручную. Авторизуйтесь через cPanel или FTP и найдите этот файл.

Как только вы нашли файл, переходим к шагу три – вам нужно найти подходящий текстовый редактор, чтобы добавить код в файл конфигурации. Рекомендуем использовать или встроенный в cPanel редактор или установленный на компьютере (например Notepad).

Обратите внимание: Дабы не испортить существующие настройки сайта, весь код в.htaccess добавляется в самый верх.

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

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

Как ограничить доступ к панели администратора по статическому ip-адресу

Откройте файл.htaccess через cPanel или любой другой текстовый редактор.

Скопируйте код ниже в самый верх файла.htaccess (Gist).

RewriteEngine on RewriteCond %{REQUEST_URI} ^(.*)?wp-admin$ RewriteCond %{REMOTE_ADDR} !^12\.345\.678\.90 RewriteCond %{REMOTE_ADDR} !^IP Address InsertTwo$ RewriteCond %{REMOTE_ADDR} !^IP Address InsertThree$ RewriteRule ^(.*)$ -

RewriteEngine on

RewriteCond % { REMOTE_ADDR } ! ^ 12 \ . 345 \ . 678 \ . 90

RewriteCond % { REMOTE_ADDR } ! ^ IP Address InsertTwo $

RewriteCond % { REMOTE_ADDR } ! ^ IP Address InsertThree $

RewriteRule ^ (. * ) $ - [ R = 403 , L ]

Редактируем код

Вам осталось лишь изменить строки 4 и 5 (в Gist это строки 9 и 10) и добавить разрешенные ip-адреса. Для этого замените IP Address InsertTwo$ и IP Address InsertThree$ на нужные адреса. Адреса должны быть в формате, как в строке 3 (в Gist строка 8).

Добавление и удаление авторизованных пользователей

Если нужно добавить еще разрешенные адреса, просто скопируйте строку RewriteCond %{REMOTE_ADDR} !^IP Address Insert$ и замените в ней IP Address Insert$ на нужный адрес. Также можно запретить доступ пользователям к панели администратора, удалив строку с их адресом RewriteCond %{REMOTE_ADDR}.

Что будет если неавторизованный пользователь зайдет на страницу?

После того, как вы ограничили доступ к админке по ip-адресу неавторизованный пользователь, зайдя на страницу авторизации или страницу wp-admin, увидит страницу 404.

Если вы используете Gist, то можете заметить, что редирект там прописан в первых двух строках. В строках 1 и 2 необходимо заменить your-site’s-path на адрес вашего сайта.

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

Некоторые из вас, возможно, хотят открыть доступ к панели администратора множеству пользователей. Такая ситуация может возникнуть, если у вас много редакторов сайта, или вы обслуживаете сеть из нескольких сайтов. Основной момент тут в том, что для входа в панель администратора требуется несколько динамических ip-адресов.

Как ограничить доступ к панели администратора по динамическому ip-адресу

Откройте файл.htaccess через cPanel или любой другой текстовый редактор. Скопируйте код ниже в самый верх файла.htaccess (Gist).

RewriteEngine on RewriteCond %{REQUEST_METHOD} POST RewriteCond %{HTTP_REFERER} !^http://(.*)?your-site"s-name.com RewriteCond %{REQUEST_URI} ^(.*)?wp-login\.php(.*)$ RewriteCond %{REQUEST_URI} ^(.*)?wp-admin$ RewriteRule ^(.*)$ - [F]

RewriteEngine on

. * ) $ [ OR ]

RewriteCond % { REQUEST_URI } ^ (. * ) ? wp - admin $

RewriteRule ^ (. * ) $ - [ F ]

Редактируем код

Чтобы код заработал, замените your-site’s-name.com в строке 3 на URL вашего сайта (в Gist строка 7). В Gist версии редирект также прописан в первых двух строчках. В строках 1 и 2 замените your-site’s-path на адрес вашего сайта. После этого если сработает редирект, то вас перебросит на страницу 404.

Функционал кода

Данный код ограничивает доступ хакерам, которые с помощью ботов пытаются подобрать логин и пароль простым перебором извне. Код файла.htaccess означает, что на страницу авторизации или wp-admin смогут попасть только пользователи, которые перешли на нее по внутренней ссылке.

Заключение

Решения, которое гарантирует стопроцентную безопасность вашего сайта от любых возможных угроз, не существует. Ограничение доступа по ip-адресу добавит хакерам сложностей при попытке взлома сайта простым перебором.

Ограничение доступа к консоли WordPress является тем вопросом, который волнует многих пользователей на разных форумах. Создаете ли вы сайт для вашего клиента, который не знает, чем WordPress отличается от Microsoft Word, или же просто хотите ограничить круг пользователей, имеющих доступ к консоли, – вне зависимости от причин вам может понадобиться «закрыть двери» к консоли перед некоторыми пользователями.

К счастью, есть много вариантов сделать это. В данной статье я быстро пробегусь по основным методам ограничения доступа к консоли, начиная с настройки прав для пользователей, что встроено в WordPress, и заканчивая написанием кода и установкой плагинов.

Ограничение доступа при помощи пользовательских ролей и возможностей в WordPress

В WordPress используются роли и возможности, позволяющие определять, кто и что может делать в границах одного WP-сайта. Настройка пользовательских прав является базовым путем ограничения доступа к особенностям бэкэнда сайта.

Вообще, существует шесть видов ролей: супер администратор (для мультисайтов), администратор, редактор, автор, участник и подписчик.

Владельцы сайта могут использовать данные роли для управления тем, кто имеет доступ к написанию и редактированию записей, созданию рубрик, управлению комментариями, созданию страниц, заданию ссылок, управлению темами и другими пользователями – для этого достаточно привязать определенную роль тому или иному пользователю.

Супер администраторы могут получать доступ ко всем областям мультисайтовой сборки, в то время как администратор может получить доступ ко всем областям регулярной сборки, состоящей из одного сайта. Каждая последующая роль имеет все более и более сужающийся круг возможностей. Базовая роль, подписчик, может только управлять своим профилем – они не могут писать или редактировать записи, изменять параметры и т.д.

Если вам требуется простой способ ограничения того, какие пользователи могут получать доступ к вашему бэкэнду, вы можете автоматически привязывать всем новым пользователем роль Подписчика. Роль по умолчанию задается в разделе Параметры – Общие.

Ограничение доступа к WordPress с помощью кода

Допустим, у вас есть сайт сообщества, где пользователи могут регистрироваться, однако вы не хотите, чтобы у них был доступ к wp-admin. Если вы хотите закрыть доступ к консоли для всех пользователей, кроме администраторов, просто вставьте следующий код в файл functions.php:

Add_action("init", "blockusers_init"); function blockusers_init() { if (is_admin() && ! current_user_can("administrator") && ! (defined("DOING_AJAX") && DOING_AJAX)) { wp_redirect(home_url()); exit; } }

Теперь доступ к wp-admin смогут получить только администраторы. Все остальные будут просто перенаправлены на главную страницу.

Ограничение доступа к WordPress с помощью плагинов

Существует несколько простых плагинов, которые помогают закрыть от пользователей вход в консоль.

Login Redirect

Login Redirect – плагин от WPMU DEV, позволяющий быстро перенаправлять пользователей, которые зарегистрированы на вашем сайте, на любую выбранную страницу. К примеру, после того, как пользователи войдут под своим логином, вы можете отправить их на страницу сообщества вашего сайта или перенаправить к редактору записей.

Плагин просто в использовании – после установки и активации вам достаточно перейти на страницу Параметры – Общие и добавить в поле «Login Redirect» URL, куда будет совершаться перенаправление.

WP Hide Dashboard

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

Плагин не нуждается в настройках и поставляется «из коробки».

Remove Dashboard Access

Данный плагин позволяет вам разрешать доступ к консоли только для администраторов или пользователей с определенными возможностями. Вы можете также выбирать, могут ли пользователи редактировать свои профили в консоли.

Пользователи, которые не являются администраторами или не имеют определенных возможностей, будут перенаправлены на выбранный вами URL.

Чтобы настроить плагин, перейдите в раздел Параметры – Dashboard Access и выберите параметры для пользовательского доступа и перенаправления.

Заключение

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

Flector 5

Adminimize

Обновлено:

Adminimize это плагин, позволяющий вам настроить админку блога. Если выражаться точнее, то в админке блога вы можете убрать абсолютно любые элементы для выбранной роли пользователя. Самый простой пример - вы можете с помощью этого плагина запретить зарегистрированному пользователю видеть в админке что-либо, кроме его собственного профиля. То есть можно убрать ссылки на "Консоль ", сообщения о том, что доступна новая версия движка, логотип WordPress , надписи и ссылки в футере и т.д. Аналогично можно ограничить доступ к функциям админки авторам или редакторам блога, да и для администратора тоже можно убрать все лишние неиспользуемые пункты.

Скачиваем плагин с его домашней страницы и устанавливаем его:

1. Распаковываем архив.

2. Копируем папку adminimize в /wp-content/plugins/ .

3. Заходим в админку блога на вкладку "Плагины " и активируем плагин.

В плагине нет русского языка, но эту ситуацию можно поправить, скачав русскую версию плагина у лекактуса . У него слишком старая версия плагина, которая нам не подойдет, а вот файл локализации нам пригодится. Правда, он немного устарел и некоторые фразы переведены не будут, но все же это лучше, чем ничего. Просто скопируйте из скаченного архива плагина файл adminimize-ru_RU.mo в папку плагина languages и у вас появится русский язык.

Настройки плагина вы найдете в "Параметрах\Adminimize ". Настроек тут очень много и прежде, чем что-либо изменять сначала внимательно изучите все, что предлагает вам плагин. В принципе, все должно быть понятно, так как на русском языке плагин уже не так сложен в освоении. Рассмотрю лишь пример, о котором я упомянул в начале статьи - как запретить обычному подписчику видеть что-либо, кроме его профиля.

1. Скройте "Подвал " в "Настройках админки ".
2. Ограничьте "Информацию о пользователе " выводом только ссылок на профиль пользователя и на выход из блога.
3. Поставьте опцию "Dashboard deactivate, redirect to " как "По умолчанию (profile.php) ".
4. В "Глобальных настройках Любимых действий ", "Настроек экрана " (в русском переводе так будут называться 2 пункта, отключайте их оба) и "Контекстной помощи ".
5. В "Настройках меню " отключите для подписчика вывод "Консоли " и вывод "Инструментов ".

Основная настройка закончена, теперь подписчик при входе в админку попадает в свой профиль и не видит ссылок на "Консоль ", "Инструменты " и не видит футера. На этом можно и остановится, но лично меня не устраивают следующие вещи: разделитель, расположенный чуть выше ссылки на профиль, информация о том, что доступна новая версия WordPress , логотип вордпресса и кнопка "Перейти на сайт ". Все эти вещи можно убрать через дополнительную настройку в "Ваших собственных настройках ", просто указав там ID или class убираемого элемента. Рассмотрим по шагам:

Убираем разделитель:

Называем пункт "Разделитель " и ставим его значение как "#adminmenu .wp-menu-separator Разделитель

Убираем сообщение о новой версии WordPress :

Называем пункт "Обновление " и ставим его значение как "#update-nag ", сохраняем. Теперь в настройках появился новый пункт "Обновление ", который мы можем запретить для подписчика.

Убираем логотип WordPress :

Называем пункт "Лого " и ставим его значение как "#header-logo ", сохраняем. Теперь в настройках появился новый пункт "Лого ", который мы можем запретить для подписчика.

Убираем кнопку "Перейти на сайт ":

Называем пункт "Кнопка " и ставим его значение как "#site-visit-button ", сохраняем. Теперь в настройках появился новый пункт "Кнопка ", который мы можем запретить для подписчика.

Таким образом можно запретить показ чего угодно в админке, лишь бы только оно было оформлено через css . Принцип, я думаю, вы поняли и дальше объяснять нужды нет.

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

Чтобы отключить вообще встраивание своих цветовых схем в профиль пользователя найдите в файле плагина adminimize.php функцию _mw_adminimize_admin_styles($file) и удалите ее содержимое. То есть в итоге у вас должно получиться.

Публикации по теме