Pidä MySQL-tietokannat turvassa luomalla erilliset käyttäjät ja käyttöoikeudet

Olen aina ollut hyvien käytäntöjen ystävä, paljon enemmän, jos ne auttavat meitä ylläpitämään palvelimiemme, palvelujemme tai yksinkertaisesti tietojemme turvallisuutta.

Monien järjestelmänvalvojien tai käyttäjien tapana (huono tapa) on käyttää pääsyä juuri Kaikille tietokannoille, eli ... he asentavat sivuston WordPress CMS: n avulla ja käyttävät tietokantaan pääsytietoja (jotta WP voi käyttää MySQL-palvelinta ja käyttää sen DB: tä) he asettavat MySQL-palvelimen hallintakäyttäjän: root

Lisäksi he asentavat minkä tahansa muun verkkosovelluksen (chat, paste, foorumi jne.) Ja tekevät samoin, he käyttävät aina MySQL: n pääkäyttäjää ...

VIRHE!!!

Tämä on yksinkertaisesti kohtalokas tapa.

Oletetaan, että palvelimella on seuraavat palvelut:

  1. Sivusto tai portaali, joka käyttää WordPressiä.
  2. Tukifoorumimme, keskustelut jne. ... koko yhteisö.
  3. FTP, joka käyttää MySQL-tietokantaa käyttäjien ja salasanojen tallentamiseen.
  4. Sähköpostin käyttäjät (käyttäjät ja salasanat) tallennetaan MySQL-tietokantaan.
  5. Pieni WebChat, jonka asennamme keskustelemaan tuntemasi henkilön kanssa.

Kaikissa niissä viidessä palvelussa käytämme MySQL-pääkäyttäjää, jotta jokainen palvelu käyttää ja tallentaa tiedot vastaavaan tietokantaansa.

Eräänä hienona päivänä mikä tahansa monista siellä peukaloista, mutta tämä ei ole vain peikko, mutta se hallitsee myös joitain hyväksikäyttöjä, haavoittuvuuksia, hakkerointia jne. ... päättää tehdä jotain haitallista meille.

Etsi käytettävästä WebChat-virheestä. Hyödyntämällä tätä virhettä se onnistuu pääsemään WebChat-tiedostoihin, mukaan lukien WebChat-määritystiedosto, ja… tässä tiedostossa on tietysti käyttäjänimi ja salasana, joita WebChat käyttää MySQL-palvelin, ja arvaa mitä? … Se ei ole mitään enempää eikä vähemmän kuin JUUREN KÄYTTÄJÄ!

Saamalla nämä tiedot, peikko voi:

  1. Poista meidät ja / tai varastaa kaikki sivustollemme tai portaalillemme liittyvät tiedot (WordPress).
  2. Voit poistaa ja / tai varastaa tietoja meiltä ja käyttäjiltä, ​​jotka käyttävät foorumia, luomamme yhteisöä.
  3. Voit myös varastaa käyttäjänimen ja salasanan kaikille käyttäjille, joilla on palvelimellamme sähköpostitili, sekä varastaa tietoja heidän sähköposteistaan, esiintyä toisena henkilönä jne.
  4. Ja nyt lopuksi voit käyttää tiliä FTP-palvelimellamme ja ladata minkä tahansa tiedoston, joka sisältää haittaohjelmia, mikä antaisi sinun hallita palvelinta TOTAL ja ABSOLUT.

No ... mitä mieltä olet? … 🙂

Näetkö kaiken, mitä voi tapahtua vain, jos et luo itsenäisiä käyttäjiä jokaiselle meillä olevalle tietokannalle?

Tämä ei ole liioittelua ystäviä, tämä voi tapahtua hämmästyttävän helposti ... No, kaikki mitä tarvitaan katastrofin laukaisemiseen on vain vika joissakin asennetuissa verkkosovelluksissa.

Nyt…

Kuinka luoda erilliset MySQL-käyttäjät kullekin verkkosovellukselle?

Ensin meidän on syötettävä MySQL-palvelin pääkäyttäjän kanssa, koska hänellä on oikeudet luoda tietokantoja, luoda käyttöoikeuksia, luoda käyttäjiä jne.:

mysql -u root -p

Kun he kirjoittavat yllä ja painavat [Tulla sisään] Heiltä kysytään MySQL-pääkäyttäjän salasana, he kirjoittavat sen ja painavat [Tulla sisään] taas kerran sinulle näytetään heti jotain tällaista:

Nyt luomme tietokannan nimeltä «webchatdb":
CREATE DATABASE webchatdb;

Huomaa puolipiste «;»Rivin lopussa.

Valmis, olet jo luonut tietokannan, nyt luodaan käyttäjä «verkkokirjaaja«Salasanalla«salasanadelputowebchat":

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

Nyt taika ... annamme kaikki oikeudet (lukea ja kirjoittaa) verkkokirjaaja VAIN DB: ssä webchatdb:

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

Ja voila, käyttäjällä on jo oikeudet kyseiseen tietokantaan ... nyt on vain päivitettävä MySQL: n käyttöoikeudet, eli käskettävä MySQL: ää lukemaan käyttäjien oikeudet uudelleen, koska olemme juuri tehneet niihin muutoksia:

FLUSH PRIVILEGES ;

Jätän kuvakaappauksen:

Ja tämä on ollut kaikkea. Tekemällä tämän jokaiselle käyttämällesi verkkosovellukselle, takaamme, että jos he onnistuvat rikkomaan jonkin näistä verkkosovelluksista, muut ovat turvassa (ainakin MySQL: n näkökulmasta)

Mikä on hyvä käytäntö? 😉

Toivon, että siitä on ollut sinulle yhtä hyötyä kuin minulle, koska yritin selittää sen mahdollisimman yksinkertaisesti.

terveiset


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.

  1.   räystäspääsky dijo

    Hyvä viesti KZKG, jos se olisi foorumissa, pyytäisin tahmeaa!

    1.    KZKG ^ Gaara dijo

      Kiitos 😀

      1.    KuubaPunainen dijo

        Webchatille asettamasi salasana on hyvä, toinen asia, joka liittyy mysqliin, on sen muistin käyttö

  2.   Hyuuga_Neji dijo

    Hehehe, kiitos, että muistutit minua MySQL-komennoista. Katsotaanpa nyt, asetanko "turvallisuutta" World of Warcraft -palvelintietokantaan, joka minulla on lähiverkossa.

  3.   sieg84 dijo

    tietoni tästä on nolla, mutta se on melkein sama käytettäessä MySQL: ää Amarokille?
    LUO TIETOKANTA amarokdb;
    ANNA KAIKKI etuoikeudet amarokdb: lle. * ”Salasanalla” TUNNISTETTAVALLE ”amarokuserille” Huuhtele etuoikeudet;

    1.    KZKG ^ Gaara dijo

      En ole käyttänyt Amarokia pitkään, kauan, mutta jos käytät DBS: ää, joka on MySQL, teoriassa sen pitäisi toimia myös niin.

  4.   Carlos Andres Restrepo dijo

    Hei, olisi hyvä, jos loisit merkinnän verkkopalvelimien suojausta varten Linuxissa, monilla heistä ei ole asianmukaista suojausta ja saman järjestelmänvalvoja ei ole asianmukainen asiantuntija, he vain helpottavat asioita, esimerkiksi symlinkin käyttö palvelimilla sallii lukemalla muiden palvelimien tilien määritystiedostot, monet järjestelmänvalvojat eivät ole tietoisia tästä ja siksi verkkosivustojen virheet lisääntyvät

    terveiset

    1.    KZKG ^ Gaara dijo

      Hei Sellaisena
      Tervetuloa sivustolle 🙂

      Oikeastaan ​​en pidä itseäni ylivoimaisesti asiantuntijana tässä asiassa, mutta yritän antaa osakseni sen vähän tietoa, jonka olen hankkinut vuosien varrella 🙂

      Toinen asia, jota monet verkon ylläpitäjät eivät tee, on antaa käyttöoikeudet apache-sivustoille erikseen, toisin sanoen käyttäjän ja ryhmän www-data (tai vastaava), joka on erilainen kullekin sivustolle, ja vuorostaan ​​kutakin näistä .

      terveiset

  5.   Hakkari775 dijo

    Hyvä vinkki

    terveiset

    1.    KZKG ^ Gaara dijo

      Kiitos

  6.   nano dijo

    VIHKIN päätelaitteen ulkoasua, taustakirjeet vievät minut pois keskittymisestäni. Olet vitun hullu xD

    Sen ulkopuolella se on mielenkiintoista, koska olen nähnyt säälittäviä tapauksia palveluhäiriöistä näistä asioista.

    Nyt se ei riipu pelkästään siitä, että turvallisuus on siinä, kuinka tietokanta rakennettiin, opettaja selitti minulle, mutta en ole vielä kovin upotettu tietokantaan ... meidän pitäisi sotkea MongoDB = D: n kanssa näistä päivää

  7.   Carlos eversti dijo

    juuri se tapahtui minulle tänään vuokratun palvelimen kanssa

    Seurasin vaiheitasi, menin cpaneliin etsimään MYSQL-tietokantaa ja se kertoo minulle, että se on epäkunnossa.

    En tiedä miten tulla nyt pääkäyttäjän alle
    Olen tässä uuskilainen, mutta lukemalla täältä opit paljon, toivottavasti opastat minua pääsemään

    1.    KZKG ^ Gaara dijo

      Hei 🙂
      Mitä sinulla on Hosting (SharedHosting) tai VPS (virtuaalipalvelin)?

      Jos sinulla on isännöinti eikä VPS, sinun pitäisi nähdä, onko palvelimellasi SSH-yhteys (ota yhteyttä isännöinnin myyneen yrityksen tekniseen tukeen ja kysy heiltä, ​​kuinka päästä SSH: n kautta), kun syötät SSH: n kautta, käyttäjä EI ole root, mutta sinun on käytettävä käyttäjää, jonka annoit, kun asennit kyseisen verkkosovelluksen.

      Itse asiassa sinun on monimutkainen aihe, koska vaihtoehtoja ja mahdollisuuksia on niin paljon, suosittelen, että avaat uuden aiheen foorumillamme, siellä on mukavampaa auttaa sinua - » http://foro.desdelinux.net

      Terveisiä 😀

  8.   bossbrondem dijo

    hyvä,

    Ymmärrän, että on hyvä käytäntö olla antamatta kaikkia käyttöoikeuksia kenellekään käyttäjälle paitsi pääkäyttäjälle. Siitä lähtien kun olen asentanut phpmyadminin, on luotu uusi käyttäjä "phpmyadmin", jolla on kaikki oikeudet. Vaikuttaa loogiselta, että näin on, koska se on vain graafinen versio hallita tietokantoja MySQL: ssä. Joka tapauksessa haluaisin varmistaa, onko se kunnossa sellaisenaan tai pitäisikö minun tehdä joitain muutoksia käyttäjän "phpmyadmin" käyttöoikeuksiin.

    Terveisiä ja kiitos!

  9.   Emmanuel dijo

    Erinomainen…
    Olen yksi niistä, jotka tekevät kaiken juuri, mutta olet avannut silmäni ystäväni.
    Kiitos paljon…