Jika Anda bekerja dengan database MySQL, maka Anda sudah menyadari tantangan yang Anda hadapi dalam menjaga keamanan database Anda. Dari upaya peretasan basis data menggunakan injeksi SQL hingga serangan brute force, sulit untuk menjaga keamanan data Anda, terutama jika Anda bekerja dengan basis data dari jarak jauh.
Ada beberapa cara untuk mengonfigurasi server SQL untuk mengizinkan koneksi jarak jauh , tetapi Anda harus berhati-hati, karena mengizinkan koneksi jarak jauh di server MySQL dapat membuat database Anda menjadi sasaran empuk peretas. Jika Anda ingin mengizinkan koneksi jarak jauh yang aman ke database MySQL, inilah yang perlu Anda ketahui.
Sebelum Anda Mulailah
Sebelum membuat perubahan apa pun pada database MySQL, Anda harus mencadangkan database, terutama jika Anda bekerja di server produksi (server dalam penggunaan aktif). Perubahan apa pun yang Anda buat pada database Anda, atau server yang menghostingnya, dapat mengakibatkan kehilangan data yang serius jika terjadi kesalahan.
Anda mungkin juga menemukan bahwa perubahan pada koneksi server Anda dapat mencegah Anda mengaksesnya setelahnya. Jika ini terjadi, Anda mungkin perlu berkonsultasi dengan administrator server untuk dukungan lebih lanjut. Ide yang bagus adalah menguji coba perubahan apa pun pada server MySQL yang dijalankan secara lokal untuk memeriksa apakah perubahan Anda berfungsi sebelum mencobanya dari jarak jauh.
Kemungkinan juga jika Anda membuat perubahan pada server jarak jauh, Anda' akan membutuhkan cara yang aman untuk terhubung dan membuat perubahan. SSH (Secure Shell)sering kali merupakan cara terbaik untuk melakukannya, karena memungkinkan Anda terhubung ke server jauh. Anda juga dapat menggunakan SSH untuk terhubung ke server di jaringan lokal Anda, seperti dihosting di Raspberry Pi.
Panduan ini akan memandu Anda melalui langkah-langkah untuk mengonfigurasi MySQL untuk mengizinkan koneksi jarak jauh, tetapi Anda harus memastikan bahwa Anda memiliki akses langsung atau jarak jauh ke server yang menghosting server MySQL Anda terlebih dahulu.
Misalkan Anda tidak memiliki akses jarak jauh ke server Anda melalui SSH (misalnya). Dalam hal ini, Anda tidak akan dapat mengonfigurasi database MySQL Anda untuk mengizinkan koneksi jarak jauh secara langsung kecuali akun root mySQL Anda sudah mengizinkan koneksi jarak jauh. Jadi, Anda harus membuat koneksi ini terlebih dahulu sebelum dapat melanjutkan.
Mengedit File Konfigurasi MySQL Anda
Langkah pertama dalam mengonfigurasi MySQL untuk mengizinkan remote koneksi adalah untuk mengedit file konfigurasi MySQL Anda. Pada tahap ini, panduan ini akan menganggap Anda telah terhubung ke server, PC, atau Mac yang menghosting database mySQL Anda dari jarak jauh dan memiliki akses konsol.
Atau, Anda dapat mengonfigurasi server MySQL lokal menggunakan terminal terbuka di Mac atau Linux atau editor teks di Windows.
Lokasi yang dirujuk di atas adalah lokasi default untuk file konfigurasi MySQL. Jika perintah ini tidak bekerja, Anda harus mencari file yang relevan (my.cnf, mysqld.cnf, atau my.ini) secara manual untuk menemukan jalur file yang relevan.
Menyetel Rentang IP Safe Bind-Address
- Selanjutnya, pengguna Linux dan Mac dapat memulai ulang MySQL dengan mengetikkan mysql.server stop && mysql.server startatau mysql.server restart. Anda mungkin perlu meninggikan perintah menggunakan sudo (mis. sudo mysql.server restart) dan menggunakan jalur yang sesuai ke file mysql.server (mis. /usr /local/bin/mysql.server).
Jika Anda tidak yakin dengan nama layanan yang benar di Windows, ketik net startuntuk menemukannya.Jika Anda tidak dapat memuat ulang konfigurasi, mulai ulang server Anda dan muat ulang MySQL secara manual (jika perlu).
Mengonfigurasi Firewall Anda
Pada tahap ini, database MySQL Anda harus mengizinkan koneksi jarak jauh dari perangkat menggunakan alamat IP yang Anda tetapkan sebagai nilai bind-addressdi file konfigurasi MySQL Anda (atau dari semua perangkat jika Anda menyetel nilai ini ke 0.0.0.0sebagai gantinya). Namun, koneksi akan tetap diblokir oleh perangkat atau firewall jaringanAnda.
Sebagian besar server dan PC menggunakan firewall untuk memblokir koneksi kecuali akses ke port tertentu diberikan. Langkah-langkah untuk mengonfigurasi ini akan bervariasi, tergantung pada apakah Anda menjalankan MySQL di Windows atau Linux. Firewall Mac dinonaktifkan secara default, jadi Anda tidak perlu menyelesaikan langkah tambahan apa pun di sini.
Konfigurasi Firewall Linux
Banyak server Linux menggunakan iptablessebagai utilitas firewall default. Anda dapat mengonfigurasinya dengan mengikuti langkah-langkah di bawah ini.
Jika iptables bukan alat firewall default untuk distribusi Linux Anda, Anda harus membaca manual pengguna distribusi Anda untuk informasi lebih lanjut. Jika paket tertentu (seperti netfilter-persistent) tidak tersedia, gunakan alat repositori perangkat lunak distribusi Anda untuk menginstalnya (mis. sudo apt install netfilter-persistent).
Mengonfigurasi Firewall Windows
Jika Anda menggunakan PC atau server Windows untuk menghosting database, Anda dapat mengonfigurasi firewall menggunakan langkah-langkah berikut:
Jika Anda mengalami masalah saat menyambungkan, ulangi langkah-langkah di atas , pastikan untuk membuat aturan keluarbaru di setelan firewall Anda menggunakan detail yang sama (port 3306, dll). Anda mungkin juga perlu mengonfigurasi router jaringan lokal ke buka port yang diblokir yang diperlukan untuk mengizinkan koneksi masuk dan keluar ke database Anda.
Menghubungkan ke Server Jarak Jauh Menggunakan MySQL
Setelah mengonfigurasi database MySQL Anda untuk mengizinkan koneksi jarak jauh, Anda harus benar-benar membuat koneksi ke sana. Anda dapat melakukannya menggunakan perintah mysql(mysql.exedi Windows) dari terminal atau jendela PowerShell.
Jika Anda menjalankan Windows, Anda harus memastikan bahwa MySQL diinstal secara lokal sebelum Anda mulai. Pengguna Mac dapat menginstal MySQL menggunakan homebrew dari terminal (brew install mysql), sedangkan pengguna Linux dapat menggunakan repositori aplikasi lokal mereka (mis. sudo apt install mysql) untuk menginstal paket yang diperlukan.
Menghubungkan ke MySQL di Linux atau Mac
Menghubungkan ke MySQL di Windows
Jika ini tidak berhasil, sambungkan ke server atau PC yang menghosting server MySQL Anda menggunakan SSH (atau akses langsung) menggunakan langkah-langkah ini dan menggunakan argumen -h localhost. Anda kemudian dapat membuat akun pengguna yang sesuai dengan mengikuti langkah-langkah di bawah ini.
Mengizinkan Akses Pengguna Jarak Jauh ke Database MySQL
Pada titik ini, Anda harus dapat terhubung ke server MySQL Anda dari jarak jauh menggunakan akun pengguna root server Anda atau akun pengguna lain dengan hak istimewa yang lebih tinggi. Karena tingkat akses ini tidak aman, Anda dapat memilih untuk membuat akun yang lebih terbatas untuk mengakses database MySQL Anda.
Akun ini akan memiliki akses terbatas ke server MySQL Anda, yang memungkinkannya untuk berinteraksi hanya dengan database yang dipilih. Itu tidak akan dapat membuat perubahan yang lebih serius, seperti mengakses data database lain, membuat akun pengguna baru, dll.
Anda harus memiliki kemampuan untuk masuk ke server MySQL Anda dari jarak jauh. Jika Anda tidak dapat menggunakan akun root dari jarak jauh, Anda harus mengakses shell server Anda menggunakan perintah mysqlmelalui koneksi SSH jarak jauh atau dengan langsung mengakses PC atau server yang menghosting server.
Dengan akses yang diberikan, gunakan langkah-langkah di bagian di atas untuk terhubung ke server Anda dari jarak jauh menggunakan akun baru Anda (mis. mysql -u username -h XXXX:XXXX -p).
Mengamankan Data Database Anda
Apakah Anda bekerja dengan MySQL atau jenis SQL lainnya database, penting untuk menjaga koneksi Anda tetap aman untuk menjaga keamanan data Anda. Cara yang baik untuk melakukannya adalah dengan menghasilkan kunci SSH untuk akses jarak jauh ke server Anda, daripada mengandalkan sandi lama (dan mudah ditebak).
Jika Anda khawatir tentang kehilangan data, Anda dapat dengan mudah buat cadangan basis data Anda online. Sebagian besar database dijalankan menggunakan server Linux—Anda dapat mengotomatiskan cadangan file Linux dengan mudah. Jika Anda menjalankan MySQL di Windows, Anda dapat menyiapkan sistem pencadangan otomatis untuk Windows yang serupa, yang memungkinkan Anda memulihkan data dalam keadaan darurat.