Tips Terbaik untuk Keamanan MySQL dan MariaDB
Diterbitkan: 2022-01-08Keamanan menjadi perhatian besar bagi banyak orang. Posting ini akan memberi Anda sepuluh tips tentang cara mencapai keamanan MySQL dan MariaDB untuk membuat database Anda aman dari peretas. Kiat-kiat ini meliputi: mencadangkan data, menggunakan kata sandi yang kuat, dan membatasi hak akses.
Tips Terbaik untuk Keamanan MySQL dan MariaDB
Berikut adalah tip terbaik untuk mencapai keamanan MySQL dan MariaDB:
Hapus Pengguna tanpa Kata Sandi
Jika Anda memiliki pengguna di database Anda tanpa kata sandi, yang terbaik adalah menghapusnya. Ini akan membantu mengurangi kemungkinan seseorang dapat meretas basis data Anda. Anda dapat menggunakan kueri berikut untuk menghapus pengguna ini:
Terlepas dari apakah pengguna hanya memiliki akses dari localhost atau tidak, mereka harus dihapus untuk menghentikan perintah negatif apa pun agar tidak dijalankan. Juga, kata sandi yang lemah adalah risiko keamanan tersendiri.
Anda harus selalu menggunakan kata sandi yang kuat saat membuat pengguna di database Anda. Kata sandi yang lemah lebih mudah diretas oleh peretas, yang dapat menyebabkan mereka mendapatkan akses ke database Anda dan mendatangkan malapetaka jika mereka mengelolanya. Menggunakan pembuat kata sandi otomatis akan membantu membuat kata sandi yang lebih kuat untuk Anda yang lebih sulit untuk diretas.
Anda juga harus mempertimbangkan untuk menggunakan autentikasi dua faktor untuk pengguna Anda. Ini akan memerlukan kode tambahan, biasanya dikirim ke telepon mereka, untuk masuk ke database. Ini mempersulit seseorang untuk mendapatkan akses jika mereka hanya memiliki nama pengguna dan kata sandi Anda.
Batasi Akses Jarak Jauh
Jika Anda tidak perlu memberikan akses jarak jauh ke database Anda, maka yang terbaik adalah membatasinya. Ini akan membantu mengurangi kemungkinan seseorang dapat meretas basis data Anda dari lokasi yang jauh.
Untungnya, versi terbaru MySQL dan MariaDB secara otomatis membatasi akses jarak jauh ke database kecuali ditentukan lain. Namun, Anda tetap harus memeriksa pengaturan keamanan Anda untuk memastikan bahwa ini masalahnya.
Ini juga merupakan ide yang baik untuk memastikan semua pengguna terhubung ke MySQL hanya dengan host yang Anda inginkan. Misalnya, ini dapat dilakukan dengan menggunakan ([email protected]).
Hapus Basis Data Uji
Saat Anda menginstal MySQL atau MariaDB, database pengujian dibuat secara otomatis. Basis data ini berisi data yang dapat digunakan untuk meretas basis data Anda yang sebenarnya jika jatuh ke tangan yang salah. Sebaiknya hapus database ini agar tidak digunakan untuk tujuan jahat.
Basis data pengujian ini juga menyebabkan ketegangan yang tidak perlu pada server basis data. Ini hanya digunakan oleh penguji basis data untuk menguji kueri, sehingga dapat dihapus tanpa memengaruhi fungsionalitas basis data Anda.
Mengaburkan Akses ke MySQL
Jika Anda tidak ingin orang tahu bahwa database Anda ada, Anda dapat mengaburkan aksesnya. Ini akan mempersulit seseorang untuk menemukan database Anda dan meretasnya.
Mengaburkan akses juga mempersulit siapa saja yang memantau lalu lintas Anda untuk menentukan port mana yang digunakan oleh MySQL atau MariaDB.
Sudah diketahui bahwa MySQL berjalan pada port 3306, sedangkan 'root' adalah nama superuser. Anda dapat memperbaikinya dengan mengedit my.cnf dan mengubah variabel 'port'.
Amankan File Konfigurasi Anda
Seperti halnya aplikasi apa pun, penting untuk mengamankan file konfigurasi Anda untuk MySQL atau MariaDB. File-file ini berisi informasi sensitif, seperti kata sandi dan data pengguna. Mengamankan file-file ini akan membantu mencegah siapa pun mendapatkan akses ke informasi ini jika mereka mendapatkan akses ke server Anda.
Keamanan jaringan
Penting juga untuk mengamankan jaringan Anda, serta server itu sendiri. Ini akan membantu mengurangi kemungkinan seseorang meretas database Anda dari lokasi yang jauh dan menjalankan perintah jahat di sana.
Hal pertama yang harus Anda pastikan adalah MySQL hanya diakses melalui koneksi lokal, bukan jaringan. Anda dapat melakukan ini melalui soket Unix. Masukkan 'lewati-jaringan' ke my.cnf. untuk menghentikan semua komunikasi TCP/IP.

Anda juga dapat menggunakan firewall untuk memblokir akses ke MySQL dari alamat atau rentang IP tertentu. Ini akan membantu mengurangi kemungkinan seseorang meretas database Anda dari lokasi yang jauh.
Gunakan Plugin Audit
Anda juga dapat menggunakan plugin audit untuk melacak apa yang terjadi di database Anda. Ini akan membantu Anda menentukan apakah seseorang telah meretas basis data Anda, atau jika ada sesuatu yang mencurigakan terjadi dengannya yang dapat menyarankan hal ini.
Ada banyak opsi gratis dan berbayar untuk plugin ini yang tersedia online hari ini. MySQL Enterprise Audit adalah pilihan yang baik jika MySQL Enterprise sudah digunakan di organisasi Anda. MariaDB juga memiliki plugin audit sendiri.
Semua plugin ini melakukan pekerjaan yang baik dalam memantau database Anda untuk aktivitas yang mencurigakan. Mereka bahkan dapat mengirimi Anda peringatan jika sesuatu yang tidak biasa terdeteksi sehingga Anda tidak perlu memeriksa log secara manual setiap saat.
Nonaktifkan LOAD DATA LOCAL INFILE
Cara lain untuk mencegah seseorang mendapatkan akses ke database Anda adalah dengan menonaktifkan kemampuan LOKAL di MySQL dan MariaDB. Perintah ini memungkinkan Anda memuat file data dari file lokal, tetapi juga menimbulkan risiko keamanan – terutama jika tidak dienkripsi. Untuk menonaktifkan fungsi ini, setel local-infile=0 di my.cnf.
Keistimewaan File
Penting juga untuk mengatur hak istimewa file yang benar untuk file MySQL dan MariaDB Anda. Ini akan memastikan bahwa hanya pengguna yang berwenang yang dapat mengaksesnya. Anda dapat melakukan ini dengan mengatur izin yang sesuai pada file-file ini.
Misalnya, Anda dapat mengatur pemilik semua file MySQL Anda menjadi 'mysql' dan grup menjadi 'mysql', dengan semua pengguna lain ditolak aksesnya. Ini akan memastikan bahwa hanya pengguna dengan izin yang benar yang dapat mengakses file MySQL Anda.
SSL dan Enkripsi Data dalam Transit
Jika Anda menjalankan MySQL atau MariaDB dengan SSL diaktifkan, maka penting untuk menginstal sertifikat yang diperlukan di server Anda. Jika ini tidak dilakukan, siapa pun dapat mencegat informasi yang dikirim antara database Anda dan kliennya.
Anda juga harus mengenkripsi semua data dalam perjalanan untuk perlindungan tambahan dari setiap data sensitif yang dikirimkan melalui jaringan publik dengan menggunakan SSH.
Anda juga dapat mengenkripsi data yang sedang dikirim antara server database Anda dan perangkat lain. Ini akan memastikan bahwa siapa pun yang memantau lalu lintas di jaringan Anda tidak dapat mengakses data apa pun yang mereka transmisikan atau terima, bahkan jika mereka berhasil meretas salah satu sistem ini.
SSL akan menjadi cara yang bagus untuk mencapai ini bagi pengguna MySQL, karena sudah ada di dalam protokol. Pengguna MariaDB dapat menggunakan stunnel untuk mencapai efek serupa.
Enkripsi Data saat Istirahat
Terakhir, Anda juga harus mempertimbangkan untuk mengenkripsi data Anda saat istirahat. Ini berarti bahwa data dienkripsi bahkan ketika tidak sedang dikirim.
Ini dapat dilakukan dengan menggunakan alat seperti Enkripsi Perusahaan MySQL atau Enkripsi Kolom MariaDB.
Kedua alat ini menawarkan cara yang bagus untuk melindungi data Anda agar tidak diakses jika seseorang berhasil meretas ke server database Anda. Mereka juga sangat mudah digunakan, jadi Anda tidak perlu menjadi ahli enkripsi untuk memanfaatkan alat ini.
Kesimpulan
Semua opsi yang disebutkan di sini akan membantu Anda mencapai keamanan MySQL dan MariaDB, tetapi tidak semuanya sempurna untuk setiap situasi. Anda harus mempertimbangkan kebutuhan spesifik Anda ketika melihatnya sehingga Anda dapat memilih yang terbaik. Namun, tip-tip ini akan memberi Anda ide bagus tentang bagaimana memilih opsi yang akan bekerja dengan baik untuk Anda.
Semoga artikel ini memberi Anda beberapa ide bagus tentang bagaimana mencapai keamanan MySQL dan MariaDB di organisasi Anda sehingga tidak ada yang bisa meretas database Anda jika mereka berhasil menembus pertahanan lain.