Mbani bazat e të dhënave tuaja MySQL të sigurta duke krijuar përdorues dhe leje të ndara

Unë gjithmonë kam qenë mik i praktikave të mira, shumë më tepër nëse ato na ndihmojnë të ruajmë sigurinë e serverave, shërbimeve, ose thjesht informacionit tonë.

Një zakon (zakon i keq) që kanë shumë administratorë ose përdorues është të përdorin aksesin me të rrënjë për të gjitha bazat e të dhënave, domethënë ... ata instalojnë një sit duke përdorur WordPress CMS dhe si të dhëna të hyrjes në bazën e të dhënave (që WP të përdorë serverin MySQL dhe të përdorë DB të saj) ata vendosin përdoruesin e administrimit të serverit MySQL: root

Gjithashtu, ata instalojnë çdo aplikacion tjetër ueb (një bisedë, ngjitje, forum, etj) dhe bëjnë të njëjtën gjë, ata gjithmonë përdorin përdoruesin rrënjësor të MySQL ...

GABIM !!!

Ky është thjesht një zakon fatal.

Supozoni se kemi shërbimet e mëposhtme në një server:

  1. Një faqe ose portal që përdor WordPress.
  2. Forumi ynë i mbështetjes, bisedat, etj ... një komunitet i tërë.
  3. Një FTP që përdor një bazë të dhënash MySQL për të ruajtur përdoruesit dhe fjalëkalimet.
  4. Përdoruesit e postës elektronike ruhen (përdoruesit dhe fjalëkalimet) në një bazë të dhënash MySQL.
  5. Një WebChat i vogël që ne instalojmë për të biseduar me dikë që njihni.

Dhe në të gjitha ato, në 5 shërbimet ne përdorim përdoruesin rrënjësor të MySQL në mënyrë që secili shërbim të aksesojë dhe ruajë të dhënat në bazën e të dhënave përkatëse.

Një ditë të bukur, ndonjë nga shumë këndon atje, por kjo nuk është vetëm një këndoj, por gjithashtu zotëron disa shfrytëzime, dobësi, pirateri, etj ... vendos të bëjë diçka të dëmshme për ne.

Gjeni një gabim në WebChat që po përdorim, duke përfituar nga ky defekt, ai arrin të ketë qasje në skedarët WebChat, përfshirë skedarin e konfigurimit WebChat, dhe… në këtë skedar, padyshim, është emri i përdoruesit dhe fjalëkalimi që WebChat përdor për të hyrë në Server MySQL, dhe me mend se çfarë? … Nuk është asgjë më shumë dhe asgjë më pak P USRDORUESI RREZIK!

Duke marrë këtë informacion, në një mënyrë shumë të thjeshtë këndimi mund të:

  1. Na fshini dhe / ose vidhni gjithçka që lidhet me faqen ose portalin që kemi (WordPress).
  2. Ju mund të fshini dhe / ose të vidhni informacione nga ne DHE nga përdoruesit tanë që përdorin Forumin, komunitetin që ne krijojmë.
  3. Ju gjithashtu mund të vidhni emrin e përdoruesit dhe fjalëkalimin e GJITHA përdoruesve që kanë një llogari emaili në serverin tonë, si dhe të vidhni informacionin nga postat elektronike të tyre, të bëni rolin e tyre, etj
  4. Dhe tani së fundmi, mund të përdorni një llogari në serverin tonë FTP dhe të ngarkoni çdo skedar që përmban malware, i cili do t'ju lejojë të merrni kontrollin TOTAL dhe ABSOLUTE të serverit tonë.

Po mirë ... çfarë mendoni? 🙂

A shihni gjithçka që mund të ndodhë vetëm duke mos krijuar përdorues të pavarur për secilën bazë të të dhënave që kemi?

Kjo NUK është një ekzagjerim miq, kjo mund të ndodhë me lehtësi të mahnitshme ... mirë, gjithçka që nevojitet për të shkaktuar katastrofën është vetëm një defekt në disa nga aplikacionet e internetit që keni instaluar.

Tani

Si të krijoni përdorues të veçantë të MySQL për çdo aplikacion në internet?

Së pari ne duhet të hyjmë në serverin MySQL me përdoruesin rrënjë, pasi ai është ai që ka privilegjet të krijojë baza të të dhënave, të krijojë leje, të krijojë përdorues, etj:

mysql -u root -p

Kur ata shkruajnë sa më sipër dhe shtypin [Hyni] Atyre do t'u kërkohet fjalëkalimi i përdoruesit të rrënjës MySQL, ata e shkruajnë atë dhe shtypin [Hyni] përsëri, menjëherë do t'ju tregohet diçka e tillë: Tani do të krijojmë një bazë të dhënash me emrin «biseda në internet':
CREATE DATABASE webchatdb;

Vini re pikëpresjen «;»Në fund të rreshtit.

Gati, ju tashmë keni krijuar bazën e të dhënave, tani le të vazhdojmë të krijojmë përdoruesin «përdorues i uebfaqeve«Me fjalëkalimin«fjalëkalimidelputowebchat':

CREATE USER 'webchatuser'@'localhost' IDENTIFIED BY 'passworddelputowebchat';

Tani magjia ... ne do t'u japim të gjitha privilegjet (lexo dhe shkruaj) përdorues i uebfaqeve VETEM ne DB biseda në internet:

GRANT ALL PRIVILEGES ON webchatdb.* TO 'webchatuser'@'localhost' WITH GRANT OPTION;

Dhe voila, përdoruesi tashmë ka lejet në atë bazë të të dhënave ... tani mbetet vetëm të rifreskojë lejet në MySQL, domethënë, tregoni MySQL të rilexojë privilegjet e përdoruesve, sepse sapo kemi bërë një ndryshim në to:

FLUSH PRIVILEGES ;

Unë lë një pamje të ekranit: Dhe kjo ka qenë gjithçka. Duke e bërë këtë për çdo aplikacion në internet që ne përdorim, ne garantojmë se në rast se ata arrijnë të shkelin një nga ato aplikacione në internet, të tjerët do të jenë të sigurt (të paktën nga pikëpamja e MySQL)

Çfarë është një praktikë e mirë? 😉

Shpresoj të ketë qenë aq e dobishme për ty sa është për mua, sepse u përpoqa ta shpjegoja sa më thjeshtë që të mundesha.

të fala


Përmbajtja e artikullit i përmbahet parimeve tona të etika editoriale. Për të raportuar një gabim klikoni këtu.

15 komente, lini tuajën

Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.

  1.   Babil dijo

    Postim i mirë KZKG, po të ishte në forum do të kërkoja një ngjitës!

    1.    KZKG ^ Gaara dijo

      Faleminderit

      1.    Kuba e Kuqe dijo

        Fjalëkalimi që vendosni për bisedën në internet është i mirë, një tjetër gjë që ka të bëjë me mysql është përdorimi i memorjes së tij

  2.   Hyuuga_Neji dijo

    Hehehe, faleminderit që më kujtove komandat MySQL. Tani le të shohim nëse "vendos disa siguri" në bazën e të dhënave të serverit World of Warcraft që kam në LAN-in tim.

  3.   sieg84 dijo

    njohuritë e mia për këtë janë zero, por janë pothuajse të njëjta për përdorimin e MySQL për Amarok?
    KRIJO BAZN E TAT DHNAVE amarokdb;
    JAN T ALL GJITHA PRIVILEGJET N ON amarokdb. * TE 'amarokuser' IDENTIFIKUAR NGA 'fjalëkalimi'; PRIVILEGJET E FLUSHIT;

    1.    KZKG ^ Gaara dijo

      Unë nuk kam përdorur Amarok për një kohë të gjatë, të gjatë, por nëse përdorni një DB që është MySQL, në teori duhet të funksionojë edhe në atë mënyrë.

  4.   Carlos Andres Restrepo dijo

    Përshëndetje, do të ishte mirë nëse krijonit një hyrje për siguri kundër serverave të internetit në Linux, shumë prej tyre nuk kanë sigurinë e duhur dhe administratori i të njëjtit nuk është ekspert siç duhet, ato vetëm lehtësojnë gjërat, për shembull përdorimin e lidhja në servera lejon leximin e skedarëve të konfigurimit të llogarive të tjera në të njëjtin server, shumë administratorë nuk janë në dijeni të kësaj dhe kjo është arsyeja pse faqet e faqeve të internetit shumohen

    të fala

    1.    KZKG ^ Gaara dijo

      Hi si po shkon
      Mirësevini në sit

      Në të vërtetë unë nuk e konsideroj veten larg si ekspert në këtë çështje, por do të përpiqem të kontribuoj në njohuritë e pakta që kam fituar gjatë viteve ...

      Një tjetër gjë që nuk bëjnë shumë administratorë të rrjetit, është t'u japin privilegje faqeve me apache individualisht, domethënë përdoruesit dhe grupit të të dhënave www (ose të ngjashme), e cila është e ndryshme për secilën faqe, dhe nga ana tjetër kafaz secilën nga këto .

      të fala

  5.   hakloper775 dijo

    Këshillë e mirë

    të fala

    1.    KZKG ^ Gaara dijo

      Faleminderit

  6.   nano dijo

    E urrej pamjen e terminalit tuaj, letrat e sfondit më nxjerrin nga përqendrimi. Ju jeni një xD i ndyrë i ndyrë

    Jashtë kësaj, është interesante sepse kam parë raste patetike të ndërprerjeve të shërbimeve nga ato gjëra.

    Tani, jo vetëm varet nga kjo, siguria qëndron në mënyrën se si u ndërtua baza e të dhënave, më shpjegoi një mësues, por unë nuk jam zhytur ende shumë në DB ... ne duhet të ngatërrohemi me MongoDB = D një nga këto ditë

  7.   Karlos Kolonel dijo

    vetëm kjo më ndodhi sot me serverin tim me qira

    Unë ndoqa hapat e tu, hyra në cpanel dhe kërkova bazën e të dhënave MYSQL dhe më tregon se është jashtë funksionit.

    Nuk e di se si të futem tani nën përdoruesin rrënjë
    Unë jam një neofit në këtë, por duke lexuar këtu mësoni shumë, shpresoj të më udhëzoni të qasem

    1.    KZKG ^ Gaara dijo

      Pershendetje
      Ajo që keni është një Hosting (SharedHosting) ose një VPS (server virtual)?

      Nëse keni një Hosting dhe jo një VPS, atëherë duhet të shihni nëse Pritja juaj ka qasje në SSH (kontaktoni ndihmën teknike të kompanisë që ju ka shitur pritjen dhe pyetini se si të hyjnë përmes SSH), sapo të hyni përmes SSH, përdoruesi NUK do të jetë root, por duhet të përdorni përdoruesin që keni futur kur keni instaluar atë aplikacion në internet.

      Në të vërtetë e juaja është një temë e komplikuar, sepse variantet dhe mundësitë janë shumë të shumta, unë ju rekomandoj që të hapni një temë të re në forumin tonë, atje do të jetë më komode për t'ju ndihmuar - » http://foro.desdelinux.net

      Pershendetje

  8.   bossbrondem dijo

    Mirë,

    E kuptoj që është praktikë e mirë të mos i japësh të gjitha privilegjet asnjë përdoruesi përveç root-it. Sidoqoftë, që kur instalova phpmyadmin, një përdorues i ri "phpmyadmin" është krijuar me të gjitha privilegjet. Duket logjike që duhet të ndodhë kështu, pasi është vetëm një version grafik për të menaxhuar bazat e të dhënave në MySQL. Sidoqoftë, do të doja të sigurohesha nëse është mirë ashtu siç është apo duhet të bëj disa modifikime në privilegjet e përdoruesit "phpmyadmin".

    Përshëndetje dhe faleminderit!

  9.   Emmanuel dijo

    Shkëlqyeshëm
    Unë jam një nga ata që bëj gjithçka me rrënjë, por ti më ke hapur sytë shoku ..
    Faleminderit shume…