Cara konek ke PostgreSQL lewat OpenVPN di Mac
Untuk konek ke PostgreSQL lewat OpenVPN di Selekta, isi alamat privat database di tab General, lalu di tab VPN centang Connect through OpenVPN, pilih profil .ovpn dari admin VPN-mu, dan isi VPN username serta password kalau profilnya memintanya. Selekta menyalakan VPN hanya untuk koneksi itu, tanpa hak admin dan tanpa mengubah route atau DNS di Mac-mu.
Banyak database perusahaan sama sekali tidak bisa diakses dari internet. Database itu berada di jaringan privat, misalnya 10.20.0.15 atau db.internal.example, dan satu-satunya jalan masuk adalah VPN kantor. Panduan ini membahas client OpenVPN bawaan Selekta, plus alternatifnya: app VPN yang menyambungkan seluruh Mac.
Cara kerja VPN bawaan
Selekta menjalankan client OpenVPN di dalam app. Tidak ada network interface baru yang dibuat di Mac-mu, jadi tidak perlu password administrator, dan route serta pengaturan DNS tidak disentuh. Browser, email dan app lain tetap memakai jaringan biasa.
Saat kamu konek, Selekta:
- Membuka VPN memakai profil
.ovpn-mu. - Menyediakan alamat lokal di
127.0.0.1khusus untuk koneksi ini. - Menyambungkan driver PostgreSQL ke alamat lokal itu, sehingga setiap query lewat VPN.
Nama host di koneksi, misalnya db.internal.example, di-resolve lewat VPN. Jadi nama internal tetap bisa dipakai walaupun DNS Mac-mu sendiri tidak mengenalnya.
Sebelum mulai
Yang kamu butuhkan:
- File profil
.ovpndari admin VPN. Simpan file lain yang dirujuknya (sertifikat, key, key tls-auth) di folder yang sama, karena Selekta membacanya dari sebelah profil. - VPN username dan password, kalau profilnya memakai
auth-user-pass. Profil yang login hanya dengan sertifikat client tidak membutuhkannya. - Alamat database seperti yang terlihat dari dalam VPN: IP privat seperti
10.20.0.15atau nama host internal. Jangan isi127.0.0.1, karena itu berarti Mac-mu sendiri. - Detail PostgreSQL seperti biasa: port (biasanya
5432), database, user dan password.
Langkah demi langkah

- Buka Selekta lalu tekan ⌘N (atau klik New connection di layar sambutan), kemudian pilih PostgreSQL.
- Di tab General, isi Name, pilih Environment (pilih Production untuk database production, supaya setiap tab diberi label dan perintah destruktif meminta nama koneksi), lalu isi Host dengan alamat privat, misalnya
10.20.0.15, serta Port, Database, User dan Password. - Buka tab VPN (⌘3) dan centang Connect through OpenVPN.
- Di sebelah Profile, klik Browse lalu pilih file
.ovpn-mu. Selekta menyimpan path file-nya, bukan salinannya. - Isi VPN username dan VPN password kalau profilmu memintanya. Password disimpan di Keychain macOS, tidak pernah di file. Biarkan keduanya kosong kalau profil hanya memakai sertifikat.
- Biarkan Local port berisi
auto, kecuali setup-mu butuh port tetap. - Kalau database mewajibkan TLS, atur mode-nya di tab SSL seperti biasa.
- Klik Test (⌘T). Dialog menampilkan "Connecting the VPN", lalu hasil koneksi PostgreSQL.
- Klik Save (⌘S). Mulai sekarang, setiap kali konek, VPN untuk koneksi ini dinyalakan otomatis.
Yang didukung client bawaan
Selekta membaca bagian profil .ovpn yang dibutuhkan sebuah client, dan mengabaikan pengaturan yang hanya berlaku untuk VPN sistem, seperti redirect-gateway, dev tun dan persist-tun.
Didukung:
remote,portdanprotodengan UDP atau TCP.ca,certdankey, sebagai file maupun inline di dalam profil.tls-authdengankey-direction.auth-user-pass, diisi di tab VPN atau dibaca dari file yang disebut di profil.- Cipher data AES-CBC dan AES-GCM (
cipher,data-ciphers), sertacomp-lzo.
Belum didukung. Selekta menolaknya dengan pesan yang menyebut nama pengaturannya, jadi kamu tidak akan mendapat tunnel yang setengah jalan:
tls-crypt,tls-crypt-v2,pkcs12dansecret(mode static key).verify-x509-name,http-proxy,socks-proxy,pull-filter.static-challenge(kode sekali pakai yang diketik saat login).compress, dan mode TAP (dev tap).
Kalau profilmu memakai salah satunya, minta profil lain ke admin VPN, atau pakai cara VPN sistem di bawah.
Alternatif: sambungkan seluruh Mac ke VPN
Kalau profilmu butuh pengaturan yang belum didukung Selekta, atau perusahaanmu mewajibkan app VPN sendiri, sambungkan Mac-mu dulu dengan app OpenVPN seperti OpenVPN Connect atau Tunnelblick. Lalu buat koneksi PostgreSQL di Selekta tanpa tab VPN: isi host dengan alamat privat, persis seperti database yang ada di jaringan lokal.
Bedanya: VPN sistem mengalirkan trafik Mac-mu (sering kali semuanya) lewat jaringan kantor dan biasanya butuh hak administrator untuk dipasang, sedangkan client bawaan Selekta hanya membawa satu koneksi ini.
Kalau gagal
Selekta menampilkan langkah VPN dan langkah database secara terpisah, jadi pesannya menunjukkan bagian mana yang gagal.
- "This VPN profile uses "tls-crypt", which Selekta does not support yet" (atau nama pengaturan lain): profil memakai fitur yang belum ada di client bawaan. Lihat daftar di atas, lalu minta profil lain atau pakai VPN sistem.
- "This VPN profile needs a username and password: fill them in on the VPN tab": profil berisi
auth-user-pass. Isi kredensial VPN di tab VPN. - "Rejected by the VPN server" di bawah VPN password: username atau password VPN salah, atau akunmu tidak diizinkan di VPN itu. Cek ke admin.
- "The VPN server … did not complete the connection after 10 s": server VPN tidak menjawab tepat waktu. UDP sering diblokir di jaringan tamu hotel dan kantor. Kalau admin menyediakan profil TCP (
proto tcp), coba itu. Batas waktunya bisa dinaikkan di tab Advanced. - "VPN server vpn.example.com:1194: …": Selekta sama sekali tidak bisa menjangkau server VPN. Cek baris
remotedi profil dan koneksi internetmu. - "db.internal.example could not be resolved through the VPN": DNS di VPN tidak mengenal nama itu. Pakai alamat IP database sebagai host, atau tanyakan nama internal yang benar ke admin.
- "The VPN profile CA certificate is not valid PEM" atau "The VPN client key is not valid PEM": file sertifikat atau key rusak atau tidak ada di sebelah profil. Unduh ulang profilnya.
- "VPN link lost": VPN terputus, misalnya setelah Mac tidur atau ganti Wi-Fi. Putuskan koneksi di navigator lalu konek lagi untuk memulai sesi VPN baru; kalau terus terjadi, cek jaringanmu.
- Connection refused di port 5432 padahal VPN tersambung: VPN-nya jalan, tapi PostgreSQL tidak menerima koneksi dari jaringan VPN. Admin database perlu mengizinkan rentang alamat VPN di
listen_addressesdanpg_hba.conf.