12 MySQL/MariaDB Security kacha mma maka Linux
MySQL bụ sistemụ nchekwa data mepere emepe kachasị ewu ewu n'ụwa yana MariaDB ( ndụdụ nke MySQL) bụ sistemụ nchekwa data mepere emepe na-eto ngwa ngwa n'ụwa. Mgbe ị wụnye ihe nkesa MySQL, ọ nweghị nchebe na nhazi ndabere ya, yana ịchekwa ya bụ otu n'ime ọrụ dị mkpa na njikwa nchekwa data n'ozuzu.
Nke a ga-enye aka n'ịgbasi ike na ịkwalite nchekwa nchekwa ihe nkesa Linux n'ozuzu, ebe ndị na-awakpo na-enyochakarị adịghị ike n'akụkụ ọ bụla nke sistemụ, na ọdụ data n'oge gara aga bụ mpaghara ebumnuche ebumnuche. Otu ihe atụ a na-ahụkarị bụ mmanye nke mgbọrọgwụ okwuntughe maka nchekwa data MySQL.
N'ime ntuziaka a, anyị ga-akọwa uru nchekwa MySQL/MariaDB bara uru maka Linux.
1. Chekwaa nwụnye MySQL
Nke a bụ nzọụkwụ mbụ akwadoro ka ị wụnye ihe nkesa MySQL, n'ebe nchekwa nchekwa data. Edemede a na-enyere aka melite nchekwa nke ihe nkesa MySQL site na ịrịọ gị ka ị:
- tọọ paswọọdụ maka akaụntụ mgbọrọgwụ, ma ọ bụrụ na idebeghi ya n'oge echichi.
- gbanyụọ nbanye onye ọrụ mgbọrọgwụ dịpụrụ adịpụ site na iwepu akaụntụ mgbọrọgwụ nke a na-enweta site na mpụga onye ọbịa obodo.
- wepu akaụntụ onye ọrụ na-amaghị aha wee nwalee nchekwa data nke ndị ọrụ niile nwere ike ịnweta na ndabara, ọbụlagodi ndị ọrụ amaghị.
# mysql_secure_installation
Mgbe ịmechara ya, tọọ paswọọdụ mgbọrọgwụ wee zaa usoro ajụjụ site na itinye [Ee/Y] wee pịa [Tinye].
2. Jikọọ Database Server Iji Loopback Adreesị
Nhazi a ga-egbochi ohere site na igwe dịpụrụ adịpụ, ọ na-agwa sava MySQL ka ọ nabata njikọ sitere na localhost. Ị nwere ike ịtọ ya na faịlụ nhazi isi.
# vi /etc/my.cnf [RHEL/CentOS] # vi /etc/mysql/my.conf [Debian/Ubuntu] OR # vi /etc/mysql/mysql.conf.d/mysqld.cnf [Debian/Ubuntu]
Tinye ahịrị ndị a n'okpuru n'okpuru [mysqld]
ngalaba.
bind-address = 127.0.0.1
3. Gbanyụọ LOCAL INFILE na MySQL
Dịka akụkụ nke nchekwa siri ike, ịkwesịrị gbanyụọ local_infile iji gbochie ịnweta sistemụ faịlụ dị n'ime MySQL site na iji ntuziaka a n'okpuru [mysqld]
ngalaba.
local-infile=0
4. Gbanwee ọdụ ụgbọ mmiri MYSQL
Ọdụ ụgbọ mmiri na-edobe nọmba ọdụ ụgbọ mmiri MySQL nke a ga-eji gee ntị na njikọ TCP/ IP. Nọmba ọdụ ụgbọ mmiri ndabara bụ 3306 mana ị nwere ike ịgbanwe ya n'okpuru ngalaba [mysqld] dị ka egosiri.
Port=5000
5. Kwado MySQL Logging
Ndekọ bụ otu n'ime ụzọ kachasị mma isi ghọta ihe na-eme na ihe nkesa, ọ bụrụ na mwakpo ọ bụla, ị nwere ike ịhụ mmemme ọ bụla metụtara ntinye na faịlụ ndekọ ngwa ngwa. Ị nwere ike ime ka MySQL banye site na ịgbakwunye mgbanwe ndị a n'okpuru [mysqld]
ngalaba.
log=/var/log/mysql.log
6. Tọọ ikike kwesịrị ekwesị na faịlụ MySQL
Gbaa mbọ hụ na ị nwere ikike edobere maka faịlụ ihe nkesa mysql niile yana akwụkwọ ndekọ data. Faịlụ /etc/my.conf kwesịrị ịbụ naanị edere ka mgbọrọgwụ. Nke a na-egbochi ndị ọrụ ndị ọzọ ịgbanwe nhazi nkesa nchekwa data.
# chmod 644 /etc/my.cnf
7. Hichapụ MySQL Shell History
Iwu niile ị na-eme na shei MySQL bụ ndị ahịa mysql na-echekwa na faịlụ akụkọ ihe mere eme: ~/.mysql_history. Nke a nwere ike ịdị ize ndụ, n'ihi na maka akaụntụ onye ọrụ ọ bụla ị ga-emepụta, aha njirimara na okwuntughe niile etinyere na shei ga-edekọ na faịlụ akụkọ ihe mere eme.
# cat /dev/null > ~/.mysql_history
8. Emela MySQL Iwu site na Commandline
Dị ka ị maraworị, a na-echekwa iwu niile ị pịnyere na ọdụ ọdụ n'ime faịlụ akụkọ ihe mere eme, dabere na shei ị na-eji (dịka ọmụmaatụ ~/.bash_history for bash). Onye na-awakpo nke jisiri ike nweta faịlụ akụkọ ihe mere eme a nwere ike ịhụ okwuntughe ọ bụla edere n'ebe ahụ ngwa ngwa.
A naghị atụ aro ka ị pịnye okwuntughe na ahịrị iwu, ihe dịka nke a:
# mysql -u root -ppassword_
Mgbe ị na-elele akụkụ ikpeazụ nke faịlụ akụkọ ihe mere eme iwu, ị ga-ahụ paswọọdụ pịnyere n'elu.
# history
Ụzọ kwesịrị ekwesị iji jikọọ MySQL bụ.
# mysql -u root -p Enter password:
9. Kọwaa ndị ọrụ nchekwa data akọwapụtara ngwa
Maka ngwa ọ bụla na-agba ọsọ na ihe nkesa, naanị nye ohere ịnweta onye ọrụ na-ahụ maka nchekwa data maka ngwa enyere. Dịka ọmụmaatụ, ọ bụrụ na ị nwere saịtị wordpress, mepụta otu onye ọrụ maka nchekwa data saịtị wordpress dị ka ndị a.
# 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
ma cheta na ị na-ewepụ akaụntụ onye ọrụ mgbe niile na-anaghịzi ejikwa nchekwa data ngwa ọ bụla na nkesa.
10. Jiri mgbakwunye nchekwa na ọba akwụkwọ
MySQL gụnyere ọtụtụ plugins nchekwa maka: ịchọpụta mbọ ndị ahịa na-agba iji jikọọ na sava mysql, nkwenye paswọọdụ na nchekwa nchekwa maka ozi nwere mmetụta, nke dị na ụdị efu.
Ị nwere ike ịchọta ihe ndị ọzọ ebe a: https://dev.mysql.com/doc/refman/5.7/en/security-plugins.html
11. Gbanwee MySQL okwuntughe mgbe niile
Nke a bụ ndụmọdụ nkịtị/ngwa/usoro nchekwa. Ugboro ole ị na-eme nke a ga-adabere kpamkpam na iwu nchekwa gị. Agbanyeghị, ọ nwere ike igbochi \snoopers ndị nwere ike na-enyocha ọrụ gị ogologo oge, ịnweta sava mysql gị.
MariaDB [(none)]> USE mysql; MariaDB [(none)]> UPDATE user SET password=PASSWORD('YourPasswordHere') WHERE User='root' AND Host = 'localhost'; MariaDB [(none)]> FLUSH PRIVILEGES;
12. Melite MySQL Server ngwugwu mgbe niile
A na-atụ aro nke ukwuu ịkwalite ngwungwu mysql/mariadb mgbe niile ka ị na-aga n'ihu na mmelite nchekwa yana ndozi ahụhụ, site na ebe nchekwa nke onye na-ere ahịa. Ngwunye na-adịkarị na ebe nchekwa sistemụ arụrụ arụ ọrụ emechiela.
# yum update # apt update
Mgbe ịmechara mgbanwe ọ bụla na sava mysql/mariadb, malitegharịa ọrụ ahụ mgbe niile.
# systemctl restart mariadb #RHEL/CentOS # systemctl restart mysql #Debian/Ubuntu
Ọ gwụla! Anyị na-enwe mmasị ịnụ gị site na ụdị nkọwa n'okpuru. Kekọrịta anyị ndụmọdụ nchekwa MySQL/MariaDB ọ bụla na-efu na listi dị n'elu.