Cara Mengizinkan Koneksi Jarak Jauh ke MySQL


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.

Daftar Isi

    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.

    1. Untuk memulai, gunakan editor teks konsol pilihan Anda untuk mengedit file database MySQL Anda. Di Linux, ketik sudo nano /etc/mysql/mysql.conf.d/mysqld.cnfke dalam terminal atau jendela SSH untuk mengedit file ini menggunakan editor nano(dengan asumsi database MySQL Anda berada di lokasi default).
      1. Jika Anda menjalankan Windows, buka File Explorer dan akses folder yang berisi instalasi MySQL Anda (mis. C:/Program Files/MySQL/MySQL Server 8.0). Buka file my.inimenggunakan editor teks default Anda (mis. Notepad) dengan mengklik dua kali entri tersebut. Jika tidak ada, buat filenya dulu.
        1. Di Mac, buka jendela terminal dan ketik sudo nano /usr/local/etc/my.cnf. Ini adalah file konfigurasi default untuk MySQL jika Anda telah menginstal MySQL menggunakan homebrew.
        2. 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

          1. Setelah Anda 'telah membuka file konfigurasi MySQL untuk server Anda, gunakan tombol panah keyboard Anda untuk mencapai bagian bind-addressdari file tersebut. Rentang IP ini membatasi koneksi ke database Anda, yang biasanya disetel untuk hanya mengizinkan koneksi dari mesin atau server lokal menggunakan 127.0.0.1.
            1. Jika Anda ingin mengonfigurasi database MySQL untuk mengizinkan koneksi dari perangkat yang menggunakan koneksi internet Anda saat ini, temukan alamat IP publik Anda terlebih dahulu, lalu ganti 127.0.0.1dengan alamat IP tersebut. Atau, ganti dengan alamat IP untuk perangkat atau server yang ingin Anda izinkan koneksinya.
              1. Dalam beberapa keadaan , Anda mungkin ingin mengizinkan semuakoneksi jarak jauh ke database MySQL. Ini membawa risiko ekstremdan tidak boleh digunakan di server produksi. Namun, jika Anda ingin mengizinkannya, ganti 127.0.0.1dengan 0.0.0.0.
                1. Catat nilai portdi bagian Setelan Dasar. Ini akan diperlukan di bagian selanjutnya. Jika tidak terlihat, nilai default yang akan digunakan adalah port 3306. Anda dapat menambahkan port Anda sendiri dengan mengetikkan port = xxxxpada baris baru, menggantikan xxxxdengan nilai port yang sesuai.
                  1. Setelah Anda mengonfigurasi bind-addressdi file konfigurasi MySQL Anda, simpan file tersebut. Jika Anda menggunakan Linux, pilih Ctrl + Odan Ctrl + Xuntuk melakukannya. Di Mac, pilih Command + Odan Command + X. Pengguna Windows dapat menyimpan dengan memilih File>Save.
                    1. 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).
                    1.  Jika perintah di atas tidak berhasil, coba sudo service mysql restartsebagai gantinya.
                      1. Untuk memulai ulang MySQL di Windows, buka jendela PowerShell baru dengan mengeklik kanan menu Mulai dan memilih Windows PowerShell (Admin). Di jendela PowerShell, ketik net stop mysql80diikuti dengan net start mysql80, ganti mysql80dengan nama layanan yang benar di PC Anda.
                      2. 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.

                        1. Buka terminal atau koneksi SSH dan ketik sudo iptables -A INPUT -p tcp -s XXXX –dport YYYY -j ACCEPT. Ganti XXXXdengan alamat IP untuk perangkat yang ingin Anda izinkan koneksi MySQL dari, dan ganti YYYYdengan nilai port yang cocok dari konfigurasi MySQL Anda file (mis. 3306).
                          1. Ini akan mengonfigurasi firewall untuk sementara. Jika Anda menggunakan server Linux berbasis Debian atau Ubuntu, buat perubahan ini permanen dengan mengetikkan sudo netfilter-persistent savedan sudo netfilter-persistent reloadke terminal atau SSH window.
                          2. 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:

                            1. Klik kanan menu Start dan pilih Run.
                              1. Di kotak Run, ketik wf.mscdan pilih OK.
                                1. Di jendela Windows Defender, pilih Aturan Masuk >Aturan Baru.
                                  1. Dalam Wizard Aturan Masuk Barujendela, pilih Port>Berikutnya.
                                    1. Pada menu berikutnya, pilih TCPdari opsi, ketik 3306(atau nilai port mana saja yang tercantum dalam file konfigurasi MySQL Anda), lalu pilih Berikutnya.
                                      1. Pada menu Tindakan, biarkan opsi default menjadi Izinkan koneksidiaktifkan, lalu pilih Berikutnya.
                                        1. Konfirmasi bahwa Anda ingin aturan diterapkan ke semua jenis jaringan, lalu pilih Berikutnya.
                                          1. Ketikkan nama deskriptif untuk aturan (mis. MySQL) di port yang disediakan , lalu pilih Selesaiuntuk menambahkannya ke daftar aturan firewall Anda.
                                          2. 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

                                            1. Untuk terhubung ke server MySQL jarak jauh Anda di Mac atau Linux, buka jendela terminal baru dan ketik mysql -u username -h XXXX:XXXX -p. Ganti XXXX:XXXXdengan alamat IP server jauh dan nomor port Anda (mis. 100.200.100.200:3306) dan nama penggunadengan nama pengguna MySQL Anda.
                                              1. Saat diminta, konfirmasi sandi Anda. Jika koneksi berhasil, pesan sukses akan muncul di terminal.
                                              2. Menghubungkan ke MySQL di Windows

                                                1. Untuk menghubungkan ke server MySQL jarak jauh di Windows, buka jendela PowerShell baru dengan mengklik kanan menu Start dan memilih Windows PowerShell (Admin).
                                                  1. Di jendela PowerShell baru, ketik cd “C:\Program Files\MySQL\MySQL Workbench 8.0\” untuk memasukkan folder yang benar, menggantikan direktori ini dengan direktori instalasi yang benar pada PC Anda. Misalnya, jika versi MySQL Anda adalah 8.0.1, gunakan folder MySQL Workbench 8.0.1sebagai gantinya.
                                                    1. Dari sana, ketik .\mysql.exe -u username -h X.X.X.X:XXXX -p. Ganti XXXX:XXXXdengan alamat IP server jauh dan nomor port Anda (mis. 100.200.100.200:3306) dan nama penggunadengan nama pengguna MySQL yang memungkinkan akses jarak jauh (seperti root). Ikuti petunjuk tambahan di layar.
                                                    2. Berikan sandi Anda, saat diminta, untuk menyelesaikan proses masuk dan mengakses database MySQL Anda dari jarak jauh.
                                                    3. 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.

                                                      1. Di shell MySQL jarak jauh Anda (menggunakan alat mysql), ketik CREATE USER “username”@”xxxx” DIIDENTIFIKASI DENGAN “password”;dan pilih Enter. Ganti nama penggunadengan nama pengguna yang ingin Anda buat, xxxxdengan alamat IP yang ingin Anda sambungkan, dan sandidengan sandi yang sesuai.
                                                        1. Anda harus memberikan akun baru Anda dengan izin yang diperlukan. Untuk melakukannya, ketik GRANT ALL ON databasename.* TO username@”x.x.x.x”;dan ganti nama database, nama pengguna,dan x.x.x.x dengan detail yang benar. Jika Anda mau, ganti namadatabasedengan *untuk memberikan akses ke semua database.
                                                        2. 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.

                                                          Pos terkait:


                                                          9.08.2021