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