Wireguard, Tailscale, ZeroTier dan ngrok

Ketika membuat posting Cloudflare Tunnel, banyak yang bertanya dan membandingkan ini dengan berbagai teknologi lain. Nah di posting ini saya akan membahas beberapa teknologi lain seputar tunnel dan VPN .

Wireguard

Ini adalah teknologi VPN yang sederhana dan cepat. Spesifikasinya cukup pendek dan sudah diimplementasikan di kernel berbagai sistem operasi, clientnya tersedia di berbagai sistem operasi juga, termasuk di iOS dan Android. Saya bahas sedikit tentang Wireguard dulu karena ini jadi dasar untuk Tailscale.

Wireguard ini cukup sederhana sehingga bisa dipakai untuk IOT, misalnya sudah ada implementasi Wireguard untuk ESP32. Tapi bagian ini tidak akan saya bahas sekarang, mungkin di posting lain.

Wireguard hanya menangani koneksi dari satu titik ke titik lain. Contoh: saya bisa setup server wireguard, lalu client pertama bisa konek ke server itu. Client lain juga bisa konek ke server situ. Atau bisa saya set Wireguard di dua server supaya keduanya seolah-olah di jaringan yang sama.

Ada beberapa keterbatasan Wireguard: jika client pertama ingin konek ke client kedua, maka koneksi dilakukan melalui server (tidak bisa langsung dari client pertama ke kedua). IP sebuah server harus fixed IP, jika memakai dynamic DNS dan IP server berubah di tengah-tengah koneksi, maka kita perlu disconnect lalu reconnect dengan IP yang baru.

Setup Wireguard tidak terlalu sulit (jika dibandingkan openvn misalnya), tapi juga tidak sederhana untuk orang awam. Perlu setup server, perlu setup key, copy paste key, distribusi konfigurasi dengan membuat file atau menggenerate QR (untuk mobile), dsb. Sudah ada beberapa proyek untuk menyederhanakan interface ini, tapi tetap tidak semudah teknologi yang lain.

Lanjutkan membaca “Wireguard, Tailscale, ZeroTier dan ngrok”

Cloudflare Tunnel untuk Self Hosting

Saya sudah memakai Cloudflare sejak sekitar 10 tahun yang lalu dan tiap tahun biasanya selalu ada fitur baru. Tahun 2020, Cloudflare memperkenalkan Cloudflare Tunnel, yang salah satu kegunaanya adalah untuk membuat situs lokal kita bisa diakses internet. Ada banyak kegunaan lainnya, misalnya bisa untuk melakukan SSH atau remote desktop ke mesin lokal dari Internet atau untuk mengakses intranet, tapi yang akan saya bahas di tulisan ini hanya untuk web hosting saja.

Tunnel cloudflare

Saya sudah pernah menjelaskan apa itu Cloudflare Tunnel di posting Blog ini sekarang bertenaga surya. Secara singkat: salah satu kegunaan Cloudflare Tunnel adalah membuat website di server internal (tidak memiliki IP public) bisa diakses dengan nama domain publik. Caranya dengan menjalankan program cloudflared yang akan melakukan koneksi ke server cloudflare dan koneksi dari IP publik akan masuk melalui cloudflared.

Ini berarti:

  • Tidak mungkin salah konfigurasi sehingga website bisa diakses melalui public IP membypass cloudflare (karena web servernya memang tidak punya IP publik)
  • Kita bisa memakai server di rumah yang memakai dynamic IP (atau bahkan di Android dengan termux)

Selain itu Cloudflare tunnel mendukung autentikasi, jadi misalnya sebuah website punya area /admin yang hanya boleh diakses admin. Kita bisa mensetup agar ketika diakses akan muncul halaman autentikasi dari cloudflare.

Autentikasi Cloudflare bisa berdasarkan email, melalui login Google, login Github ataupun yang lain. Ini merupakan layer keamanan tambahan, andaikan penyerang ingin membrute force password, atau ada kelemahan SQL Injection atau yang lain di halaman login admin, maka penyerang harus bisa membypass dulu autentikasi dari Cloudflare.

Lanjutkan membaca “Cloudflare Tunnel untuk Self Hosting”

Blog ini sekarang bertenaga surya

Blog ini sudah 19 tahun umurnya. Hari ini blognya pindah ke server rumah, memakai tenaga surya (belum seluruh rumah memakai tenaga surya, tapi server dan modem internetnya bertenaga surya). Dulu kami mulai blog ini menyewa shared hosting yang cuma 5 ribu rupiah per bulan, lalu naik ke level harga lebih tinggi, sampai memakai VPS, dan bahkan dedicated server.

Blog ini sekarang dihost di Orange Pi 5.

Dari dulu saya memakai dedicated server karena ada proyek-proyek yang saya kerjakan. Ada proyek yang saya ceritakan di sini (misalnya BarInstall dan Tinycontroller) dan banyak yang tidak dituliskan. Dulu dedicated server 20an USD/bulan sudah cukup, tapi sekarang harga bulanan dedicated server makin naik. Hosting dedicated termurah ada di Eropa (Hetzner, Online.net), tapi di Eropa harga listrik makin mahal, jadi tahun lalu semua menaikkan harga.

Walau mahal, akhir-akhir ini saya masih hosting blog di dedicated server karena sekalian dipakai di proyek lain. Sekarang ini karena saya tidak lagi ada proyek yang butuh dedicated server dengan spesifikasi tinggi, saya tidak ingin membayar server mahal cuma untuk blog saja. Setelah banyak pertimbangan, akhirnya hostingnya dipindahkan ke rumah saja sekalian memakai tenaga matahari.

Ini merupakan pengembangan dari eksperimen website bertenaga matahari di akhir tahun 2021. Waktu itu saya bereksperimen dengan satu blog kecil bertenaga surya memakai Pi Zero W. Sekarang bukan cuma satu blog kecil, tapi hampir semua website yang kami miliki sudah pindah ke rumah, dengan tenaga surya. Plus modem fiber optiknya juga bertenaga surya.

Lanjutkan membaca “Blog ini sekarang bertenaga surya”

Memakai Desktop Linux ARM64

Daripada capek membawa laptop di hari-hari Work From Office, saya memilih meninggalkan Orange Pi 5 di kantor. Orange Pi 5 adalah sebuah Single Board Computer (SBC) ARM64 dengan RAM 16GB (saya pasang NVME 120GB). Dulu saya membeli ini ketika masih promo, hanya 105 USD (belum termasuk NVME), sekarang harganya sudah naik (silakan cek AliExpress untuk harga terbaru).

Desktop kantor

Saya sudah lama memakai ARM64 sebagai server, dan juga memakai Laptop Pinebook sejak 2017. Sampai sekarang Linux di ARM64 masih belum 100% bebas masalah, tapi sudah cukup untuk pekerjaan saya. Saya hanya akan membahas memakai desktop untuk bekerja, karena beberapa hal yang menyangkut hiburan sulit dilakukan di Linux (misalnya nonton Netflix atau main game).

Lanjutkan membaca “Memakai Desktop Linux ARM64”

Menambahkan Teknologi AI ke IP Camera rumah

Sejak memakai bel rumah yang tidak perlu batere, kami sudah berhasil menyelesaikan masalah lupa mengganti batere bel wireless di pagar. Tapi ada masalah baru: tukang paket sering memakai motor dan malas turun dari motor untuk menekan bel rumah. Mereka biasanya akan membunyikan klakson, menunggu kami keluar.

Paket!!!

Saya sering tidak mendengar tukang paket, apalagi kalau sedang di kamar atas . Risna juga sering tidak dengar jika sedang memasak. Jadi kadang tukang paketnya perlu nelpon agar kami keluar.

Khusus untuk Pos dari Thailand Post Office, mereka tidak pernah menelpon mereka punya opsi kalau kami tidak di rumah: menaruh surat agar kami mengambil di kantor pos, atau dititipkan ke tetangga. Kalau kami tahu ada paket hari itu (dari statusnya yang delivered), maka kami perlu tanya ke tetangga.

Lanjutkan membaca “Menambahkan Teknologi AI ke IP Camera rumah”

Upgrade jaringan rumah ke 2.5GbE

Baru-baru ini saya mulai mengupgrade jaringan di rumah ke 2.5 Gbps. Ini sekedar catatan mengenai: kenapa 2.5GbE (kenapa tidak 5GbE atau 10GbE), dan hardware yang dipilih saat ini serta pengalaman yang saya alami dalam proses upgrade ini.

TP-Link 2.5Gbps Switch

Catatan singkat: huruf b kecil artinya bit, jadi 1Gbps = 1 milyar bit per detik. Satu byte sama dengan 8 bit, B besar menyatakan byte. Jadi kecepatan 1 gigabit per second (1 Gbps) setara dengan 125 MBps (megabytes per second). Tapi karena ada overhead header ethernet, header IP, header TCP, dsb, kecepatan realnya kurang dari 125 MBps(dari pengalaman: sekitar 100-110 MBps).

Lanjutkan membaca “Upgrade jaringan rumah ke 2.5GbE”

Mengontrol Input Monitor dengan Gamepad

Saat ini saya memakai 3 komputer sekaligus: PC Windows di samping meja, Mac Mini M1, dan Rock 5B (saya bahas di posting blog ini). Saya memakai monitor Philips 278E 4K, yang memiliki 3 input: DisplayPort (DP), HDMI 1 dan HDMI2. Saya sering kesal: tidak mudah pindah input monitor .

Tiga komputer
Lanjutkan membaca “Mengontrol Input Monitor dengan Gamepad”