12 Awọn iṣe Dara julọ Aabo MySQL/MariaDB fun Lainos


MySQL jẹ olokiki julọ eto ṣiṣi orisun orisun data agbaye ati MariaDB (orita ti MySQL) ni eto iyara orisun orisun data ti o yarayara dagba ni agbaye. Lẹhin fifi olupin MySQL sori ẹrọ, o jẹ ailaabo ninu rẹ ni iṣeto aiyipada, ati aabo rẹ jẹ ọkan ninu awọn iṣẹ ṣiṣe pataki ni iṣakoso ibi ipamọ data gbogbogbo.

Eyi yoo ṣe alabapin si lile ati igbega ti aabo olupin Linux lapapọ, bi awọn olukọ nigbagbogbo ṣe ọlọjẹ awọn ailagbara ni eyikeyi apakan ti eto kan, ati awọn apoti isura data ti o ti kọja jẹ awọn agbegbe ibi-afẹde bọtini. Apẹẹrẹ ti o wọpọ jẹ fifin-mupa ti ọrọigbaniwọle gbongbo fun ibi ipamọ data MySQL.

Ninu itọsọna yii, a yoo ṣalaye wulo MySQL/MariaDB aabo ti o dara julọ fun Linux.

1. Ni aabo fifi sori MySQL

Eyi ni igbesẹ iṣeduro akọkọ lẹhin fifi sori ẹrọ olupin MySQL, si ipamo olupin data data. Iwe afọwọkọ yii dẹrọ ni imudarasi aabo ti olupin MySQL rẹ nipa beere lọwọ rẹ lati:

  • ṣeto ọrọ igbaniwọle kan fun iroyin gbongbo, ti o ko ba ṣeto lakoko fifi sori ẹrọ.
  • mu wiwọle olumulo gbongbo latọna jijin kuro nipa yiyọ awọn akọọlẹ gbongbo ti o ni iraye si lati ita agbalejo agbegbe
  • yọ awọn iroyin olumulo alailorukọ kuro ati ibi ipamọ data eyiti a le wọle nipasẹ aiyipada nipasẹ gbogbo awọn olumulo, paapaa awọn olumulo alailorukọ.

# mysql_secure_installation

Lẹhin ṣiṣe rẹ, ṣeto ọrọigbaniwọle gbongbo ki o dahun lẹsẹsẹ awọn ibeere nipa titẹ si [Bẹẹni/Y] ki o tẹ [Tẹ].

2. Di Database Server Si Adirẹsi Loopback

Iṣeto yii yoo ni ihamọ iraye si awọn ẹrọ latọna jijin, o sọ fun olupin MySQL lati gba awọn isopọ nikan lati laarin localhost. O le ṣeto rẹ ni faili iṣeto akọkọ.

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

Ṣafikun laini atẹle ni isalẹ labẹ [mysqld] apakan.

bind-address = 127.0.0.1

3. Mu AIFỌLỌWỌ Agbegbe ni MySQL

Gẹgẹbi apakan ti lile lile, o nilo lati mu local_infile kuro lati yago fun iraye si eto faili ti o wa labẹ lati MySQL ni lilo itọsọna wọnyi labẹ apakan [mysqld] .

local-infile=0

4. Yi ibudo MYSQL Aiyipada pada

Oniyipada Port n ṣeto nọmba ibudo MySQL ti yoo ṣee lo lati tẹtisi lori awọn isopọ TCP/IP. Nọmba ibudo aiyipada jẹ 3306 ṣugbọn o le yipada ni apakan [mysqld] bi o ti han.

Port=5000

5. Jeki Iwọle MySQL

Awọn akọọlẹ jẹ ọkan ninu awọn ọna ti o dara julọ lati loye ohun ti o ṣẹlẹ lori olupin kan, ni idi ti eyikeyi awọn ikọlu, o le rii awọn iṣọrọ eyikeyi awọn iṣẹ ti o jọmọ ifọmọ lati awọn faili log. O le mu gedu MySQL ṣiṣẹ nipa fifi oniyipada atẹle labẹ apakan [mysqld] .

log=/var/log/mysql.log

6. Ṣeto Gbigbanilaaye Ti o yẹ lori Awọn faili MySQL

Rii daju pe o ni awọn igbanilaaye ti o yẹ fun gbogbo awọn faili olupin mysql ati awọn ilana data. Faili /etc/my.conf yẹ ki o jẹ kikọ si root nikan. Eyi ṣe awọn bulọọki awọn olumulo miiran lati yiyipada awọn atunto olupin data.

# chmod 644 /etc/my.cnf

7. Paarẹ MySQL Shell Shell History

Gbogbo awọn ofin ti o ṣiṣẹ lori ikarahun MySQL wa ni fipamọ nipasẹ alabara mysql ninu faili itan: ~/.mysql_history. Eyi le jẹ eewu, nitori fun eyikeyi awọn iroyin olumulo ti iwọ yoo ṣẹda, gbogbo awọn orukọ olumulo ati ọrọ igbaniwọle ti o tẹ lori ikarahun naa yoo gba silẹ ni faili itan.

# cat /dev/null > ~/.mysql_history

8. Maṣe Ṣiṣe Awọn aṣẹ MySQL lati Commandline

Bi o ti mọ tẹlẹ, gbogbo awọn aṣẹ ti o tẹ lori ebute naa ni a fipamọ sinu faili itan kan, da lori ikarahun ti o nlo (fun apẹẹrẹ ~/.bash_history fun bash). Olukọni kan ti o ṣakoso lati ni iraye si faili itan-akọọlẹ yii le rii awọn iṣọrọ eyikeyi awọn ọrọigbaniwọle ti o gbasilẹ nibẹ.

O ko ni iṣeduro niyanju lati tẹ awọn ọrọ igbaniwọle lori laini aṣẹ, nkan bi eleyi:

# mysql -u root -ppassword_

Nigbati o ba ṣayẹwo apakan ti o kẹhin ti faili itan aṣẹ, iwọ yoo wo ọrọ igbaniwọle ti o tẹ loke.

# history 

Ọna ti o yẹ lati sopọ MySQL ni.

# mysql -u root -p
Enter password:

9. Ṣalaye Awọn olumulo Database Ohun elo Kan pato

Fun ohun elo kọọkan ti n ṣiṣẹ lori olupin, nikan fun iraye si olumulo kan ti o ni akoso data fun ohun elo ti a fun. Fun apẹẹrẹ, ti o ba ni aaye ti ọrọ ọrọ ọrọigbaniwọle, ṣẹda olumulo kan pato fun ibi ipamọ data aaye wordpress bi atẹle.

# 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

ki o ranti lati ma yọ awọn iroyin olumulo kuro nigbagbogbo ti ko ṣakoso eyikeyi ibi ipamọ data ohun elo lori olupin naa.

10. Lo Awọn afikun Aabo Afikun ati Awọn ile-ikawe

MySQL pẹlu nọmba kan ti awọn afikun aabo fun: ijẹrisi awọn igbiyanju nipasẹ awọn alabara lati sopọ si olupin mysql, afọwọsi-ọrọigbaniwọle ati ifipamo ibi ipamọ fun alaye ti o nira, eyiti gbogbo wa ni ẹya ọfẹ.

O le wa diẹ sii nibi: https://dev.mysql.com/doc/refman/5.7/en/security-plugins.html

11. Yi awọn ọrọigbaniwọle MySQL pada Nigbagbogbo

Eyi jẹ nkan ti o wọpọ ti alaye/ohun elo/imọran aabo eto. Igba melo ti o ṣe eyi yoo dale patapata lori eto imulo aabo inu rẹ. Sibẹsibẹ, o le ṣe idiwọ\"awọn onitumọ" ti o le ti ṣe atẹle iṣẹ rẹ lori akoko pipẹ, lati ni iraye si olupin mysql rẹ.

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

12. Ṣe imudojuiwọn Package Server MySQL Ni deede

O ni iṣeduro niyanju lati ṣe igbesoke awọn idii mysql/mariadb nigbagbogbo lati tọju awọn imudojuiwọn aabo ati awọn atunṣe bug, lati ibi ipamọ ti olutaja. Ni deede awọn idii ninu awọn ibi ipamọ ẹrọ ṣiṣe aiyipada ti igba atijọ.

# yum update
# apt update

Lẹhin ṣiṣe awọn ayipada eyikeyi si olupin mysql/mariadb, tun bẹrẹ iṣẹ nigbagbogbo.

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

Gbogbo ẹ niyẹn! A nifẹ lati gbọ lati ọdọ rẹ nipasẹ fọọmu asọye ni isalẹ. Ma ṣe pin pẹlu wa eyikeyi awọn imọran aabo MySQL/MariaDB ti o padanu ninu atokọ ti o wa loke.