Pendahuluan
MySQL adalah sistem manajemen basis data relasional sumber terbuka dan bagian dari tumpukan LAMP yang populer. mysql_secure_installation
script memungkinkan Anda untuk meningkatkan keamanan server MySQL secara signifikan.
Dalam panduan ini, Anda akan belajar mengamankan server MySQL.
Prasyarat
- Sistem Linux dengan MySQL terinstal (Menggunakan OS yang berbeda? Lihat cara menginstal dan mengkonfigurasi MySQL di server Windows, CentOS 7, atau CentOS 8).
- Akses ke terminal (Ctrl+Alt+T ).
- Koneksi jaringan.
- Akun dengan hak administrator.
Perintah mysql_secure_installation
Setelah instalasi, instance server MySQL di mesin Anda tidak aman dan rentan terhadap serangan. mysql_secure_installation
adalah skrip shell yang dikembangkan untuk mengamankan instalasi server MySQL pada sistem Unix. Skrip mengonfigurasi pengaturan keamanan dan memungkinkan Anda untuk:
- Menetapkan kata sandi untuk akun root (lihat cara mengatur ulang atau mengubah kata sandi root MySQL)
- Hapus akun root yang dapat diakses dari luar localhost.
- Hapus akun pengguna anonim.
- Hapus database pengujian, yang dapat diakses oleh pengguna anonim.
- Muat ulang tabel hak pengguna.
[option]
argumen adalah opsional dan dibahas di bagian berikut.
1. Jalankan mysql_secure_installation
skrip menggunakan sintaks berikut:
sudo mysql_secure_installation [option]
2. Ketik sandi Anda dan tekan Y
untuk menyiapkan VALIDATE PASSWORD
komponen yang memeriksa apakah kata sandi baru cukup kuat.
3. Selanjutnya, masukkan 0
, 1
, atau 2
tergantung pada kekuatan kata sandi yang ingin Anda atur :
0
- Rendah . Kata sandi terdiri dari minimal 8 karakter.1
- Sedang . Kata sandi terdiri dari minimal 8 karakter (termasuk numerik, huruf besar-kecil, dan karakter khusus).2
- Kuat . Sandi terdiri dari minimal 8 karakter (termasuk numerik, huruf besar campuran, dan karakter khusus, dan membandingkan sandi dengan file kamus).
4. Setelah Anda menentukan kekuatan yang diperlukan, masukkan dan masukkan kembali kata sandi.
5. Program mengevaluasi kekuatan kata sandi Anda dan memerlukan konfirmasi dengan Y
untuk melanjutkan.
6. Selanjutnya Anda perlu menjawab fitur keamanan berikut:
- Hapus pengguna anonim?
- Larang login root dari jarak jauh?
- Hapus database pengujian dan akses ke sana?
- Muat ulang tabel hak istimewa sekarang?
Untuk menjalankan skrip dengan pengaturan default, jawaban yang disarankan untuk semua pertanyaan ini adalah Y
.
Opsi mysql_secure_installation
mysql_secure_installation
script menerima opsi tertentu yang menyesuaikan konfigurasi keamanan MySQL. Tentukan opsi di baris perintah atau di [client]
grup file opsi.
mysql_secure_installation
yang paling umum digunakan pilihannya adalah --host
dan --port
.
Misalnya, Anda dapat mengonfigurasi MySQL untuk mengizinkan koneksi IPv6 oleh klien yang terhubung ke server lokal menggunakan port 3307. Untuk melakukannya, Anda perlu menambahkan ::1
alamat host lokal dan ubah port default (3306) menjadi 3307.
Oleh karena itu, ketika menjalankan skrip instalasi, Anda akan menggunakan perintah:
mysql_secure_installation --host=::1 --port=3307
Opsi lain yang didukung termasuk:
--basedir=dir | Tentukan direktori dasar. |
--print-defaults | Cetak daftar argumen program dan keluar. |
--no-defaults | Mencegah skrip membaca opsi default dari file opsi apa pun. |
--defaults-file=# | Menginstruksikan skrip untuk hanya membaca file opsi yang ditentukan # . |
--defaults-extra-file=# | Membaca file yang ditentukan # setelah membaca file opsi biasa. |
--defaults-group-suffix=str | Membaca grup opsi biasa, tetapi juga grup dengan nama biasa dan str akhiran. |
--help | Menampilkan pesan bantuan dan keluar. |
--host=host_name | Menghubungkan ke server MySQL pada host yang ditentukan. |
--no-defaults | Mencegah skrip membaca file opsi (kecuali .mylogin.cnf berkas). |
--password | Skrip menerima opsi ini tetapi selalu mengabaikannya. Oleh karena itu, skrip meminta kata sandi setiap kali dipanggil. |
--port=# | Tentukan nomor port TCP/IP yang akan dihubungkan. |
--print-defaults | Mencetak nama program dan opsi default. |
--protocol={#} | Tentukan protokol transport yang akan digunakan untuk menghubungkan ke server {TCP | SOCKET | PIPE | MEMORY} . |
--socket=path | Tentukan file soket Unix atau Windows named_pipe variabel untuk terhubung ke localhost . |
--ssl=[1 | 0] | Mengaktifkan atau menonaktifkan enkripsi koneksi, masing-masing. Opsi yang dimulai dengan --ssl juga dapat menunjukkan jalur ke kunci dan sertifikat SSL. |
--ssl-ca=filename | Tentukan file yang berisi daftar Otoritas Sertifikat SSL tepercaya. |
--ssl-capath=dir | Tentukan jalur direktori yang berisi file sertifikat Otoritas Sertifikat SSL tepercaya. |
--ssl-cert=filename | Jalur ke file yang berisi sertifikat kunci publik SSL klien. |
--ssl-cipher=list | Daftar sandi yang diizinkan untuk enkripsi koneksi. |
--ssl-crl=filename | Jalur ke file yang berisi daftar pencabutan sertifikat. |
--ssl-crlpath=dir | Direktori yang berisi file daftar pencabutan sertifikat. |
--ssl-key=filename | Jalur ke file yang berisi sertifikat kunci pribadi SSL klien. |
--ssl-mode=mode | Tentukan salah satu status keamanan koneksi server, dalam rangka meningkatkan keketatan:[DISABLED | PREFERRED | REQUIRED | VERIFY_CA | VERIFY_IDENTITY] . |
--ssl-verify-server-cert | Instruksikan klien untuk memverifikasi identitas nama host terhadap sertifikat server yang berisi identitas Nama Umum. |
--tls-version=list | Tentukan daftar protokol TLS yang diizinkan yang dipisahkan koma untuk koneksi terenkripsi. |
--use-default | Script dijalankan tanpa interaksi. |
--user=username | Tentukan nama pengguna akun MySQL untuk menghubungkan ke server. |