От автора: согласно данным исследования 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.

На сегодняшний день, плагин Advanced Access Manager (сокращённо AAM) — это одно из лучших решений для контроля доступа и повышения безопасности сайта на WordPress. В использовании он очень прост и его мощности позволяют получить гибкий контроль над одним или целой сетью сайтов.

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

Особенности плагина Advanced Access Manager

AAM — свежее расширение, которое часто обновляется по мере необходимости и выхода новых версий движка. Ключевые особенности, реализованные в последней версии:

  • Защита входа администратора (Secure Admin Login) — позволяет контролировать процесс входа на ваш сайт, определить количество или возможные попытки входа, проследить географическое положение и заблокировать посетителя по IP для предотвращения потенциальных хакерских атак.
  • Контроль доступа к сообщениям, страницам или категориям (Control Access to Posts, Pages or Categories) — позволяет ограничить доступ к вашим постам, страницам или категориям для любого пользователя, роли или посетителя, а также определить разрешённые действия посетителя.
  • Контролировать доступ к медиа-файлам — можно определить пользовательский доступ к медиа-файлам для любого пользователя, роли или посетителя. Эта функция работает без каких-либо дополнительных конфигураций на ​​сервере без использования файла Htaccess.
  • Управление ролями и возможностями — можно управлять списком ролей и возможностей. Эта функция была разработана и испытана сотнями опытных пользователей и разработчиков WordPress. Это дает вам возможность создавать, обновлять или удалять любую роль или возможности. По соображениям безопасности, эта функция ограничена по умолчанию, но может быть легко активирована.
  • Запись деятельности пользователя — можно вести запись входа в систему: как и когда пользователь вошел в систему или вышел из неё.
  • Фильтр backend меню — управление доступом к меню бэкэнд (включая подменю), то есть меню, которое отображается при входе в консоль управления сайтом на Вордпресс.
  • Фильтр метабоксы и виджеты — предопределить имеющиеся метабоксы или виджеты для любого пользователя, роли или посетителя.

И многое, многое другое.

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

Установка

Устанавливается аналогично большинству плагинов для Вордпресс. Страница на официальном сайте: http://wordpress.org/plugins/advanced-access-manager/. При установке через консоль — следует вводить текст «Advanced Access Manager».

После установки в меню управления сайтом появляется дополнительная вкладка с подменю:

  • «Контроль доступа» — основные настройки;
  • «ConfigPress» — позволяет использовать специальные коды для расширенных настроек;
  • «Расширение» — дополнительные плагины и расширения, в основном — платные. Они способные ещё более расширить конфигурацию;
  • «security» — настройки, касающиеся защиты админки и самого сайта.

Настройки ConfigPress

Ниже приведен список всех возможных настроек ConfigPress с объяснением:

Определяем доступ по умолчанию к пунктам меню администратора, если он не был настроен. По умолчанию он установлен на «Разрешить» («allow»).
menu.undefined = «deny»

Изменение возможности доступа по умолчанию к меню «AAM» — «Контроль доступа». По умолчанию доступ имеет только администратор.
page.access_control.capability = «aam_manager»

Изменение возможности доступа по умолчанию к «AAM» — «ConfigPress».
page.configpress.capability = «configpress_guru»

Изменение возможности доступа по умолчанию на экран «AAM» — «Расширение».
page.extensions.capability = «aam_extensions_manager»

Если нет доступа определенных для текущей статьи или страницы, то по умолчанию AAM пытается наследовать настройки из родительской категории.
post.inherit = «false»

Если нет доступа определенного для конкретной категории, по умолчанию AAM пытается наследовать настройки из родительской категории.
term.inherit = «false»

Чтобы ускорить выполнение AAM, результат можно кэшировать. Кэш автоматически обновляется когда вы нажимаете кнопку Сохранить.
caching = «true»

Разблокировать ограниченные возможности в AAM для одного администратора. По умолчанию не разрешено менеджерам и другим администраторам.
super_admin = «true»

Каждая имеет внутренний ID (обычно эквивалент в нижнем регистре) и название. Каждый раз при создании новой роли с AAM, ID меняется на что-то вроде aam_78koi9831933i. Установка ниже подавляет это поведение и сохраняет имя в нижнем регистре.
native_role_id = «true»

Позволяет перенаправить пользователя при отказе в доступе к любому серверному ресурсу на URL сообщения или страницы с указанным в этой настройке идентификационным номером. По умолчанию он покажет Access Denied.
access.deny.redirect = «http://сюда_вставляем_адрес.ru»

Сообщение при доступе к запрещённой части.
access.deny.message = «Ой. Это запретная зона»

— аналогичные настройки.

Все эти настройки группируются и вписываются в соответствующее окно:

Настройки security

В текущей версии AAM для безопасности мы должны использовать ConfigPress, чтобы вызвать определенные функции. Ниже полный список всех возможных настроек ConfigPress для раздела по безопасности:

Функция гео контролирует местоположение пользователя на основе IP-адреса. По умолчанию эта функция отключена и может быть активирована изменением false на true.
login.geo_lookup = «false»

В плагине используется FreeGeoIP.net веб-сервис для получения расположения гео на основе IP-адреса. В настоящее время это единственный вариант, но разработчики обещают расширить список возможных вариантов в будущих версиях.
login.geoip.service = «FreeGeoIP»

Функция контроля процесса входа в админ-панель и блокировки логина — позволяет предотвратить сайт от взлома с помощью перебора различных комбинаций паролей.
login.lockout = «false»

Этот параметр определяет количество попыток для ввода правильного пароля.
login.attempts = «10»

Также есть login.attempt_failure = «slowdown», login.slowdown_time = «5», login.die_message = «Вы не можете войти в» и login.cache_limit = «1000».

Настройки «контроля доступа»

Внешний вид:

Информацию об этих и других настройках плагина вы можете найти в разделе помощи на официальном сайте http://wpaam.com/category/tutorials/. Продолжение об настройках и использовании — в следующих статьях!

Добрый день дорогие читатели! После диких выходных, хочется сказать «Спасибо, что живой». Об этом будет отдельная статья, поскольку я чуть не утонул на соревнованиях.

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

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

Зачем ограничивать доступ к панели администратора wordpress?

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

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

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

Первая вещь, которую вам нужно сделать — это установить и активировать специальный плагин Remove Dashboard Access. После активации вам нужно будет перейти во вкладку Настройки — > Конфигурации Remove Dashboard Access

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

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

Следующая опция это выбор перенаправления URL. Она позволяет перенаправлять «запрещенных» или «отключенных» пользователей на различные страницы сайта. Стоит ему только войти в раздел, доступ который для него ограничен, его сразу же перенаправят на любую заданную в настройках страницу.

Если вы хотите, чтобы пользователи сами редактировали и изменяли свои профили, то вам необходимо установить флажок рядом с «Доступ профиля пользователя». Теперь все пользователи, которые были в статусе «запрещенных» будут перенаправляться на страницу редактирования своего профиля, вместо обычного перенаправления на страницы сайта.

Если вас все устраивает, то нажимайте на «Сохранить изменения».

Вот и все. Теперь все ваши пользователи с выбранными привилегиями имеют возможность доступа к админке wordpress.

Прячем элементы в админке в wordpress

Иногда вы можете ограничить то, что пользователь видит и может редактировать в консоли администратора.

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

Об этом плагине мы поговорим в ближайшей статье.

Спасибо за внимание.

(1)

В этом уроке речь пойдет о плагине, который мы использовали для ограничения числа попыток входа для пользователей. Не так давно нам вновь напомнили о данном плагине, так что теперь мы расскажем о нем немного подробнее. Этот плагин называется Limit Login Attempts и применяется он для ограничения числа попыток входа на сайт для пользователей.

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

Почему стоит ограничить число попыток входа на сайт для пользователя с учетной записью WordPress?

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

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

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

Как ограничить количество попыток входа для WordPress?

Для этого просто установите и активируйте плагин Limit Login Attempts .

Далее перейдите в настройки установленного плагина: Параметры → Limit Login Attempts . Заполните поле с числом допустимых ошибочных попыток входа на сайт , а также продолжительность блокировки пользователя по времени и сохраните заданные настройки.

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

Фильтрация доступа к консоли WordPress по IP адресу

Помимо блокировки пользователя по провальным попыткам входа на сайт возникает вопрос фильтрации пользователей по конкретному IP-адресу .

В качестве меры предосторожности можно ограничить доступ к сайту путем фильтрации IP-адресов в файле wp-login.php . К примеру, мы уже ограничили доступ к директории wp-admin путем фильтрации по IP. Поэтому мы предлагаем вам ознакомиться еще и с тем, как ограничить доступ по IP к вашему файлу wp-login.php в WordPress. Заметим, что приведенное руководство - не совсем для новичков, так как требует некоторого опыта в настройке сайта на WordPress.

Откройте файл .htaccess и добавьте в него указанный ниже код в верхней части файла до того, как далее идет остальной код самого файла:

order deny,allow Deny from all # whitelist West Palm Beach IP address allow from xx.xxx.xx.xx #whitelist Gainesvile IP Address allow from xx.xxx.xx.xx

Не забудьте при этом заменить указанные значения адресов IP вашими собственными. Единственным недостатком может стать наличие у вас динамического IP-адреса. В противном случае сбоев и проблем в работе такого фильтра не возникнет. Также после добавления кода собьется стиль для wp-login.php , но в вопросах защиты вашего сайта это не главное. Мы же ведь хотим просто ограничить число ошибочных попыток доступа к файлу и сайту.