12 MySQL/MariaDB Howpsuzlyk Linux üçin iň oňat tejribe
MySQL dünýäde iň meşhur açyk çeşme maglumatlar bazasy ulgamy we MariDB (MySQL-iň çatrygy) dünýäde iň çalt ösýän açyk çeşme maglumatlar bazasydyr. MySQL serwerini guranyňyzdan soň, deslapky konfigurasiýasynda howpsuz däl we ony üpjün etmek umumy maglumat bazasyny dolandyrmakda möhüm meseleleriň biridir.
Bu, Linux serweriniň umumy howpsuzlygyny berkitmäge we ýokarlandyrmaga goşant goşar, sebäbi hüjümçiler ulgamyň islendik böleginde gowşak ýerleri skanirleýärler we maglumat bazalary geçmişde esasy maksat bolupdy. Adaty bir mysal, MySQL maglumat bazasy üçin kök paroly zalymlyk bilen zorlamak.
Bu gollanmada Linux üçin peýdaly MySQL/MariaDB howpsuzlyk tejribesini düşündireris.
1. MySQL gurnamasyny ygtybarly ediň
Bu, MySQL serwerini guranyňyzdan soň, maglumatlar bazasynyň serwerini goramak ugrundaky ilkinji maslahat berilýän ädimdir. Bu skript, MySQL serweriňiziň howpsuzlygyny ýokarlandyrmagy aňsatlaşdyrýar:
- gurnama wagtynda düzmedik bolsaňyz, kök hasaby üçin parol belläň.
- ýerli hostyň daşyndan girip boljak kök hasaplaryny aýyrmak bilen uzakdaky kök ulanyjy girişini öçüriň.
- anonim ulanyjy hasaplaryny aýyryň we ähli ulanyjylara, hatda näbelli ulanyjylara hem girip bolýan synag maglumatlar bazasyny aýyryň.
# mysql_secure_installation
Işledeniňizden soň, kök parolyňyzy düzüň we [Hawa/Y] girizip, [Enter] basyň.
2. Maglumat bazasynyň serwerini yzyna gaýtarmak salgysyna baglaň
Bu konfigurasiýa uzakdaky maşynlardan girişi çäklendirer, MySQL serwerine diňe ýerlihostyň içindäki baglanyşyklary kabul etmegi aýdýar. Esasy konfigurasiýa faýlynda goýup bilersiňiz.
# vi /etc/my.cnf [RHEL/CentOS] # vi /etc/mysql/my.conf [Debian/Ubuntu] OR # vi /etc/mysql/mysql.conf.d/mysqld.cnf [Debian/Ubuntu]
Aşakdaky setiri [mysqld]
bölüminiň aşagyna goşuň.
bind-address = 127.0.0.1
3. MySQL-da OCerli maglumaty öçüriň
Howpsuzlygy berkitmegiň bir bölegi hökmünde, [mysqld]
bölümi boýunça aşakdaky görkezmäni ulanyp, MySQL-iň esasy faýl ulgamyna girmeginiň öňüni almak üçin ýerli_infile ýapmaly.
local-infile=0
4. MYSQL başlangyç portuny üýtgediň
Port üýtgeýjisi, TCP/IP birikmelerini diňlemek üçin ulanyljak MySQL port belgisini düzýär. Bellenen port belgisi 3306, ýöne görkezilişi ýaly [mysqld] bölüminiň aşagynda üýtgedip bilersiňiz.
Port=5000
5. MySQL girişini açyň
Surnallar serwerde bolup geçýän zatlara düşünmegiň iň oňat usullaryndan biridir, haýsydyr bir hüjüm ýüze çykan halatynda, log faýllaryndan çozuş bilen baglanyşykly çäreleri aňsatlyk bilen görüp bilersiňiz. [mysqld]
bölüminiň aşagyna aşakdaky üýtgeýjini goşup, MySQL ýazgysyny açyp bilersiňiz.
log=/var/log/mysql.log
6. MySQL faýllarynda degişli rugsady belläň
Mysql serwer faýllarynyň we maglumat kataloglarynyň hemmesine laýyk rugsatlaryň bardygyna göz ýetiriň. /Etc/my.conf faýly diňe kök üçin ýazylyp bilner. Bu, beýleki ulanyjylaryň maglumat bazasynyň serweriniň konfigurasiýalaryny üýtgetmeginiň öňüni alýar.
# chmod 644 /etc/my.cnf
7. MySQL gabyk taryhyny pozuň
MySQL gabygynda ýerine ýetirýän ähli buýruklaryňyz mysql müşderisi tarapyndan taryh faýlynda saklanýar: ~/.mysql_history. Bu howply bolup biler, sebäbi döredjek islendik ulanyjy hasaplaryňyz üçin gabykda ýazylan ähli ulanyjy atlary we parollar taryh faýlynda ýazylar.
# cat /dev/null > ~/.mysql_history
8. MySQL buýruklaryny buýruk setirinden işletmäň
Öňden bilşiňiz ýaly, terminalda ýazýan buýruklaryňyzyň hemmesi ulanýan gabygyňyza baglylykda taryh faýlynda saklanýar (mysal üçin ~/.bash_history bash üçin). Bu taryh faýlyna girmegi başaran hüjümçi, şol ýerde ýazylan parollary aňsatlyk bilen görüp biler.
Buýruk setirine parol ýazmak maslahat berilmeýär, şuňa meňzeş bir zat:
# mysql -u root -ppassword_
Buýruk taryhy faýlynyň soňky bölümini barlasaňyz, ýokarda ýazylan paroly görersiňiz.
# history
MySQL-i birikdirmegiň degişli usuly.
# mysql -u root -p Enter password:
9. Programma aýratyn maglumat bazasyny ulanyjylary kesgitläň
Serwerde işleýän her bir programma üçin diňe berlen programma üçin maglumat bazasyna jogapkär ulanyja giriň. Mysal üçin, Wordpress sahypasy bar bolsa, Wordpress sahypasynyň maglumat bazasy üçin belli bir ulanyjy dörediň.
# 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
we serwerdäki programma bazasyny dolandyrmaýan ulanyjy hasaplaryny elmydama aýyrmagy ýatdan çykarmaň.
10. Goşmaça howpsuzlyk plaginlerini we kitaphanalary ulanyň
MySQL üçin birnäçe howpsuzlyk plaginleri bar: müşderileriň mysql serwerine birikmek synanyşyklaryny tassyklamak, paroly tassyklamak we mugt wersiýada bar bolan duýgur maglumatlar üçin ammar üpjün etmek.
Has giňişleýin maglumaty şu ýerden tapyp bilersiňiz: https://dev.mysql.com/doc/refman/5.7/en/security-plugins.html
11. MySQL parollaryny yzygiderli üýtgediň
Bu umumy maglumat/programma/ulgam howpsuzlygy maslahaty. Muny näçe gezek ýerine ýetirseňiz, içerki howpsuzlyk syýasatyňyza bagly bolar. Şeýle-de bolsa, uzak wagtlap işjeňligiňizi yzarlaýan\gizlinleriň mysql serweriňize girmeginiň öňüni alyp biler.
MariaDB [(none)]> USE mysql; MariaDB [(none)]> UPDATE user SET password=PASSWORD('YourPasswordHere') WHERE User='root' AND Host = 'localhost'; MariaDB [(none)]> FLUSH PRIVILEGES;
12. MySQL serwer paketini yzygiderli täzeläň
Satyjynyň ammaryndan howpsuzlyk täzelenmeleri we näsazlyklary düzetmek üçin mysql/mariadb paketlerini yzygiderli täzelemek maslahat berilýär. Adatça operasiýa ulgamynyň ammarlaryndaky paketler köne.
# yum update # apt update
Mysql/mariadb serwerine haýsydyr bir üýtgeşme girizeniňizden soň, hyzmaty hemişe täzeden açyň.
# systemctl restart mariadb #RHEL/CentOS # systemctl restart mysql #Debian/Ubuntu
Bu hemmesi! Aşakdaky teswir formasy arkaly sizden eşitmek isleýäris. Aboveokardaky sanawda ýok bolan MySQL/MariaDB howpsuzlyk maslahatlaryny biz bilen paýlaşyň.