Aš visada buvau geros praktikos draugas, daug daugiau, jei jie padeda mums išlaikyti mūsų serverių, paslaugų ar tiesiog mūsų informacijos saugumą.
Įprotis (blogas įprotis), kurį turi daugelis administratorių ar vartotojų, yra naudotis prieiga šaknis visoms duomenų bazėms, tai yra ... jie įdiegia svetainę naudodami „WordPress CMS“ ir kaip prieigos prie duomenų bazės duomenis (kad WP galėtų naudoti „MySQL“ serverį ir naudoti jo DB), jie įdeda „MySQL“ serverio administravimo vartotoją: root
Be to, jie įdiegia bet kurią kitą žiniatinklio programą (pokalbį, įklijuoja, forumą ir kt.) Ir daro tą patį, jie visada naudoja pagrindinį MySQL vartotoją ...
KLAIDA !!!
Tai tiesiog lemtingas įprotis.
Tarkime, kad mes serveryje turime šias paslaugas:
- Svetainė ar portalas, kuriame naudojama „WordPress“.
- Mūsų palaikymo forumas, pokalbiai ir tt ... visa bendruomenė.
- FTP, kuris naudoja „MySQL“ duomenų bazę vartotojams ir slaptažodžiams saugoti.
- El. Pašto vartotojai (vartotojai ir slaptažodžiai) saugomi „MySQL“ duomenų bazėje.
- Mažas „WebChat“, kurį įdiegiame norėdami kalbėtis su pažįstamu žmogumi.
Visose iš jų 5 paslaugose naudojame „MySQL“ šakninį vartotoją, kad kiekviena tarnyba pasiektų ir išsaugotų duomenis atitinkamoje duomenų bazėje.
Vieną gražią dieną bet kuris iš daugelio trolių ten, bet tai ne tik trolis, bet ir įvaldo kai kuriuos išnaudojimus, pažeidžiamumus, įsilaužimus ir pan. ... nusprendžia padaryti mums kažką žalingo.
Raskite klaidą „WebChat“, kurią naudojame, pasinaudodamas šia klaida, ji sugeba pasiekti „WebChat“ failus, įskaitant „WebChat“ konfigūracijos failą, ir ... šiame faile, kaip akivaizdu, yra vartotojo vardas ir slaptažodis, kuriuos naudoja „WebChat“ prieiti prie MySQL serverio ir atspėti ką? ... Tai yra ne daugiau ir ne mažiau šaknų vartotojas!
Gavęs šią informaciją, trolis gali labai paprastai:
- Ištrinkite mus ir (arba) pavogkite viską, kas susiję su mūsų turima svetaine ar portalu (WordPress).
- Galite ištrinti ir (arba) pavogti informaciją iš mūsų IR iš mūsų vartotojų, kurie naudojasi forumu, mūsų sukurta bendruomene.
- Taip pat galite pavogti VISŲ vartotojų, turinčių el. Pašto paskyrą mūsų serveryje, vartotojo vardą ir slaptažodį, taip pat pavogti informaciją iš jų el. Laiškų, apsimetinėti ir pan.
- Dabar pagaliau galite naudoti mūsų FTP serverio abonementą ir įkelti bet kokį failą, kuriame yra kenkėjiškų programų, o tai leistų jums visiškai ir visiškai valdyti mūsų serverį.
Na ... ką tu galvoji? … 🙂
Ar matote viską, kas gali nutikti, nesukuriant nepriklausomų vartotojų kiekvienai mūsų turimai duomenų bazei?
Tai NĖRA perdėti draugai, tai gali atsitikti labai lengvai ... na, viskas, ko reikia katastrofai atskleisti, yra tik vienos iš jūsų įdiegtų žiniatinklio programų klaida.
Dabar ...
Kaip sukurti atskirus „MySQL“ vartotojus kiekvienai žiniatinklio programai?
Pirmiausia turime įvesti MySQL serverį su šakniniu vartotoju, nes jis turi teises kurti duomenų bazes, nustatyti leidimus, kurti vartotojus ir tt:
mysql -u root -p
Kai jie parašys aukščiau ir paspaus [Įveskite] Jų bus paprašyta „MySQL“ šakninio vartotojo slaptažodžio, jie jį įveskite ir paspaus [Įveskite] vėl jums akimirksniu bus parodyta maždaug taip:
Dabar sukursime duomenų bazę pavadinimu «webchatdb":
CREATE DATABASE webchatdb;
Paruošta, jūs jau sukūrėte duomenų bazę, dabar kurkime vartotoją «žiniatinklio valdytojas«Su slaptažodžiu«slaptažodisdelputowebchat":
CREATE USER 'webchatuser'@'localhost' IDENTIFIED BY 'passworddelputowebchat';
Dabar magija ... suteiksime visas privilegijas (skaityti ir rašyti) žiniatinklio valdytojas TIK DB webchatdb:
GRANT ALL PRIVILEGES ON webchatdb.* TO 'webchatuser'@'localhost' WITH GRANT OPTION;
O voila, vartotojas jau turi leidimus toje duomenų bazėje ... dabar belieka tik atnaujinti „MySQL“ teises, tai yra liepti „MySQL“ perskaityti vartotojų teises, nes mes ką tik jas pakeitėme:
FLUSH PRIVILEGES ;
Aš palieku jums ekrano kopiją:
Ir tai buvo viskas. Tai darydami kiekvienai žiniatinklio programai, kurią naudojame, garantuojame, kad tuo atveju, jei joms pavyks pažeisti vieną iš tų žiniatinklio programų, kitos bus saugios (bent jau MySQL požiūriu)
Kas yra gera praktika? 😉
Tikiuosi, kad tai buvo naudinga ir jums, ir man, nes stengiausi tai paaiškinti kuo paprasčiau.
saludos
Geras pranešimas KZKG, jei jis būtų forume, aš paprašyčiau lipnios!
Ačiū 😀
Tinklaraščiui įvestas slaptažodis yra geras, dar vienas dalykas, susijęs su „mysql“, yra jo atminties naudojimas
Hehehe, ačiū, kad priminėte „MySQL“ komandas. Dabar pažiūrėkime, ar „Aš įdėjau šiek tiek saugumo“ „World of Warcraft“ serverio duomenų bazėje, kurią turiu savo LAN.
mano žinios apie tai yra lygios nuliui, bet beveik tokios pačios, kaip naudojant „MySQL for Amarok“?
Sukurti duomenų bazę amarokdb;
SUTEIKKITE VISAS PRIVILEGIJAS APIE „amarokdb“. * Į „amarokuser“, NUSTATYTĄ „slaptažodžiu“; SKALAVIMO PRIVILEGIJOS;
„Amarok“ nenaudojau ilgai ir ilgai, bet jei naudojate „MySQL“ DB, teoriškai jis taip pat turėtų veikti.
Sveiki, būtų gerai, jei sukurtumėte įrašą, skirtą apsaugai nuo žiniatinklio serverių sistemoje „Linux“, daugelis jų neturi tinkamo saugumo, o to paties administratorius nėra tinkamai ekspertas, jie tik palengvina dalykus, pavyzdžiui, „symlink“ serveriuose leidžia skaityti kitų paskyrų, esančių tame pačiame serveryje, konfigūracijos failus, daugelis administratorių to nežino, todėl daugėja svetainės defektų
saludos
Sveiki, kaip tai vyksta
Sveiki atvykę į svetainę 🙂
Tikrai nelaikau savęs šio klausimo ekspertu, bet stengsiuosi prisidėti prie nedaugelio žinių, kurias įgijau per metus 🙂
Kitas dalykas, kurį daro nedaug tinklo administratorių, yra suteikti privilegijas svetainėms su apache atskirai, tai yra vartotojui ir grupuoti www duomenis (ar panašius), kurie yra skirtingi kiekvienai svetainei, ir savo ruožtu kiekvienam iš šių .
saludos
Geras patarimas
saludos
Ačiū
NESKYBU tavo terminalo išvaizdos, foninės raidės mane išstumia iš koncentracijos. Jūs esate sušikti beprotiški xD
Be to, įdomu, nes mačiau apgailėtinus atvejus, kai dėl tų dalykų nutrūko paslaugos.
Dabar ne tik nuo to priklauso, bet ir saugumas yra tai, kaip buvo sukurta duomenų bazė, - paaiškino man mokytojas, bet aš dar nesu paniręs į DB ... turėtume susipainioti su „MongoDB = D“. dienų
kaip tik tai nutiko man šiandien su mano nuomojamu serveriu
Aš vykdžiau jūsų veiksmus, nuėjau į „cpanel“ ir ieškojau „MYSQL“ duomenų bazės, ir ji man sako, kad ji neveikia.
Aš nežinau, kaip įvesti dabar su root vartotoju
Aš esu neofitas šioje srityje, bet čia skaitydamas jūs daug išmokote, tikiuosi, kad nurodysite man prieigą
Sveiki 🙂
Ką turite, yra priegloba („SharedHosting“) arba VPS (virtualus serveris)?
Jei turite prieglobą, o ne VPS, turėtumėte pamatyti, ar jūsų priegloba turi SSH prieigą (susisiekite su įmonės, kuri pardavė jums prieglobą, technine pagalba ir paklauskite, kaip pasiekti per SSH), kai įvesite per SSH, vartotojas NEBUS root, tačiau turite naudoti tą vartotoją, kurį įvedėte, kai įdiegėte tą žiniatinklio programą.
Tiesą sakant, jūsų problema yra sudėtinga, nes variantų ir galimybių yra labai daug, rekomenduoju atidaryti naują temą mūsų forume, ten bus patogiau jums padėti - » http://foro.desdelinux.net
Sveikinimai 😀
geras,
Suprantu, kad gera praktika nesuteikti visų privilegijų bet kuriam vartotojui, išskyrus root. Tačiau nuo tada, kai įdiegiau „phpmyadmin“, sukurtas naujas vartotojas „phpmyadmin“ su visomis privilegijomis. Atrodo logiška, kad taip yra, nes „MySQL“ duomenų bazėms tvarkyti yra tik grafinė versija. Bet kokiu atveju norėčiau įsitikinti, ar viskas gerai, ar turėčiau šiek tiek pakoreguoti vartotojo „phpmyadmin“ teises.
Sveikinimai ir ačiū!
Puiku…
Aš esu iš tų, kurie viską daro su šaknimis, bet tu atvarei mano draugą ..
Labai ačiū…