Saglabājiet MySQL datu bāzes drošībā, izveidojot atsevišķus lietotājus un atļaujas

Es vienmēr esmu bijis labas prakses draugs, vēl vairāk, ja tas palīdz mums saglabāt mūsu serveru, pakalpojumu vai vienkārši mūsu informācijas drošību.

Paradums (slikts ieradums), kas piemīt daudziem administratoriem vai lietotājiem, ir izmantot piekļuvi sakne visām datu bāzēm, tas ir, ... viņi instalē vietni, izmantojot WordPress CMS, un kā piekļuves datus datu bāzei (lai WP izmantotu MySQL serveri un izmantotu tā DB) viņi ievieto MySQL servera administrēšanas lietotāju : sakne

Viņi arī instalē jebkuru citu tīmekļa lietojumprogrammu (tērzēšanu, ielīmēšanu, forumu utt.) Un dara to pašu, viņi vienmēr izmanto MySQL saknes lietotāju ...

KĻŪDA !!!

Tas ir vienkārši letāls ieradums.

Pieņemsim, ka mums serverī ir šādi pakalpojumi:

  1. Vietne vai portāls, kas izmanto WordPress.
  2. Mūsu atbalsta forums, sarunas utt. ... vesela kopiena.
  3. FTP, kas izmanto MySQL datu bāzi lietotāju un paroļu glabāšanai.
  4. E-pasta lietotāji (lietotāji un paroles) tiek glabāti MySQL datu bāzē.
  5. Neliels WebChat, ko mēs instalējam, lai tērzētu ar kādu, kuru pazīstat.

Un visos no tiem 5 pakalpojumos mēs izmantojam MySQL saknes lietotāju, lai katrs pakalpojums piekļūtu datiem un tos saglabātu attiecīgajā datu bāzē.

Vienā jaukā dienā kāds no daudzajiem troļļiem, kas atrodas tīklā, taču tas ir ne tikai trollis, bet arī pārvalda dažus izmantošanas veidus, ievainojamības, uzlaušanas gadījumus utt. ... nolemj izdarīt kaut ko mums kaitīgu.

Atrodiet kļūdu WebChat, kuru izmantojam, izmantojot šīs kļūdas priekšrocības, tā pārvalda piekļuvi WebChat failiem, ieskaitot WebChat konfigurācijas failu, un ... šajā failā ir lietotājvārds un parole, ko WebChat izmanto piekļūt MySQL serverim un uzminēt ko? ... Tas nav nekas vairāk un ne mazāk sakņu lietotājs!

Iegūstot šo informāciju, trollis ļoti vienkāršā veidā var:

  1. Izdzēsiet mūs un / vai nozagiet visu, kas saistīts ar vietni vai portālu, kas mums ir (WordPress).
  2. Jūs varat izdzēst un / vai nozagt informāciju no mums UN no mūsu lietotājiem, kuri izmanto forumu, mūsu izveidoto kopienu.
  3. Varat arī nozagt VISU lietotāju, kuriem mūsu serverī ir e-pasta konts, lietotājvārdu un paroli, kā arī nozagt informāciju no viņu e-pastiem, uzdot personas utt.
  4. Un visbeidzot, jūs varat izmantot kontu mūsu FTP serverī un augšupielādēt visus failus, kas satur ļaunprātīgu programmatūru, kas ļautu jums TOTAL un ABSOLUTE kontrolēt mūsu serveri.

Nu ... ko jūs domājat? … 🙂

Vai redzat visu, kas var notikt, tikai neveidojot neatkarīgus lietotājus katrai mūsu datubāzei?

Tas NAV draugu pārspīlējums, tas var notikt ar pārsteidzošu vieglumu ... labi, viss, kas nepieciešams katastrofas atraisīšanai, ir tikai kļūda dažās jūsu instalētajās tīmekļa lietojumprogrammās.

Tagad ...

Kā izveidot atsevišķus MySQL lietotājus katrai tīmekļa lietojumprogrammai?

Vispirms mums ir jāievada MySQL serveris ar root lietotāju, jo viņam ir tiesības izveidot datubāzes, izveidot atļaujas, izveidot lietotājus utt.:

mysql -u root -p

Kad viņi raksta iepriekš minēto un nospiež [Ievadīt] viņiem tiks prasīts MySQL saknes lietotāja parole, viņi to uzraksta un nospiež [Ievadīt] atkal jums uzreiz tiks parādīts kaut kas līdzīgs šim:

Tagad mēs izveidosim datu bāzi ar nosaukumu «Webchatdb":
CREATE DATABASE webchatdb;

Ievērojiet semikolu «;»Rindas beigās.

Gatavs, jūs jau esat izveidojis datu bāzi, tagad izveidosim lietotāju «tīmekļa pārlūks«Ar paroli«parole":

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

Tagad burvība ... mēs piešķirsim visas privilēģijas (lasīt un rakstīt) tīmekļa pārlūks TIKAI DB Webchatdb:

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

Un voila, lietotājam jau ir atļaujas šajā datubāzē ... tagad atliek tikai atsvaidzināt MySQL atļaujas, tas ir, pateikt MySQL atkārtoti izlasīt lietotāju privilēģijas, jo mēs tikko esam tajās mainījuši:

FLUSH PRIVILEGES ;

Es jums atstāju ekrānuzņēmumu:

Un tas ir bijis viss. Veicot to katrai tīmekļa lietojumprogrammai, kuru izmantojam, mēs garantējam, ka gadījumā, ja viņiem izdosies pārkāpt kādu no šīm tīmekļa lietojumprogrammām, pārējās būs drošībā (vismaz no MySQL viedokļa)

Kāda ir laba prakse? 😉

Es ceru, ka tas jums ir bijis tikpat noderīgs kā man, jo es centos to izskaidrot pēc iespējas vienkāršāk.

Sveicieni


Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: Migels Ángels Gatóns
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.

  1.   čurkste teica

    Labs ieraksts KZKG, ja tas būtu forumā, es lūgtu lipīgu!

    1.    KZKG ^ Gaara teica

      Paldies 😀

      1.    KubaRed teica

        Webchat iestatītā parole ir laba, vēl viena lieta, kas ir saistīta ar mysql, ir tās atmiņas izmantošana

  2.   Hyuuga_Neji teica

    Hehehe, paldies, ka atgādinājāt par MySQL komandām, tagad redzēsim, vai "Es ievietoju zināmu drošību" World of Warcraft serveru DB, kas man ir manā LAN.

  3.   84 teica

    manas zināšanas par to ir nulle, bet tas ir gandrīz tāds pats kā MySQL lietošanai Amarok?
    IZVEIDOT DATU BĀZI amarokdb;
    Piešķiriet visas amarokdb privilēģijas. * TO 'amarokuser', KAS IDENTIFIKĒTS ar 'paroli'; Skalošanas privilēģijas;

    1.    KZKG ^ Gaara teica

      Es neesmu lietojis Amarok ilgu laiku, bet, ja jūs izmantojat DB, kas ir MySQL, teorētiski tam vajadzētu darboties arī tā.

  4.   Karloss Andrés Restrepo teica

    Labdien, būtu labi, ja jūs izveidotu ierakstu drošībai pret tīmekļa serveriem Linux, daudziem no tiem nav pienācīgas drošības, un tā paša administrators nav eksperts, viņi tikai atvieglo viņu darbu, piemēram, symlink izmantošana serveros ļauj lasīt citu kontu konfigurācijas failus tajā pašā serverī, daudzi administratori par to nezina, un tāpēc vietņu defacementu skaits palielinās

    Sveicieni

    1.    KZKG ^ Gaara teica

      Sveiki, kā tas notiek
      Laipni lūdzam vietnē 🙂

      Patiesībā es neuzskatu sevi par ekspertu šajā jautājumā, bet es centīšos dot ieguldījumu mazajās zināšanās, kuras esmu ieguvis gadu gaitā 🙂

      Vēl viena lieta, ko nedara daudzi tīkla administratori, ir privilēģiju piešķiršana vietnēm ar apache atsevišķi, tas ir, lietotāju un grupu www-data (vai tamlīdzīgi), kas katrai vietnei ir atšķirīgs, un, savukārt, būris katrs no šiem.

      Sveicieni

  5.   hackloper775 teica

    Labs padoms

    Sveicieni

    1.    KZKG ^ Gaara teica

      Paldies

  6.   nano teica

    IENĪSTU jūsu termināla parādīšanos, fona burti mani izved no koncentrēšanās. Jūs esat jāšanās trakais xD

    Ārpus tā ir interesanti, jo esmu redzējis nožēlojamus gadījumus, kad no šīm lietām tiek pārtraukta apkalpošana.

    Tagad tas ne tikai ir atkarīgs no tā, ka drošība slēpjas tajā, kā tika izveidota datu bāze, paskaidroja man skolotājs, bet es vēl neesmu ļoti iegremdējies DB ... mums vajadzētu sajaukt ar MongoDB = D vienā no šīm dienām

  7.   Karloss Koronels teica

    tieši tas notika ar mani šodien ar savu nomāto serveri

    Es sekoju jūsu darbībām, iegāju cpanel un meklēju MYSQL datu bāzi, un tā man saka, ka tā nav kārtībā.

    Es nezinu, kā tagad ievadīt ar root lietotāju
    Es šajā ziņā esmu neofits, bet šeit lasot jūs uzzināt daudz, es ceru, ka jūs mani vadīsit pieejas

    1.    KZKG ^ Gaara teica

      Labdien 🙂
      Kas jums ir, ir hostings (SharedHosting) vai VPS (virtuālais serveris)?

      Ja jums ir mitināšana, nevis VPS, jums vajadzētu redzēt, vai jūsu mitināšanai ir SSH piekļuve (sazinieties ar tā uzņēmuma tehnisko atbalstu, kurš jums pārdeva mitināšanu, un jautājiet, kā piekļūt, izmantojot SSH), tiklīdz ievadīsit caur SSH, lietotājs NETIEK root, bet jums jāizmanto lietotājs, kuru ievadījāt, instalējot šo tīmekļa lietojumprogrammu.

      Patiesībā jūsu tēma ir sarežģīta, jo variantu un iespēju ir tik ļoti daudz, iesaku atvērt jaunu tēmu mūsu forumā, tur jums būs ērtāk palīdzēt - » http://foro.desdelinux.net

      Sveiciens 😀

  8.   bossbrondem teica

    labi,

    Es saprotu, ka ir laba prakse nedot visas privilēģijas nevienam lietotājam, izņemot root. Tomēr, kopš es instalēju phpmyadmin, ir izveidots jauns lietotājs "phpmyadmin" ar visām privilēģijām. Šķiet loģiski, ka tas tā ir, jo datu bāzu pārvaldībai MySQL ir tikai grafiska versija. Jebkurā gadījumā es vēlētos pārliecināties, vai tas ir labi, kā tas ir, vai man vajadzētu veikt dažas izmaiņas lietotāja "phpmyadmin" privilēģijās.

    Sveiciens un paldies!

  9.   Emmanuel teica

    Lieliski…
    Es esmu viens no tiem, kas visu dara ar saknēm, bet tu esi atvēris manas acis draugs ..
    Liels paldies…