12 Cara Meningkatkan Keamanan / Security MySQL dan MariaDB
Ada saatnya kita ingin membuat agar Server Database kita yang berbasis MySLQ dan MariaDB lebih aman.
Berikut 12 langkah yang bisa digunakan dalam Meningkatkan Keamanan / Security MySQL dan MariaDB:
Langkah 1 : Mysql Secure Installation
# mysql_secure_installation
Lakukan hal seperti:
- Set password root (gunakan password root yang aman/tidak mudah ditebak)
- Disallow root remote login
- hapus/remove anonymous user
Langkah 2 : Bind Database Server To Loopback Address
# vi /etc/my.cnf [Untuk RHEL/CentOS] # vi /etc/mysql/my.conf [Untuk Debian/Ubuntu] ATAU # vi /etc/mysql/mysql.conf.d/mysqld.cnf [Untuk Debian/Ubuntu]
SET : Bind sehingga menjadi hanya ke ke localhost:
bind-address = 127.0.0.1
Langkah 3 : Disable LOCAL INFILE in MySQL
Pada [mysqld] ubah tambah/ubah:
local-infile=0
Langkah 4 : Change MYSQL Default Port
Ubah port standar 3306 ke port lain misal ke 5000. Caranya Pada [mysqld] ubah tambah/ubah:
Port=5000
Langkah 5 : Enable MySQL Logging
Aktifkan logging agar jika ada error dsj akan terlog sehingga berguna untuk pengecekan nantinya. Caranya Pada [mysqld] ubah tambah/ubah:
log=/var/log/mysql.log
Langkah 6 : Set Permission di file mysql.conf
Pastikan file mysql.conf hanya user root saja yg memiliki akses. Jalankan Perintah ini:
# chmod 644 /etc/my.cnf
Langkah 7 : Hapus MySQL Shell History
Pastikan history perintah2 mysql dihapus. Demi alasan keamanan. Jalankan Perintah ini:
# cat /dev/null > ~/.mysql_history
Langkah 8 : Jangan cantumkan password pada command mysql
Jangan jalankan perintah mysql dengan mencantumkan password. Contoh praktik yang buruk:
# mysql -u root -pPaswordABC
Tetapi baiknya Gunakan perintah ini:
# mysql -u root -p
Baru masukan password pada saat prompt.
Langkah 9 : Gunakan spesifik User untuk tiap aplikasi.
Jangan gunakan user dan password yang sama untuk semua aplikasi. Dan jangan juga gunakan user root! Gunakan user spesifik per aplikasi!
# mysql -u root -p MariaDB [(none)]> CREATE DATABASE wordpress_db; MariaDB [(none)]> CREATE USER 'ibrahim'@'localhost' IDENTIFIED BY 'P4ssw0rd123%$#@'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON wordpress_db.* TO 'ibrahim'@'localhost'; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> exit
Langkah 10 : Gunakan aplikasi Plugin keamanan tambahan!
Bisa kamu baca disini: https://dev.mysql.com/doc/refman/5.7/en/security-plugins.html
Langkah 11 : Ubah Password Secara Berkala
Lakukan ubah password user root secara rutin agar lebih aman.
MariaDB [(none)]> USE mysql; MariaDB [(none)]> UPDATE user SET password=PASSWORD('Pasw0RD^%&$#@') WHERE User='root' AND Host = 'localhost'; MariaDB [(none)]> FLUSH PRIVILEGES;
Langkah 12 : Update Mysql dan MariaDB secara berkala
Lakukan cara berikut untuk melakukan update mySQL dan MariaDB.
# yum update && yum upgrade # apt-get update && apt-get upgrade
# systemctl restart mariadb #RHEL/CentOS # systemctl restart mysql #Debian/Ubuntu
Sekian semoga bermanfaat!