12 MySQL/MariaDB öryggisvenjur fyrir Linux


MySQL er vinsælasta opinn uppspretta gagnagrunnskerfi heims og MariaDB (gafl af MySQL) er ört vaxandi opinn uppspretta gagnagrunnskerfi heims. Eftir að MySQL miðlarinn hefur verið settur upp er hann óöruggur í sjálfgefna stillingu hans og að tryggja hann er eitt af nauðsynlegu verkefnum í almennri gagnagrunnsstjórnun.

Þetta mun stuðla að því að herða og efla heildaröryggi Linux netþjóna, þar sem árásarmenn skanna alltaf veikleika í hvaða hluta kerfisins sem er og gagnagrunnar hafa áður verið lykilmarkmið. Algengt dæmi er kúgun rótarlykilorðsins fyrir MySQL gagnagrunninn.

Í þessari handbók munum við útskýra gagnlegar MySQL/MariaDB öryggisvenjur fyrir Linux.

1. Örugg MySQL uppsetning

Þetta er fyrsta ráðlagða skrefið eftir að MySQL miðlarinn hefur verið settur upp, í átt að því að tryggja gagnagrunnsþjóninn. Þetta handrit auðveldar þér að bæta öryggi MySQL netþjónsins með því að biðja þig um að:

  • stilltu lykilorð fyrir rótarreikninginn, ef þú stilltir það ekki við uppsetningu.
  • slökktu á ytri rótnotandainnskráningu með því að fjarlægja rótarreikninga sem eru aðgengilegir utan staðbundins hýsils.
  • fjarlægðu nafnlausa notendareikninga og prófunargagnagrunn sem allir notendur geta sjálfgefið nálgast, jafnvel nafnlausir notendur.

# mysql_secure_installation

Eftir að hafa keyrt það skaltu stilla rótarlykilorðið og svara röð spurninga með því að slá inn [Yes/Y] og ýta á [Enter].

2. Binddu gagnagrunnsþjóninn við endurtekið heimilisfang

Þessi stilling mun takmarka aðgang frá ytri vélum, hún segir MySQL þjóninum að samþykkja aðeins tengingar innan staðarhýsingaraðilans. Þú getur stillt það í aðalstillingarskránni.

# vi /etc/my.cnf	                   [RHEL/CentOS]	
# vi /etc/mysql/my.conf                    [Debian/Ubuntu] 
OR
# vi /etc/mysql/mysql.conf.d/mysqld.cnf    [Debian/Ubuntu] 

Bættu við eftirfarandi línu fyrir neðan undir [mysqld] hlutanum.

bind-address = 127.0.0.1

3. Slökktu á LOCAL INFILE í MySQL

Sem hluti af öryggisherðingu þarftu að slökkva á local_infile til að koma í veg fyrir aðgang að undirliggjandi skráarkerfi innan frá MySQL með því að nota eftirfarandi tilskipun undir [mysqld] hlutanum.

local-infile=0

4. Breyttu MYSQL sjálfgefna tengi

Port breytan setur MySQL gáttarnúmerið sem verður notað til að hlusta á TCP/IP tengingar. Sjálfgefið gáttarnúmer er 3306 en þú getur breytt því undir [mysqld] hlutanum eins og sýnt er.

Port=5000

5. Virkja MySQL Logging

Logs eru ein besta leiðin til að skilja hvað gerist á netþjóni, ef einhverjar árásir eru, geturðu auðveldlega séð hvers kyns innbrotstengda starfsemi úr annálaskrám. Þú getur virkjað MySQL skráningu með því að bæta við eftirfarandi breytu undir [mysqld] hlutanum.

log=/var/log/mysql.log

6. Stilltu viðeigandi leyfi fyrir MySQL skrár

Gakktu úr skugga um að þú hafir viðeigandi heimildir settar fyrir allar mysql netþjónaskrár og gagnaskrár. /etc/my.conf skráin ætti aðeins að vera hægt að skrifa í rót. Þetta hindrar aðra notendur frá því að breyta stillingum gagnagrunnsþjóns.

# chmod 644 /etc/my.cnf

7. Eyða MySQL Shell sögu

Allar skipanir sem þú framkvæmir á MySQL skel eru geymdar af mysql biðlaranum í söguskrá: ~/.mysql_history. Þetta getur verið hættulegt, vegna þess að fyrir hvaða notendareikninga sem þú býrð til verða öll notendanöfn og lykilorð sem slegin eru inn á skelina skráð í söguskrána.

# cat /dev/null > ~/.mysql_history

8. Ekki keyra MySQL skipanir frá skipanalínu

Eins og þú veist nú þegar eru allar skipanir sem þú slærð inn á flugstöðina geymdar í söguskrá, allt eftir skelinni sem þú notar (til dæmis ~/.bash_history fyrir bash). Árásarmaður sem tekst að fá aðgang að þessari söguskrá getur auðveldlega séð hvaða lykilorð sem er skráð þar.

Það er eindregið ekki mælt með því að slá inn lykilorð á skipanalínunni, eitthvað á þessa leið:

# mysql -u root -ppassword_

Þegar þú athugar síðasta hluta skipanasöguskrárinnar muntu sjá lykilorðið sem slegið er inn hér að ofan.

# history 

Rétt leið til að tengja MySQL er.

# mysql -u root -p
Enter password:

9. Skilgreindu notendur gagnagrunns sem eru sérstakir fyrir forrit

Fyrir hvert forrit sem keyrir á þjóninum, veitir aðeins notanda sem hefur umsjón með gagnagrunni fyrir tiltekið forrit aðgang. Til dæmis, ef þú ert með wordpress síðu, búðu til ákveðinn notanda fyrir WordPress síðu gagnagrunninn sem hér segir.

# mysql -u root -p
MariaDB [(none)]> CREATE DATABASE osclass_db;
MariaDB [(none)]> CREATE USER 'osclassdmin'@'localhost' IDENTIFIED BY '[email %!2';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON osclass_db.* TO 'osclassdmin'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit

og mundu að fjarlægja notendareikninga sem eru ekki lengur að stjórna neinum forritagagnagrunni á þjóninum.

10. Notaðu viðbótaröryggisviðbætur og bókasöfn

MySQL inniheldur fjölda öryggisviðbóta fyrir: sannvottunartilraunir viðskiptavina til að tengjast mysql netþjóni, staðfestingu lykilorðs og öryggi geymslu fyrir viðkvæmar upplýsingar, sem allar eru fáanlegar í ókeypis útgáfunni.

Þú getur fundið meira hér: https://dev.mysql.com/doc/refman/5.7/en/security-plugins.html

11. Breyttu MySQL lykilorðum reglulega

Þetta er algengt upplýsinga-/forrit/öryggisráðgjöf. Hversu oft þú gerir þetta fer algjörlega eftir innri öryggisstefnu þinni. Hins vegar getur það komið í veg fyrir að snoopers sem gætu hafa fylgst með virkni þinni í langan tíma, fái aðgang að mysql netþjóninum þínum.

MariaDB [(none)]> USE mysql;
MariaDB [(none)]> UPDATE user SET password=PASSWORD('YourPasswordHere') WHERE User='root' AND Host = 'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;

12. Uppfærðu MySQL miðlarapakkann reglulega

Það er mjög mælt með því að uppfæra mysql/mariadb pakka reglulega til að fylgjast með öryggisuppfærslum og villuleiðréttingum, úr geymslu söluaðilans. Venjulega eru pakkar í sjálfgefnum stýrikerfisgeymslum úreltir.

# yum update
# apt update

Eftir að hafa gert einhverjar breytingar á mysql/mariadb þjóninum skaltu alltaf endurræsa þjónustuna.

# systemctl restart mariadb		#RHEL/CentOS
# systemctl restart mysql		#Debian/Ubuntu

Það er allt og sumt! Við elskum að heyra frá þér í gegnum athugasemdareyðublaðið hér að neðan. Deildu með okkur öllum MySQL/MariaDB öryggisráðum sem vantar á listanum hér að ofan.