12 MySQL/MariaDB Amalan Terbaik untuk Linux

12 MySQL/MariaDB Amalan Terbaik untuk Linux

Mysql adalah sistem pangkalan data sumber terbuka yang paling popular di dunia dan Mariadb (Garpu Mysql) adalah sistem pangkalan data sumber terbuka yang paling pesat berkembang di dunia. Setelah memasang pelayan MySQL, ia tidak selamat dalam konfigurasi lalai, dan mengamankannya adalah salah satu tugas penting dalam pengurusan pangkalan data umum.

Baca juga: Belajar Mysql/MariaDB untuk Pemula - Bahagian 1

Ini akan menyumbang kepada pengerasan dan meningkatkan keselamatan pelayan Linux secara keseluruhan, kerana penyerang sentiasa mengimbas kelemahan di mana -mana bahagian sistem, dan pangkalan data pada masa lalu menjadi kawasan sasaran utama. Contoh yang sama adalah penyingkiran kata laluan root untuk pangkalan data MySQL.

Dalam panduan ini, kami akan menerangkan berguna MySQL/MariaDB Amalan terbaik keselamatan untuk linux.

1. Pemasangan MySQL selamat

Ini adalah langkah pertama yang disyorkan selepas memasang pelayan MySQL, ke arah mendapatkan pelayan pangkalan data. Skrip ini memudahkan dalam meningkatkan keselamatan pelayan MySQL anda dengan meminta anda:

  • Tetapkan kata laluan untuk akaun root, jika anda tidak menetapkannya semasa pemasangan.
  • Lumpuhkan log masuk pengguna akar jauh dengan mengeluarkan akaun root yang boleh diakses dari luar tuan rumah tempatan.
  • Keluarkan akaun pengguna tanpa nama dan pangkalan data ujian yang secara lalai dapat diakses oleh semua pengguna, bahkan pengguna tanpa nama.
# mysql_secure_installation 

Setelah menjalankannya, tetapkan kata laluan root dan jawab siri soalan dengan memasukkan [Ya/y] dan tekan [Masukkan].

Pemasangan MySQL selamat

2. Bind Server Pangkalan Data ke Alamat Loopback

Konfigurasi ini akan menyekat akses dari mesin jauh, ia memberitahu pelayan MySQL untuk hanya menerima sambungan dari dalam localhost. Anda boleh menetapkannya dalam fail konfigurasi utama.

# vi /etc /my.CNF [RHEL/CENTOS] # VI/ETC/MYSQL/MY.conf [debian/ubuntu] atau # vi/etc/mysql/mysql.Conf.D/mysqld.CNF [Debian/Ubuntu] 

Tambahkan baris berikut di bawah di bawah [mysqld] seksyen.

Bind-Address = 127.0.0.1 

3. Lumpuhkan Infile Tempatan di MySQL

Sebagai sebahagian daripada pengerasan keselamatan, anda perlu melumpuhkan local_infile Untuk mengelakkan akses ke sistem fail asas dari dalam MySQL menggunakan arahan berikut di bawah [mysqld] seksyen.

Tempatan-infile = 0 

4. Tukar port lalai mysql

The Pelabuhan Pembolehubah menetapkan nombor port MySQL yang akan digunakan untuk mendengar sambungan TCP/ IP. Nombor port lalai adalah 3306 tetapi anda boleh mengubahnya di bawah [mysqld] seksyen seperti yang ditunjukkan.

Port = 5000 

5. Dayakan pembalakan MySQL

Log adalah salah satu cara terbaik untuk memahami apa yang berlaku pada pelayan, sekiranya sebarang serangan, anda dapat dengan mudah melihat sebarang aktiviti yang berkaitan dengan pencerobohan dari fail log. Anda boleh mengaktifkan pembalakan mysql dengan menambahkan pemboleh ubah berikut di bawah [mysqld] seksyen.

log =/var/log/mysql.log 

6. Tetapkan kebenaran yang sesuai pada fail MySQL

Pastikan anda mempunyai kebenaran yang sesuai untuk semua fail dan direktori data MySQL Server. The /etc/my.Conf fail hanya boleh ditulis dengan akar. Ini menghalang pengguna lain daripada menukar konfigurasi pelayan pangkalan data.

# chmod 644 /etc /my.cnf 

7. Padam Sejarah Shell MySQL

Semua arahan yang anda jalankan di MySQL Shell disimpan oleh klien MySQL dalam fail sejarah: ~/.mysql_history. Ini boleh berbahaya, kerana bagi mana -mana akaun pengguna yang akan anda buat, semua nama pengguna dan kata laluan yang ditaip pada shell akan direkodkan dalam fail sejarah.

# kucing/dev/null> ~/.mysql_history 

8. Jangan lari arahan mysql dari commandline

Seperti yang sudah anda ketahui, semua arahan yang anda taipkan di terminal disimpan dalam fail sejarah, bergantung pada shell yang anda gunakan (contohnya ~/.BASH_HISTORY untuk bash). Penyerang yang berjaya mendapatkan akses ke fail sejarah ini dengan mudah dapat melihat kata laluan yang direkodkan di sana dengan mudah.

Sangat tidak disyorkan untuk menaip kata laluan pada baris arahan, seperti ini:

# mysql -u root -ppassword_ 
Sambungkan MySQL dengan kata laluan

Apabila anda memeriksa bahagian terakhir fail sejarah arahan, anda akan melihat kata laluan yang ditaip di atas.

# Sejarah 
Semak Sejarah Perintah

Cara yang sesuai untuk menghubungkan MySQL adalah.

# mysql -u root -p masukkan kata laluan: 

9. Tentukan pengguna pangkalan data khusus aplikasi

Untuk setiap aplikasi yang dijalankan di pelayan, hanya berikan akses kepada pengguna yang bertanggungjawab ke atas pangkalan data untuk aplikasi yang diberikan. Sebagai contoh, jika anda mempunyai laman web WordPress, buat pengguna tertentu untuk pangkalan data tapak WordPress seperti berikut.

# mysql -u root -p MariaDB [(none)]> Buat pangkalan data osclass_db; MariaDB [(Tiada)]> Buat Pengguna 'Osclassdmin'@'Localhost' yang dikenal pasti oleh '[dilindungi e -mel]%!2 '; MariaDB [(Tiada)]> Geran Semua Keistimewaan di OSClass_DB.* Kepada 'osclassdmin'@'localhost'; Mariadb [(tidak)]> Keistimewaan Flush; Mariadb [(Tiada)]> Keluar 

Dan ingatlah untuk selalu mengalih keluar akaun pengguna yang tidak lagi menguruskan pangkalan data aplikasi di pelayan.

10. Gunakan plugin dan perpustakaan keselamatan tambahan

MySQL Termasuk Sejumlah Plugin Keselamatan Untuk: Percubaan Mengesahkan oleh Pelanggan untuk Berhubung ke Server MySQL, Pengawasan Kata Laluan dan Menyimpan Penyimpanan untuk Maklumat Sensitif, yang semuanya tersedia dalam versi percuma.

Anda boleh mendapatkan lebih banyak lagi di sini: https: // dev.mysql.com/doc/refman/5.7/en/keselamatan-plugin.html

11. Tukar kata laluan mysql dengan kerap

Ini adalah nasihat keselamatan maklumat/aplikasi/sistem yang biasa. Berapa kerap anda melakukan ini sepenuhnya bergantung pada dasar keselamatan dalaman anda. Walau bagaimanapun, ia boleh menghalang "Snoopers" yang mungkin telah menjejaki aktiviti anda dalam tempoh masa yang panjang, daripada mendapatkan akses ke pelayan MySQL anda.

Mariadb [(Tiada)]>> Gunakan MySQL; Mariadb [(Tiada)]>> Kemas kini Pengguna Tetapkan Kata Laluan = Kata Laluan ('Yourpasswordhere') Di mana pengguna = "root" dan host =' localhost '; Mariadb [(Tiada)]>> Keistimewaan siram; 

12. Kemas kini Pakej Pelayan MySQL dengan kerap

Sangat disyorkan untuk menaik taraf pakej MySQL/MariaDB secara berkala untuk bersaing dengan kemas kini keselamatan dan pembetulan pepijat, dari repositori vendor. Biasanya pakej dalam repositori sistem operasi lalai sudah lapuk.

# kemas kini yum # kemas kini 

Setelah membuat perubahan kepada pelayan MySQL/MariaDB, selalu mulakan semula perkhidmatan.

# Systemctl Restart MariaDB # Rhel/Centos # Systemctl Mulakan semula MySQL # Debian/Ubuntu 

Baca juga: 15 Tips dan pengoptimuman prestasi MySQL/Mariadb berguna

Itu sahaja! Kami suka mendengar daripada anda melalui borang komen di bawah. DO BAHAGIAN DENGAN KAMI MAN MYSQL/MARIADB TIP KESELAMATAN YANG Hilang dalam senarai di atas.