Як обмежити доступ до панелі адміністратора wordpress за ip-адресою

326

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

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

Але спочатку давайте швидко пробіжимося по загрозам безпеки сайтів на WordPress.

Загрози безпеки WordPress

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

Підтвердження правильності введення імені – WordPress повідомляє користувачам, яку частину з даних авторизації вони ввели неправильно. Наприклад, якщо правильно ввести ім’я користувача, але помилитися з паролем, WordPress підкаже користувачеві про це, що значно полегшує пошук пароля простим перебором.

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

Глобальна реєстрація в WordPress – За замовчуванням WordPress відключена можливість реєстрації на сайті з будь-якого куточка світу. Краще залишити цю опцію виключеною в якості превентивного заходу.

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

Перш ніж редагувати файли сайту, давайте розглянемо попередні кроки, які необхідно виконати.

Заходи безпеки

Трохи нижче ми додамо PHP код в файл налаштувань .htaccess. Але перед цим необхідно зробити резервну копію файлу конфігурації.

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

Статичний або динамічний ip-адресу

У цьому уроці ми покажемо, як обмежити доступ до адмінки сайту як для статичних адрес, так і для динамічних.
Використовуйте інструкцію для статичного ip-адреси, якщо ви редагуєте сайт з домашнього комп’ютера або декількох інших місць. У такому випадку ваш 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 ^(.*)$ – [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 [NC]
RewriteCond %{REQUEST_URI} ^(.*)?wp-login\.php(.*)$ [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-адресою додасть хакерам складнощів при спробі злому сайту простим перебором.