12 Praktik Terbaik Keamanan Mysql/Mariadb untuk Linux
- 4182
- 615
- Dominick Barton
Mysql adalah sistem basis data sumber terbuka paling populer di dunia dan Mariadb (Fork of MySQL) adalah sistem basis data open source yang paling cepat berkembang di dunia. Setelah menginstal MySQL Server, itu tidak aman dalam konfigurasi defaultnya, dan mengamankannya adalah salah satu tugas penting dalam manajemen database umum.
Baca juga: Pelajari mysql/mariadb untuk pemula - bagian 1
Ini akan berkontribusi pada pengerasan dan peningkatan keamanan server Linux secara keseluruhan, karena penyerang selalu memindai kerentanan di bagian mana pun dari suatu sistem, dan database di masa lalu telah menjadi area target utama. Contoh yang umum adalah memforing kata sandi root untuk database MySQL.
Dalam panduan ini, kami akan menjelaskan berguna Mysql/mariadb Praktik Terbaik Keamanan untuk Linux.
1. Amankan instalasi MySQL
Ini adalah langkah pertama yang disarankan setelah menginstal server MySQL, untuk mengamankan server database. Script ini memfasilitasi dalam meningkatkan keamanan server MySQL Anda dengan meminta Anda untuk:
- Tetapkan kata sandi untuk akun root, jika Anda tidak mengaturnya selama instalasi.
- Nonaktifkan login pengguna root jarak jauh dengan menghapus akun root yang dapat diakses dari luar host lokal.
- Hapus akun anonim-pengguna dan uji database yang secara default dapat diakses oleh semua pengguna, bahkan pengguna anonim.
# mysql_secure_installation
Setelah menjalankannya, atur kata sandi root dan jawab serangkaian pertanyaan dengan memasukkan [Ya/y] dan tekan [Memasuki].
Amankan instalasi MySQL2. Bind Database Server ke Alamat Loopback
Konfigurasi ini akan membatasi akses dari mesin jarak jauh, ini memberitahu server mysql untuk hanya menerima koneksi dari dalam localhost. Anda dapat mengaturnya di file 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]
bagian.
Bind-address = 127.0.0.1
3. Nonaktifkan Infile Lokal di MySQL
Sebagai bagian dari pengerasan keamanan, Anda perlu menonaktifkan local_infile Untuk mencegah akses ke sistem file yang mendasari dari dalam mySQL menggunakan arahan berikut [mysqld]
bagian.
Infile lokal = 0
4. Ubah port default mysql
Itu Pelabuhan Variabel Mengatur Nomor Port MySQL yang akan digunakan untuk mendengarkan koneksi TCP/ IP. Nomor port default adalah 3306 tetapi Anda dapat mengubahnya di bawah [mysqld] bagian seperti yang ditunjukkan.
Port = 5000
5. Aktifkan logging mysql
Log adalah salah satu cara terbaik untuk memahami apa yang terjadi di server, jika ada serangan, Anda dapat dengan mudah melihat aktivitas terkait intrusi dari file log. Anda dapat mengaktifkan logging mySQL dengan menambahkan variabel berikut di bawah [mysqld]
bagian.
log =/var/log/mysql.catatan
6. Tetapkan izin yang sesuai pada file mysql
Pastikan bahwa Anda memiliki izin yang sesuai untuk semua file server MySQL dan direktori data. Itu /etc/my.conf file hanya boleh ditulis untuk root. Ini memblokir pengguna lain dari mengubah konfigurasi server database.
# chmod 644 /etc /my.CNF
7. Hapus riwayat shell mysql
Semua perintah yang Anda jalankan pada shell mysql disimpan oleh klien mysql dalam file riwayat: ~/.mysql_history. Ini bisa berbahaya, karena untuk akun pengguna apa pun yang akan Anda buat, semua nama pengguna dan kata sandi yang diketik pada shell akan direkam dalam file riwayat.
# kucing/dev/null> ~/.mysql_history
8. Jangan jalankan perintah mysql dari commandline
Seperti yang sudah Anda ketahui, semua perintah yang Anda ketik di terminal disimpan dalam file riwayat, tergantung pada shell yang Anda gunakan (misalnya ~/.BASH_HISTORY untuk pesta). Penyerang yang berhasil mendapatkan akses ke file riwayat ini dapat dengan mudah melihat kata sandi apa pun yang direkam di sana.
Sangat tidak disarankan untuk mengetik kata sandi pada baris perintah, sesuatu seperti ini:
# mysql -u root -ppassword_Hubungkan MySQL dengan kata sandi
Saat Anda memeriksa bagian terakhir dari file riwayat perintah, Anda akan melihat kata sandi yang diketik di atas.
# sejarahPeriksa riwayat perintah
Cara yang tepat untuk menghubungkan mySQL adalah.
# mysql -u root -p masukkan kata sandi:
9. Tentukan pengguna database khusus aplikasi
Untuk setiap aplikasi yang berjalan di server, hanya berikan akses ke pengguna yang bertanggung jawab atas database untuk aplikasi yang diberikan. Misalnya, jika Anda memiliki situs WordPress, buat pengguna tertentu untuk database situs WordPress sebagai berikut.
# mysql -u root -p mariadb [(tidak ada)]> buat basis data osclass_db; Mariadb [(tidak ada)]> buat pengguna 'osclassdmin'@'localhost' diidentifikasi oleh '[email dilindungi]%!2 '; Mariadb [(tidak ada)]> berikan semua hak istimewa di osclass_db.* Ke 'osclassdmin'@'localhost'; Mariadb [(tidak ada)]> hak istimewa flush; Mariadb [(tidak ada)]> keluar
dan ingat untuk selalu menghapus akun pengguna yang tidak lagi mengelola database aplikasi apa pun di server.
10. Gunakan plugin dan perpustakaan keamanan tambahan
MySQL mencakup sejumlah plugin keamanan untuk: upaya otentikasi oleh klien untuk terhubung ke server MySQL, validasi kata sandi dan pengaman penyimpanan untuk informasi sensitif, yang semuanya tersedia dalam versi gratis.
Anda dapat menemukan lebih banyak di sini: https: // dev.mysql.com/doc/refman/5.7/en/PLUGINS SECTIFTER.html
11. Ubah kata sandi mysql secara teratur
Ini adalah nasihat informasi/aplikasi/sistem aplikasi umum. Seberapa sering Anda melakukan ini akan sepenuhnya tergantung pada kebijakan keamanan internal Anda. Namun, itu dapat mencegah "pengintai" yang mungkin telah melacak aktivitas Anda dalam jangka waktu yang lama, dari mendapatkan akses ke server MySQL Anda.
Mariadb [(tidak ada)]> Gunakan mysql; Mariadb [(tidak ada)]> Perbarui Pengguna Set Kata Sandi = Kata Sandi ('Yourpasswordhere') Di mana pengguna = "root" dan host =' localhost '; Mariadb [(tidak ada)]> Hak istimewa flush;
12. Perbarui paket server mySQL secara teratur
Sangat disarankan untuk meningkatkan paket MySQL/MariaDB secara teratur untuk mengikuti pembaruan keamanan dan perbaikan bug, dari repositori vendor. Biasanya paket dalam repositori sistem operasi default sudah ketinggalan zaman.
# yum update # app update
Setelah melakukan perubahan apa pun pada server MySQL/MariADB, selalu restart layanan.
# Systemctl restart mariadb # rhel/centos # systemctl restart mysql # debian/ubuntu
Baca juga: 15 MySQL/mariadb Kinerja yang berguna dan tips optimasi
Itu saja! Kami senang mendengar dari Anda melalui formulir komentar di bawah ini. Bagikan kepada kami dengan kami tips keamanan MySQL/MariaDB yang hilang dalam daftar di atas.
- « Buat beberapa alamat IP ke satu antarmuka jaringan tunggal
- Cara memeriksa integritas file dan direktori menggunakan ajudan di Linux »