Я завжди був другом хороших практик, набагато більше, якщо вони допомагають нам підтримувати безпеку наших серверів, служб або просто нашої інформації.
Звичка (шкідлива звичка), яку мають багато адміністраторів або користувачів, - це використовувати доступ корінь для всіх баз даних, тобто ... вони встановлюють сайт за допомогою WordPress CMS, а як доступ до даних до бази даних (щоб WP використовував сервер MySQL та використовував його БД) вони ставлять користувача адміністратора сервера MySQL: root
Крім того, вони встановлюють будь-яку іншу веб-програму (чат, вставку, форум тощо) і роблять те саме, вони завжди використовують кореневого користувача MySQL ...
ПОМИЛКА !!!
Це просто фатальна звичка.
Припустимо, у нас на сервері є такі послуги:
- Сайт або портал, що використовує WordPress.
- Наш форум підтримки, бесіди тощо ... ціла спільнота.
- FTP, який використовує базу даних MySQL для зберігання користувачів та паролів.
- Користувачі електронної пошти зберігаються (користувачі та паролі) у базі даних MySQL.
- Невеликий веб-чат, який ми встановлюємо для спілкування з кимось із ваших знайомих.
І в усіх з них, у 5 сервісах ми використовуємо кореневого користувача MySQL, щоб кожна служба отримувала доступ та зберігала дані у відповідній базі даних.
Одного чудового дня будь-який із багатьох тролів, але це не тільки троль, але він також володіє деякими подвигами, уразливостями, злому тощо ... вирішує зробити щось шкідливе для нас.
Знайдіть помилку в WebChat, яку ми використовуємо, скориставшись цією помилкою, їй вдається отримати доступ до файлів WebChat, включаючи файл конфігурації WebChat, і… в цьому файлі, очевидно, є ім’я користувача та пароль, які WebChat використовує для доступу до Сервер MySQL, і вгадайте що? ... Це не більше, ані менше КОРІНОВИЙ КОРИСТУВАЧ!
Отримавши цю інформацію, дуже простим способом троль може:
- Видаліть нас та / або викрадіть все, що пов’язано з веб-сайтом або порталом, який ми маємо (WordPress).
- Ви можете видалити та / або викрасти інформацію у нас І у наших користувачів, які користуються форумом, спільнотою, яку ми створюємо.
- Ви також можете викрасти ім'я користувача та пароль ВСІХ користувачів, які мають обліковий запис електронної пошти на нашому сервері, а також викрасти інформацію з їх електронних листів, видавати себе за особу тощо.
- І ось нарешті, ви можете скористатися обліковим записом на нашому FTP-сервері та завантажити будь-який файл, що містить шкідливе програмне забезпечення, що дозволить вам отримати ВСЬОГО та АБСОЛЮТНИЙ контроль над нашим сервером.
Ну ... що ти думаєш? ... 🙂
Ви бачите все, що може статися, просто не створюючи незалежних користувачів для кожної бази даних, яку ми маємо?
Це НЕ перебільшення, друзі, це може статися з дивовижною легкістю ... ну, все, що потрібно, щоб розкрити катастрофу - це лише помилка в деяких веб-програмах, які ви встановили.
Зараз ...
Як створити окремих користувачів MySQL для кожної веб-програми?
Спочатку ми повинні увійти на сервер MySQL з кореневим користувачем, оскільки саме він має привілеї створювати бази даних, встановлювати дозволи, створювати користувачів тощо:
mysql -u root -p
Коли вони пишуть вище і натискають [Введіть] їх запитають пароль кореневого користувача MySQL, вони пишуть його та натискають [Введіть] знову ж таки, миттєво вам покажуть щось подібне:
Тепер ми створимо базу даних з назвою «webchatdb":
CREATE DATABASE webchatdb;
Готово, ви вже створили базу даних, тепер давайте створимо користувача «веб-чатузер«З паролем«парольdelputowebchat":
CREATE USER 'webchatuser'@'localhost' IDENTIFIED BY 'passworddelputowebchat';
Тепер магія ... ми надамо всі привілеї (читати та писати) веб-чатузер ТІЛЬКИ в БД webchatdb:
GRANT ALL PRIVILEGES ON webchatdb.* TO 'webchatuser'@'localhost' WITH GRANT OPTION;
І вуаля, користувач вже має дозволи в цій базі даних ... тепер залишається лише оновити дозволи на MySQL, тобто сказати MySQL перечитати привілеї користувачів, тому що ми щойно внесли в них зміни :
FLUSH PRIVILEGES ;
І це було все. Роблячи це для кожної веб-програми, яку ми використовуємо, ми гарантуємо, що у випадку, якщо їм вдасться порушити одну з цих веб-програм, інші будуть у безпеці (принаймні з точки зору MySQL)
Що таке хороша практика? 😉
Сподіваюся, це було для вас настільки корисним, як і для мене, оскільки я намагався пояснити це якомога простіше.
привіт
Хороший пост KZKG, якби це було на форумі, я б попросив липку!
Дякую 😀
Пароль, який ви вводите для веб-чату, хороший, інша справа, яка пов’язана з mysql - це використання його пам’яті
Хе-хе-хе, дякую за нагадування про команди MySQL. Тепер давайте подивимось, чи "я вкладаю певний захист" у серверну базу даних World of Warcraft, яку я маю в своїй локальній мережі.
мої знання щодо цього нульові, але вони майже однакові для використання MySQL для Amarok?
СТВОРИТИ БАЗУ ДАНИХ amarokdb;
НАДАЙТЕ ВСІ ПРИВІЛЕГІЇ на amarokdb. * ДО "amarokuser" ІДЕНТИФІКОВАНИЙ "паролем"; ПРИВИЛЕГІЇ ФЛЕШУ;
Я не використовував Amarok давно, довго, але якщо ви використовуєте БД, яка є MySQL, теоретично вона теж повинна працювати так.
Привіт, було б добре, якби ви створили запис для захисту від веб-серверів у Linux, багато з них не мають належного захисту, а адміністратор того самого не є експертом, вони лише полегшують їм справи, наприклад використання символічного посилання на серверах дозволяє читати файли конфігурації інших облікових записів на тому самому сервері, про що багато адміністраторів не знають, і тому дефіцити веб-сайтів розростаються
привіт
Привіт як це відбувається
Ласкаво просимо на сайт 🙂
Насправді я не вважаю себе далеко експертом у цьому питанні, але спробую внести ті незначні знання, які я здобув за ці роки 🙂
Інша річ, яку роблять не багато адміністраторів мережі, - це надання привілеїв сайтам з Apache окремо, тобто користувачеві та групі www-даних (або подібних), які є різними для кожного сайту, і, у свою чергу, переносять у клітку кожен із них .
привіт
Хороша порада
привіт
Дякую
Я НЕНАВИЖАЮ зовнішній вигляд вашого терміналу, фонові літери виводять мене з зосередженості. Ви божевільний божевільний xD
Поза цим, це цікаво, бо я бачив жалюгідні випадки відключення послуг від цих речей.
Тепер це не тільки залежить від того, що безпека полягає в тому, як була побудована база даних, пояснив мені вчитель, але я ще не дуже занурений у БД ... нам слід возитися з MongoDB = D одним із них днів
саме це сталося зі мною сьогодні з орендованим сервером
Я слідував вашим крокам, я зайшов у cpanel і шукаю базу даних MYSQL, і вона повідомляє мені, що вона не працює.
Я не знаю, як зараз увійти під кореневим користувачем
Я неофіт у цьому, але читаючи тут, ти дізнаєшся багато нового, сподіваюся, ти скеруєш мене до доступу
Привіт 🙂
У вас є хостинг (SharedHosting) або VPS (віртуальний сервер)?
Якщо у вас є хостинг, а не VPS, ви повинні перевірити, чи має ваш хостинг доступ до SSH (зв’яжіться зі службою технічної підтримки компанії, яка продала вам хостинг, і запитайте їх, як отримати доступ через SSH), як тільки ви ввійдете через SSH, користувач НЕ буде рутом, але ви повинні використовувати користувача, якого ввели під час встановлення веб-програми.
Насправді ваша - це складна тема, оскільки варіантів та можливостей оооочень багато, я рекомендую відкрити нову тему на нашому форумі, там вам буде зручніше допомогти - » http://foro.desdelinux.net
Вітаю 😀
добре,
Я розумію, що є доброю практикою не надавати будь-які привілеї будь-якому користувачеві, крім root. Однак з моменту встановлення phpmyadmin було створено нового користувача "phpmyadmin" з усіма привілеями. Здається логічним, що це так, оскільки це лише графічна версія для управління базами даних у MySQL. У будь-якому випадку, я хотів би переконатись, чи все в порядку, чи є, чи слід внести певні зміни в привілеї користувача "phpmyadmin".
Вітаю і дякую!
Відмінно ...
Я один з тих, хто робить все з коренем, але ти відкрив мені очі, друг.
Дуже дякую…