Udržujte svoje databázy MySQL v bezpečí vytváraním samostatných používateľov a povolení

Vždy som bol priateľom osvedčených postupov, oveľa viac, ak nám pomáhajú udržiavať bezpečnosť našich serverov, služieb alebo jednoducho našich informácií.

Zvykom (zlozvykom), ktorý má veľa správcov alebo používateľov, je použitie prístupu koreň pre všetky databázy, to znamená ... inštalujú web pomocou CMS WordPress a ako prístupové údaje k databáze (pre WP použitie servera MySQL a jeho databázy) vložia administrátora servera MySQL: root

Nainštalujú si tiež akúkoľvek inú webovú aplikáciu (chat, pastu, fórum atď.) A robia to isté, vždy používajú koreňového používateľa MySQL ...

CHYBA!!!

Toto je jednoducho osudový zvyk.

Predpokladajme, že máme na serveri tieto služby:

  1. Web alebo portál používajúci WordPress.
  2. Naše fórum podpory, rozhovory atď ... celá komunita.
  3. FTP, ktorý používa databázu MySQL na ukladanie používateľov a hesiel.
  4. Používatelia e-mailov sú ukladaní (používatelia a heslá) do databázy MySQL.
  5. Malý webový chat, ktorý si nainštalujeme na rozhovor s niekým, koho poznáte.

A vo všetkých z nich v 5 službách používame koreňového používateľa MySQL, aby každá služba pristupovala k údajom a ukladala ich do príslušnej databázy.

Jedného pekného dňa sa ktokoľvek z mnohých trollov vonku, ale nejedná sa len o trolla, ale ovláda aj niektoré zneužitia, zraniteľné miesta, hacking atď., Sa rozhodne urobiť niečo pre nás škodlivé.

Vyhľadajte chybu v serveri WebChat, ktorý používame, pričom s využitím tejto chyby spravuje prístup k súborom WebChat vrátane konfiguračného súboru WebChat a ... v tomto súbore je samozrejme meno používateľa a heslo, ktoré server WebChat používa na prístup k súborom WebChat. MySQL server a hádajte čo? ... Nie je to nič viac a nič menej KOREŇOVÝ UŽÍVATEĽ!

Získaním týchto informácií veľmi jednoduchým spôsobom môže troll:

  1. Vymažte nás alebo ukradnite všetko, čo súvisí s webom alebo portálom, ktorý máme (WordPress).
  2. Môžete vymazať a / alebo ukradnúť informácie od nás A od našich používateľov, ktorí používajú fórum, komunitu, ktorú tvoríme.
  3. Môžete tiež ukradnúť používateľské meno a heslo VŠETKÝM používateľom, ktorí majú na našom serveri e-mailový účet, ako aj ukradnúť informácie z ich e-mailov, vydávať sa za iných ľudí atď.
  4. A teraz konečne môžete použiť účet na našom serveri FTP a nahrať akýkoľvek súbor obsahujúci malvér, ktorý vám umožní získať ABSOLÚTNU a TOTÁLNU kontrolu nad našim serverom.

No ... čo vy na to? … 🙂

Vidíte všetko, čo sa môže stať, len ak nevytvoríte nezávislých používateľov pre každú databázu, ktorú máme?

Toto NIE je prehnané priatelia, toto sa môže stať s úžasnou ľahkosťou ... všetko, čo je potrebné na spustenie katastrofy, je iba chyba v niektorých webových aplikáciách, ktoré ste si nainštalovali.

Teraz ...

Ako vytvoriť samostatných používateľov MySQL pre každú webovú aplikáciu?

Najskôr musíme vstúpiť na server MySQL s používateľom root, pretože ten je oprávnený vytvárať databázy, vytvárať oprávnenia, vytvárať používateľov atď.:

mysql -u root -p

Keď napíšu vyššie uvedené a stlačte [vstúpiť] Bude sa od nich požadovať heslo užívateľa root MySQL, tí ho napíšu a stlačte [vstúpiť] opäť sa vám okamžite zobrazí niečo také:

Teraz vytvoríme databázu s názvom «webchatdb,:
CREATE DATABASE webchatdb;

Všimnite si bodkočiarku «;»Na konci riadku.

Sme pripravení, databázu ste už vytvorili, teraz poďme ďalej a vytvorme používateľa «webchatus«S heslom«heslodelputowebchat,:

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

Teraz to kúzlo ... dáme všetky privilégiá (čítanie a zápis) webchatus IBA v DB webchatdb:

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

A voila, používateľ už má oprávnenie v tejto databáze ... teraz zostáva iba obnovenie oprávnení pre MySQL, to znamená, povedzte MySQL, aby znovu načítalo oprávnenia používateľov, pretože sme ich práve zmenili:

FLUSH PRIVILEGES ;

Nechám vám screenshot:

A toto bolo všetko. Tým, že to urobíme pre každú webovú aplikáciu, ktorú používame, zaručujeme, že v prípade, že sa im podarí niektorú z týchto webových aplikácií porušiť, budú ostatné v bezpečí (aspoň z pohľadu MySQL)

Čo je to osvedčený postup? 😉

Dúfam, že to pre vás bolo rovnako užitočné ako pre mňa, pretože som sa to snažil vysvetliť čo najjednoduchšie.

pozdravy


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.

  1.   martin dijo

    Dobrý príspevok KZKG, ak by bol vo fóre, požiadal by som o lepkavý!

    1.    KZKG ^ Gaara dijo

      Dakujem 😀

      1.    CubaRed dijo

        Heslo, ktoré zadáte pre webchat, je dobré, ďalšou vecou, ​​ktorá súvisí s mysql, je použitie jeho pamäte

  2.   Hyuuga_Neji dijo

    Hehehe, ďakujem za pripomenutie príkazov MySQL. Teraz sa pozrime, či „vložil som nejaké zabezpečenie“ do databázy servera World of Warcraft, ktorú mám v sieti LAN.

  3.   INCI Ingredients dijo

    moje vedomosti o tom sú nulové, ale sú takmer rovnaké pre použitie MySQL pre Amarok?
    VYTVORIŤ DATABÁZU amarokdb;
    UDELIŤ VŠETKY VÝSADY NA amarokdb. * „Amarokuser“ IDENTIFIKOVANÉMU „heslom“; VÝPLATNÉ VÝSADY;

    1.    KZKG ^ Gaara dijo

      Amarok som dlho, dlho nepoužíval, ale ak používate databázu, ktorá je MySQL, teoreticky by to malo fungovať tiež.

  4.   Carlos Andres Restrepo dijo

    Dobrý deň, bolo by dobré, keby ste vytvorili záznam pre zabezpečenie proti webovým serverom v systéme Linux, veľa z nich nemá správne zabezpečenie a ich správca nie je odborníkom, iba uľahčujú veci, napríklad použitie symlinku na serveroch umožňuje čítanie konfiguračných súborov iných účtov na rovnakom serveri, mnoho administrátorov o tom nevie, a preto sa množia nedostatky webových stránok

    pozdravy

    1.    KZKG ^ Gaara dijo

      Ahoj, ako to ide
      Vitajte na stránke 🙂

      Ani zďaleka sa naozaj nepovažujem za odborníka v tejto veci, ale pokúsim sa prispieť malými poznatkami, ktoré som za tie roky získal 🙂

      Ďalšia vec, ktorú veľa administrátorov siete nerobí, je udelenie privilégií webom s apache individuálne, to znamená používateľským a skupinovým údajom www (alebo podobným), ktoré sú pre každú lokalitu odlišné, a následne každú z nich ukladať do klietok.

      pozdravy

  5.   hackloper775 dijo

    Dobrý tip

    pozdravy

    1.    KZKG ^ Gaara dijo

      Ďakujem vám

  6.   nano dijo

    NENÁVIDÍM vzhľad vášho terminálu, písmená na pozadí ma vyradia z mojej koncentrácie. Si kurva blázon xD

    Mimo toho je to zaujímavé, pretože som z týchto vecí videl žalostné prípady výpadkov služieb.

    Teraz to nezávisí iba od toho, bezpečnosť spočíva v tom, ako bola vybudovaná databáza, vysvetlil mi učiteľ, ale ešte nie som veľmi ponorený do DB ... mali by sme sa pokaziť s MongoDB = D jedným z týchto dni

  7.   Carlos plukovník dijo

    práve to sa mi dnes stalo s mojím prenajatým serverom

    Sledoval som vaše kroky, išiel som do cpanelu a vyhľadal databázu MYSQL, ktorá mi hovorí, že je mimo prevádzky.

    Neviem, ako teraz vstúpiť pod užívateľom root
    V tomto som nováčik, ale čítanie tu sa veľa dozviete, dúfam, že ma dovediete k prístupu

    1.    KZKG ^ Gaara dijo

      Ahojte 🙂
      Máte k dispozícii Hosting (SharedHosting) alebo VPS (virtuálny server)?

      Ak máte Hosting a nie VPS, mali by ste zistiť, či má váš Hosting prístup SSH (obráťte sa na technickú podporu spoločnosti, ktorá vám predala hosting, a spýtajte sa ich, ako majú získať prístup cez SSH), akonáhle vstúpite cez SSH, používateľ NIE bude root, ale musíte použiť používateľa, ktorého ste zadali pri inštalácii tejto webovej aplikácie.

      Vaša téma je v skutočnosti komplikovaná, pretože jej variantov a možností je veľa, odporúčam vám otvoriť si novú tému na našom fóre, kde vám bude pohodlnejšie pomôcť - » http://foro.desdelinux.net

      Zdravím 😀

  8.   bossbrondem dijo

    dobrý,

    Rozumiem, že je dobrým zvykom neposkytovať všetkým privilégiám žiadnemu používateľovi okrem root. Avšak odkedy som nainštaloval phpmyadmin, bol vytvorený nový užívateľ "phpmyadmin" so všetkými oprávneniami. Zdá sa logické, že by to tak malo byť, pretože je to iba grafická verzia na správu databáz v MySQL. Každopádne by som sa chcel ubezpečiť, či je to v poriadku, ako to je, alebo či by som mal urobiť nejaké úpravy v oprávneniach užívateľa "phpmyadmin".

    Zdravím a ďakujem!

  9.   Emmanuel dijo

    Vynikajúci…
    Som jedným z tých, ktorí robia všetko s rootom, ale otvoril si mi oči, priateľu ..
    Mnohokrat dakujem…