12 MySQL/MariaDB L-Aħjar Prattiki tas-Sigurtà għal Linux


MySQL hija l-aktar sistema ta’ database ta’ sors miftuħ popolari fid-dinja u MariaDB (furketta ta’ MySQL) hija s-sistema ta’ database ta’ sors miftuħ li qed tikber b’rata mgħaġġla fid-dinja. Wara l-installazzjoni tas-server MySQL, mhuwiex sigur fil-konfigurazzjoni default tiegħu, u l-iżgurar huwa wieħed mill-kompiti essenzjali fil-ġestjoni ġenerali tad-database.

Dan se jikkontribwixxi għat-twebbis u t-tisħiħ tas-sigurtà ġenerali tas-server Linux, peress li l-attakkanti dejjem jiskannjaw il-vulnerabbiltajiet fi kwalunkwe parti ta 'sistema, u d-databases fil-passat kienu żoni ta' mira ewlenin. Eżempju komuni huwa l-forza brutali tal-password tal-għeruq għad-database MySQL.

F'din il-gwida, se nispjegaw l-aħjar prattika utli tas-sigurtà MySQL/MariaDB għal Linux.

1. Installazzjoni MySQL Sikura

Dan huwa l-ewwel pass rakkomandat wara l-installazzjoni tas-server MySQL, lejn l-iżgurar tas-server tad-database. Din l-iskrittura tiffaċilita t-titjib tas-sigurtà tas-server MySQL tiegħek billi titlobek:

  • issettja password għall-kont root, jekk ma ssettjajtx waqt l-installazzjoni.
  • iskonta l-login remot tal-utent root billi tneħħi kontijiet root li huma aċċessibbli minn barra l-host lokali.
  • neħħi l-kontijiet ta' utent anonimu u d-database tat-test li b'mod awtomatiku jistgħu jiġu aċċessati mill-utenti kollha, anke minn utenti anonimi.

# mysql_secure_installation

Wara li tħaddem, issettja l-password tal-għeruq u wieġeb is-serje ta 'mistoqsijiet billi ddaħħal [Iva/Y] u agħfas [Enter].

2. Irbit Server tad-Database Ma' Indirizz Loopback

Din il-konfigurazzjoni se tirrestrinġi l-aċċess minn magni remoti, tgħid lis-server MySQL biex jaċċetta biss konnessjonijiet minn ġewwa l-localhost. Tista 'tissettjah fil-fajl tal-konfigurazzjoni prinċipali.

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

Żid il-linja li ġejja hawn taħt taħt it-taqsima [mysqld].

bind-address = 127.0.0.1

3. Iddiżattiva INFILE LOKALI f'MySQL

Bħala parti mit-twebbis tas-sigurtà, trid tiddiżattiva local_infile biex tipprevjeni aċċess għas-sistema tal-fajls sottostanti minn ġewwa MySQL billi tuża d-direttiva li ġejja taħt it-taqsima [mysqld].

local-infile=0

4. Ibdel il-Port Default MYSQL

Il-varjabbli Port tistabbilixxi n-numru tal-port MySQL li se jintuża biex jisma 'fuq konnessjonijiet TCP/IP. In-numru tal-port default huwa 3306 iżda tista 'tbiddel taħt it-taqsima [mysqld] kif muri.

Port=5000

5. Ippermetti MySQL Logging

Iz-zkuk huma wieħed mill-aħjar modi biex tifhem x'jiġri fuq server, f'każ ta 'xi attakki, tista' faċilment tara kwalunkwe attivitajiet relatati mal-intrużjoni minn log files. Tista 'tippermetti l-illoggjar MySQL billi żżid il-varjabbli li ġejja taħt it-taqsima [mysqld].

log=/var/log/mysql.log

6. Issettja Permess Approprjat fuq Fajls MySQL

Kun żgur li għandek permessi xierqa stabbiliti għall-fajls kollha tas-server mysql u direttorji tad-dejta. Il-fajl /etc/my.conf għandu jkun jista' jinkiteb biss mill-għeruq. Dan jimblokka utenti oħra milli jbiddlu l-konfigurazzjonijiet tas-server tad-database.

# chmod 644 /etc/my.cnf

7. Ħassar MySQL Shell History

Il-kmandi kollha li tesegwixxi fuq il-qoxra MySQL huma maħżuna mill-klijent mysql f'fajl tal-istorja: ~/.mysql_history. Dan jista 'jkun perikoluż, għaliex għal kwalunkwe kontijiet tal-utent li inti se toħloq, l-ismijiet tal-utent u l-passwords kollha ittajpjati fuq il-qoxra se jiġu rreġistrati fil-fajl tal-istorja.

# cat /dev/null > ~/.mysql_history

8. M'għandekx Mexxi Kmandi MySQL minn Commandline

Kif diġà taf, il-kmandi kollha li ttajpja fuq it-terminal huma maħżuna f'fajl tal-istorja, skont il-qoxra li tkun qed tuża (per eżempju ~/.bash_history għal bash). Attakkant li jirnexxielu jikseb aċċess għal dan il-fajl tal-istorja jista’ faċilment jara kwalunkwe password rreġistrata hemmhekk.

Mhux rakkomandat bil-qawwa li tittajpja passwords fuq il-linja tal-kmand, xi ħaġa bħal din:

# mysql -u root -ppassword_

Meta tiċċekkja l-aħħar taqsima tal-fajl tal-istorja tal-kmand, tara l-password ittajpjata hawn fuq.

# history 

Il-mod xieraq biex tikkonnettja MySQL huwa.

# mysql -u root -p
Enter password:

9. Iddefinixxi Utenti tad-Database Speċifiċi għall-Applikazzjoni

Għal kull applikazzjoni li taħdem fuq is-server, agħti biss aċċess lil utent li huwa responsabbli minn database għal applikazzjoni partikolari. Pereżempju, jekk għandek sit wordpress, oħloq utent speċifiku għad-database tas-sit wordpress kif ġej.

# 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

u ftakar li dejjem tneħħi l-kontijiet tal-utent li m'għadhomx jimmaniġġjaw xi database tal-applikazzjoni fuq is-server.

10. Uża Plugins u Libreriji ta' Sigurtà Addizzjonali

MySQL jinkludi numru ta 'plugins ta' sigurtà għal: tentattivi ta 'awtentikazzjoni minn klijenti biex jgħaqqdu ma' server mysql, validazzjoni tal-password u sigurtà tal-ħażna għal informazzjoni sensittiva, li huma kollha disponibbli fil-verżjoni b'xejn.

Tista' ssib aktar hawn: https://dev.mysql.com/doc/refman/5.7/en/security-plugins.html

11. Ibdel il-Passwords MySQL Regolarment

Din hija biċċa komuni ta 'informazzjoni/applikazzjoni/pariri dwar is-sigurtà tas-sistema. Kemm-il darba tagħmel dan jiddependi għal kollox fuq il-politika tas-sigurtà interna tiegħek. Madankollu, jista 'jipprevjeni lil \snoopers li setgħu kienu qed isegwu l-attività tiegħek fuq perjodu twil ta' żmien, milli jiksbu aċċess għas-server mysql tiegħek.

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

12. Aġġorna l-Pakkett tas-Server MySQL Regolarment

Huwa rrakkomandat ħafna li taġġorna l-pakketti mysql/mariadb regolarment biex tlaħħaq mal-aġġornamenti tas-sigurtà u mal-bug fixes, mir-repożitorju tal-bejjiegħ. Normalment il-pakketti fir-repożitorji default tas-sistema operattiva huma skaduti.

# yum update
# apt update

Wara li tagħmel xi tibdil lis-server mysql/mariadb, dejjem ibda mill-ġdid is-servizz.

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

Dak kollox! Aħna nħobbu nisimgħu mingħandek permezz tal-formola tal-kummenti hawn taħt. Aqsam magħna kwalunkwe pariri dwar is-sigurtà MySQL/MariaDB nieqsa fil-lista ta 'hawn fuq.