Living life and Make it Better

life, learn, contribute

Endy Muhardin

Software Developer berdomisili di Jabodetabek, berkutat di lingkungan open source, terutama Java dan Linux.

VPN dengan Wireguard Bagian III : Expose Aplikasi di Laptop

Penggunaan VPN kali ini sangat bermanfaat bagi para programmer. Seringkali kita membuat aplikasi yang tentunya kita buat di laptop kita sendiri. Setelah kode program kita tulis, kita biasa jalankan aplikasinya di laptop kita dengan alamat http://localhost dan kita akses dari browser di laptop kita sendiri.

Akan tetapi, ada kalanya kita ingin mempresentasikan aplikasi kita tersebut untuk diakses oleh orang lain melalui internet. Atau kita ingin menyuruh orang lain mengakses aplikasi kita dari smartphone atau gadget lain yang menggunakan paket data. Karena browser/aplikasi yang mengakses aplikasi kita berjalan di perangkat yang berbeda, bahkan di jaringan yang berbeda juga (wifi rumah vs wifi kantor, wifi rumah vs paket data). Oleh karena itu kita tidak bisa menggunakan alamat http://localhost untuk mengaksesnya.

Solusinya adalah menghubungkan laptop kita ke VPN gateway yang memiliki IP public, kemudian membuat konfigurasi routing dan forwarding untuk meneruskan request ke port tertentu di gateway ke komputer kita di rumah.

Skema tersebut diilustrasikan seperti pada gambar berikut

VPN Expose Laptop

Langkah-langkah implementasinya sebagai berikut:

Lanjut membaca ...


VPN dengan Wireguard Bagian II : Internet Proxy

Pada artikel bagian kedua ini, kita akan membuat internet gateway atau proxy. Ada banyak kegunaan dari internet proxy ini, diantaranya:

  • mencegah ISP kita untuk memasukkan iklan-iklan yang mengganggu
  • mencegah pengelola jaringan internet di negara tertentu untuk memantau kegiatan internet kita. Ini berguna misalnya untuk jurnalis yang bertugas di daerah yang otoriter, sehingga rawan diciduk ketika menulis artikel yang sensitif
  • mengakses layanan yang hanya ada di negara tertentu. Misalnya hiburan streaming yang pilihan tayangannya berbeda antar negara
  • mengetes aplikasi yang kita buat, apakah berjalan dengan baik ketika diakses dari luar negeri

Skenario ini bisa diilustrasikan seperti pada gambar berikut

VPN Internet Proxy

Langkah-langkah implementasinya sebagai berikut:

Lanjut membaca ...


VPN dengan Wireguard Bagian I : Pengenalan Wireguard

Sejak belasan tahun yang lalu, saya sudah merekomendasikan pentingnya menguasai konsep dan konfigurasi jaringan, khususnya administrasi jaringan dan server dengan Linux. Di penghujung 2020 ini, rekomendasi tersebut terasa lebih relevan seiring dengan semakin naik daunnya budaya DevOps.

Untuk itu, kita akan menutup tahun 2020 ini dengan membahas implementasi VPN yang sekarang sedang naik daun, yaitu WireGuard. WireGuard adalah aplikasi VPN yang sangat mudah digunakan. Jauh lebih sederhana daripada pendahulunya seperti OpenVPN dan IPSec. Selain itu, performanya juga jauh melampaui para pendahulunya tersebut. Bahkan Linus Torvalds sendiri memuji kode program dan kesederhanaan WireGuard, padahal Linus biasanya terkenal tajam lidahnya.

Informasi lebih rinci mengenai keunggulan Wireguard dapat dibaca di artikel ini, artikel ini, dan artikel ini. Tapi tidak ada yang sempurna di dunia ini, Wireguard juga memiliki beberapa masalah dalam urusan privasi, seperti dibahas di artikel ini. Walaupun demikian, untuk keperluan yang akan kita bahas di sini, privasi tidak terlalu menjadi pertimbangan kita, karena di hampir seluruh skenario yang akan kita bahas komputer dan jaringan yang terlibat adalah milik kita sendiri.

Dalam rangkaian artikel kali ini, kita akan membahas beberapa skenario penggunaan VPN yang umum digunakan oleh masyarakat umum dan juga software developer, yaitu:

  • Membuat proxy internet
  • Mengakses jaringan internal kantor dari luar kantor
  • Membuka akses ke aplikasi yang berjalan di laptop untuk diakses dari internet
  • Menghubungkan aplikasi yang berjalan di cloud services ke database yang berjalan di data center on premise

Disclaimer : rangkaian artikel ini mengasumsikan pembaca sudah menguasai dasar-dasar jaringan komputer dan pengoperasian Linux dengan command line/terminal.

Sebelum masuk ke konfigurasi yang kompleks, terlebih dulu kita akan mempelajari konsep dasar dari aplikasi Wireguard. Kita akan berlatih menghubungkan dua atau beberapa host dengan Wireguard. Untuk latihan ini, kita bisa menggunakan dua laptop, satu laptop dan satu VPS di cloud, ataupun satu laptop dan satu smartphone.

Skemanya dapat digambarkan sebagai berikut

VPN Peers

Lanjut membaca ...


Kirim SMS OTP dengan Gammu

Project yang saat ini kita sedang tangani, memiliki fitur untuk otentikasi menggunakan OTP. Dikirim dengan SMS dan Email. Tentunya sebelum fitur OTP aktif, kita juga harus verifikasi dulu nomor handphone dan emailnya.

Fitur verifikasi dan OTP ini tentunya mengharuskan aplikasi kita untuk bisa mengirim email dan SMS. Cara untuk mengirim email sudah saya bahas pada artikel terdahulu. Jadi pada artikel ini, kita akan membahas cara mengirim SMS dari kode program kita.

Lanjut membaca ...


2 Mahzab Founder Startup

Dari sejak jaman kolonial dulu sampe milenial sekarang, bikin bisnis itu ada 2 mahzab:

Mahzab A. Bikin dari nol, besarkan sampai puluhan tahun. Ngomongnya cashflow, profitability, ROA, ROE. Retensi founder dan karyawan biasanya tinggi, turnover rendah. Orientasinya pertumbuhan organik. Yang disebut sukses adalah perusahaan jalan sustainable, founder tetap pegang saham, karyawan makmur sejahtera.

Mahzab B. Bikin seminim mungkin, pitching setinggi mungkin. Ngomongnya elevator pitch, valuation, growth hacking, burn rate, term sheet. Retensi karyawan biasanya rendah, turnover tinggi, bahkan founder pun pada akhirnya entah kemana. Orientasinya funding series. Yang disebut sukses adalah perusahaan terjual, entah ke bigger company, atau IPO.

Nah, Anda mau jadi founder pakai mahzab mana??

Founder mahzab A biasanya :

  • Kalau bisnisnya rugi dan susah diperbaiki, dijual
  • Bahagia kalau berhasil mengakuisisi

Founder mahzab B biasanya :

  • Kalau bisnisnya untung, dijual
  • Bahagia kalau berhasil diakuisisi

Contoh founder mahzab A :

  • Warren Buffet
  • Bill Gates

Contoh founder mahzab B :

  • Elon Musk
  • Jan Koum

Ada yang berpendapat bahwa Musk masuk mahzab A. Tapi menurut pendapat saya, kalau kita lihat track recordnya di Wikipedia, perusahaan-perusahaan dia masih termasuk kategori bakar-bakar duit. Sedangkan perusahaan bikinan dia yang sudah mapan, yaitu PayPal, sudah lama dijual ke eBay. Jadi ya tentu saja dia masuk kategori B.

Mahzab mana yang lebih benar? Wallahu a’lam. Tidak harus dicari siapa benar siapa salah. Tidak juga cuma boleh pilih salah satu. Bikin banyak perusahaan, sebagian dijalankan dengan mahzab A dan sebagian B juga bebas saja :D