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.

Tailscale

Ini adalah tool yang menurut saya sangat sederhana dan bisa dipakai oleh orang awam. Tailscale ini memakai protokol wireguard (yang terbuka), tapi diberi kemudahan konfigurasi. Saya memakai ini untuk menghubungkan berbagai komputer saya.

Cukup install tailscale di satu komputer, install tailscale di komputer lain, lalu dua-duanya login dengan akun yang sama. Hasilnya: sekarang kedua komputer itu masuk ke satu jaringan (dengan IP 100.x.x.x). Artinya kedua komputer itu sekarang bisa berkomunikasi, bertukar file, dan bahkan bisa memakai koneksi internet komputer yang lain dengan fitur exit node.

Tidak harus dua komputer, dua ponsel juga bisa dihubungkan. Contohnya: saya bisa menghubungkan ponsel Android dan iOS yang saya pakai. Dari iOS saya bisa melakukan ssh ke server SSH yang berjalan di Termux. Jika di WIFI yang sama tentunya ini mudah, tapi ini dilakukan dengan kedua ponsel di jaringan 4G.

SSH dari iPhone ke Android lewat 4G, tidak di WIFI yang sama.

Di versi gratisnya, kita bisa menambahkan sampai 50 komputer di akun Tailscale, jadi 50 komputer itu semuanya seperti di satu jaringan. Jika saya punya laptop dan desktop di jaringan rumah yang sama, maka tailscale akan cukup pintar untuk bisa tahu itu, dan koneksi bisa dilakukan tanpa lewat server.

Jika mungkin, server Tailscale hanya mengkoordinasikan koneksi antar semua komputer saja, dengan berbagai trik, koneksi yang dilakukan antara dua client biasanya tidak memakan bandwith milik Tailscale. Untuk yang gagal koneksi langsung antar client, maka tailscale akan menggunakan server DERP (Designated Encrypted Relay for Packets) dan di kasus ini paket akan lewat server Tailscale.

Sebagai catatan: Tailscale ini agak “berat” (memakan CPU yang lumayan) karena mengimplementasikan seluruh protokol Wireguard dan stack TCP/IP di mode user dengan Golang. Wireguard di level kernel akan ringan dan cepat.

Exit node

Saya bisa login di komputer di Indonesia, login di Thailand, lalu saya set exit node komputer Thailand adalah komputer Indonesia. Ketika browsing internet, seolah-olah saya ada di Indonesia (karena browser akan menggunakan koneksi komputer di Indonesia untuk terhubung ke internet) dan bisa menonton konten Indonesia (misalnya Netflix atau Disney Indonesia).

Kita bisa mensetup beberapa komputer jadi exit node, tiap client bisa memilih exit node yang akan dipakai. Defaultnya adalah tanpa exit node, memakai koneksi internet saat ini.

Tailscale SSH

Ada fitur-fitur ekstra juga yang dimiliki tailscale, misalnya: kita bisa mengaktifkan built in SSH server (hanya untuk Linux dan Mac, belum tersedia untuk Windows), sehingga bisa konek ke komputer meskipun di server itu tidak diinstall SSH.

Harap diperhatikan bahwa autentikasi SSH yang digunakan oleh Tailscale tidak akan mengikuti konfigurasi server SSH yang sudah ada di server. Pelajari dulu detailnya sebelum memakai fitur ini.

Taildrop

Untuk sekedar bertukar file, ada yang namanya Taildrop untuk mengirim file dari satu device ke yang lain. Mengirim file dari/ku iPhone/Android juga bisa dilakukan dengan Taildrop.

Tailscale Funnel

Tailscale Funnel (pake F), adalah fitur yang mirip dengan Cloudflare tunnel untuk HTTPS, jadi kita bisa mempublish konten web server lokal ke internet. Saat ini fiturnya masih terbatas dan kita tidak bisa memakai nama domain custom.

Subnet router

Tailscale juga bisa menghubungkan dua network, jadi misalnya kita bisa mensetup supaya semua komputer/server kantor bisa diakses dari rumah. Tentunya ini cukup bahaya kalau sebuah kantor tidak membatasi instalasi software Tailscale ini.

Jika karyawan nekat menginstall Tailscale dengan akun pribadi dan mengaktifkan subnet router di komputer kantor, maka ini bahaya. Jika laptop karyawan – yang bisa menghubungi semua server – dicuri orang, maka dampaknya akan gawat. Attacker akan mudah masuk ke jaringan kantor yang sudah diproteksi susah payah oleh admin.

Headscale

Semua clientnya Tailscale (kecuali versi iOS) sifatnya terbuka, jadi bisa dikompilasi sendiri. Server DERP nya juga terbuka, hanya server koordinasi saja yang tidak terbuka.

Saat ini ada implementasi open source server koordinasi ini yang namanya Headscale. Dengan Headscale, kita bisa menghosting sendiri semuanya tanpa membayar apapun ke Tailscale dan semua pake tailscale tidak masuk ke server mereka.

Saya sendiri sudah mencoba Headscale, tapi untuk keperluan saat ini, memakai Tailscale langsung lebih sederhana dan mudah.

Zero Tier

Software ini sebenarnya mirip dengan Tailscale, ada sedikit kelebihan, misalnya bisa mensetup IP addres range selain 100.x.x.x. Tapi saat ini fitur-fiturnya menurut saya kurang dari Tailscale.

Perbedaan utama adalah: Tailscale memakai protokol Wireguard standard yang sudah teruji, sementara zero tier memakai protokol custom. User interface Zero Tier menurut saya juga lebih rumit dibandingkan Tailscale (walaupun ada yang menganggap ini lebih gampang).

ZeroTier diimplementasikan menggunakan C/C++, jadi bisa sedikit lebih cepat dari Tailscale. ZeroTier juga mulai menggunakan Rust, jadi di masa depan berpotensi lebih aman dan cepat dari Tailscale.

Ngrok

Ngrok ini merupakan produk sudah agak lama, dan fokusnya untuk software development. Kita bisa membuat tunnel HTTP/HTTPS dan TCP dengan mudah (seperti Cloudflare Quick Tunnel). Jika ingin memakai custom domain, perlu membayar ekstra.

Menurut saya fitur tunnel TCP-nya masih paling sederhana dibandingkan produk yang lain. Jika saya perlu membantu orang melalui SSH, biasanya saya minta install ngrok, jalankan, copy paste ke saya nama domain dan portnya, maka saya langsung bisa konek ke orang tersebut.

Penutup

Silakan memakai software manapun yang sesuai kebutuhan, tapi perhatikan juga bahwa software ini semuanya punya risiko. Software-software ini memudahkan kita mengakses device lain, tapi jika salah satu device compromised (dicuri, dihack), maka akan bisa mengakses semua device yang kita miliki.

Jadi intinya: baca dan pahami dengan teliti software yang dipakai. Kalau tidak yakin 100% dengan keamanan, matikan koneksi jika tidak dibutuhkan (misalnya: logout Tailscale di laptop jika memang tidak ingin menggunakan jaringan lain).

Sebagai tambahan, Tailscale punya halaman yang membandingkan teknologi mereka dengan berbagai pesaingnya: Compare ยท Tailscale

Tinggalkan Balasan

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses.