Cara Remote Database MySQL dengan SSH Tunnel menggunakan DBeaver

Cara Remote Database MySQL dengan SSH Tunnel menggunakan DBeaver

Pendahuluan

Mengelola database MySQL di server atau VPS sering kali membutuhkan akses jarak jauh, namun membuka port database langsung ke publik (misalnya port 3306) berisiko tinggi dari sisi keamanan. Salah satu solusi yang aman adalah dengan menggunakan SSH Tunnel, di mana koneksi database akan dialihkan melalui jalur SSH yang terenkripsi, sehingga data menjadi lebih aman tanpa perlu membuka port MySQL ke internet. Dengan aplikasi database client seperti DBeaver, proses manajemen database pun menjadi lebih mudah, visual, dan nyaman. Keuntungan utama dari penggunaan SSH Tunnel untuk remote database MySQL antara lain koneksi yang lebih aman karena terenkripsi, tidak perlu membuka port database ke publik, dapat diakses dari mana saja menggunakan SSH, dan sangat cocok untuk server production maupun VPS pribadi. Artikel ini akan membahas langkah demi langkah cara remote database MySQL menggunakan SSH Tunnel dengan DBeaver secara lengkap.

Konsep Dasar SSH Tunnel

SSH Tunnel adalah teknik untuk meneruskan koneksi dari komputer lokal ke server tujuan melalui protokol SSH yang terenkripsi.

  1. Cara Kerjanya:
    • DBeaver di komputer lokal: Mengirimkan koneksi ke server melalui SSH.
    • Server: Menerima koneksi SSH dan kemudian meneruskan koneksi tersebut ke MySQL yang ada di server, biasanya pada alamat 127.0.0.1:3306 (localhost MySQL).
  2. Keuntungan Utama:
    • Keamanan: Data yang dikirim tidak dalam bentuk plain text, karena sudah terenkripsi lewat SSH.
    • Keamanan Jaringan: Database tidak perlu diakses langsung melalui IP publik, melainkan melalui koneksi SSH yang aman.
    • Lebih Aman: Menggunakan SSH Tunnel lebih aman dibandingkan dengan mengakses MySQL secara langsung tanpa enkripsi.

Dengan teknik ini, kamu bisa mengakses MySQL dengan lebih aman meskipun server database tidak diizinkan untuk menerima koneksi langsung dari luar.

Arsitektur Koneksi Remote Database

  1. Alur Koneksi SSH Tunnel:
    • Komputer Lokal (DBeaver)
      Kamu membuka DBeaver di komputer lokal untuk menghubungkan ke MySQL.
    • SSH (port 22)
      DBeaver mengirimkan koneksi ke server melalui port SSH (port 22), membuat jalur yang aman dan terenkripsi.
    • Server / VPS
      Server atau VPS menerima koneksi SSH, lalu meneruskan koneksi ke MySQL yang ada di server tersebut.
    • MySQL (127.0.0.1:3306)
      Koneksi diteruskan ke MySQL yang hanya mendengarkan di localhost (127.0.0.1:3306), bukan di IP publik, sehingga tidak ada risiko database terbuka secara langsung ke internet.
  2. Keuntungannya:
    • MySQL tidak perlu terbuka di IP publik, hanya di localhost server, yang meningkatkan keamanan.
    • Semua komunikasi antara DBeaver dan MySQL terenskripsi lewat SSH, melindungi data dari potensi risiko di jaringan.

Persiapan Server atau VPS

Pastikan server sudah siap dengan kondisi berikut:

  • SSH aktif dan bisa diakses
  • MySQL atau MariaDB sudah terinstall
  • Port SSH (default 22) tidak diblokir firewall
  • User SSH tersedia (misal: root atau user lain)
  • Pastikan MySQL sudah listen ke ke 0.0.0.0 atau IP tertentu

Persiapan User MySQL/MariaDB

  1. Login ke MySQL:
    mysql -u root -p
  2. Buat database dan user khusus (contoh):
    CREATE DATABASE pwh;
    CREATE USER 'pwhuser'@'localhost' IDENTIFIED BY 'PwhUser@2021!';
    GRANT ALL PRIVILEGES ON pwh.* TO 'pwhuser'@'localhost';
    FLUSH PRIVILEGES;

Persiapan Aplikasi DBeaver

Di komputer lokal:

  1. Download dan install DBeaver
    Download DBeaver Resmi disini
  2. Jalankan aplikasi DBeaver
  3. Klik New Database Connection
  4. Pilih MySQL,Kemudian Klik Next
  5. Pastikan driver MySQL berhasil di-download oleh DBeaver.

Konfigurasi SSH Tunnel di DBeaver

  1. Masuk ke tab SSH untuk mengonfigurasi koneksi SSH Tunnel.
  2. Setelah itu, masukkan Identitas SSH untuk menyambungkan ke server menggunakan SSH Tunnel.Kemudian klik Test Tunnel


    Penjelasan:
    • Centang: Pilih Use SSH Tunnel untuk mengaktifkan koneksi SSH melalui tunnel.
    • SSH Host: Masukkan IP server atau domain VPS Anda (misalnya: `103.xxx.xxx.xxx`).
    • SSH Port: Gunakan port 22 (port default untuk SSH).
    • SSH User: Masukkan username yang digunakan untuk login ke server (misalnya: `root` atau user lain yang Anda buat).
    • Authentication Method: Pilih metode autentikasi yang sesuai dengan cara login SSH Anda:
      • Password: Jika Anda menggunakan password untuk login ke server.
      • Public Key: Jika Anda menggunakan SSH key untuk autentikasi, pilih opsi ini dan arahkan ke file private key Anda (misalnya: `id_rsa`).
  3. Jika tunnel sudah berhasil terhubung maka akan muncul seperti berikut

Konfigurasi Koneksi Database di DBeaver

  1. Masuk ke tab Main, kemudian masukkan identitas Database, dan klik Test Connection.

    Catatan : Jika Production bisa di ganti untuk Port Default MySQL 3306 menjadi Port lain,dan bisa menggunakan SSH key 
  2. Jika berhasil terhubung, akan terlihat seperti berikut kemudian klik Finish.

  3. Kemudian database akan muncul di dashboard DBeaver.



Tips Keamanan Remote Database

Beberapa tips penting:

  1. Jangan buka port 3306 ke publik
  2. Gunakan SSH key dibanding password
  3. Gunakan user MySQL khusus (jangan root)
  4. Gunakan password database yang kuat
  5. Batasi akses SSH hanya dari IP tertentu jika memungkinkan
  6. Selalu logout jika selesai

Masalah Umum dan Solusinya

  1. Connection refused
    • MySQL tidak berjalan
    • Salah port
    • Salah host (harus 127.0.0.1)
  2. Access denied for user
    • Username/password salah
    • User MySQL belum diberi privilege
    • Host user salah (harus localhost) 
  3. SSH authentication failed
    • Username SSH salah
    • Password salah
    • File private key salah atau permission salah
  4. Timeout
    • Firewall memblokir port 22
    • IP server salah
    • Server sedang down

Best Practice Remote Database via SSH Tunnel

  • Gunakan user database berbeda untuk setiap aplikasi
  • Aktifkan firewall (UFW atau firewalld)
  • Gunakan SSH key dengan passphrase
  • Backup database secara rutin
  • Hindari akses database langsung dari internet
  • Simpan konfigurasi koneksi DBeaver dengan nama yang jelas (misal: MySQL VPS Production)

Kesimpulan

Remote database MySQL menggunakan SSH Tunnel dengan DBeaver adalah solusi paling aman dan praktis untuk mengelola database server dari komputer lokal. Dengan metode ini, koneksi terenkripsi, port database tetap tertutup, dan risiko serangan dapat diminimalkan.

Jika Anda sering mengelola VPS atau server production, metode ini sangat direkomendasikan sebagai standar keamanan dasar. Selanjutnya, Anda bisa mengombinasikan teknik ini dengan firewall, backup otomatis, dan manajemen user yang baik agar sistem database semakin aman dan stabil.


Artikel Lain

WhatsApp Kami

Support : +6282138153600

Finance : +6285191239466