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).
Ini cuma sekedar cerita: kadang instalasi sesuatu yang seharusnya sederhana bisa jadi rumit dan lama. Ini kisahnya tentang VMWare ESXi, sebuah Hypervisor dari VMWare. Penjelasan awamnya Hypervisor: ini seperti sebuah server khusus untuk menjalankan virtual machine.
Kalau kita menjalankan emulator VMware/VirtualBox/Parallel PC di Windows/Linux/Mac, ada sistem operasi utama (host) di mana kita menjelankan emulator dan ada sistem operasi yang kita install dalam VM. Sebuah hypervisor menggantikan peran sistem operasi, jadi hypervisor ini seperti sebuah OS sendiri yang hanya bisa menjalankan virtual machine.
Kenapa saya ingin menginstall ESXi? ada banyak alternatif sejenis seperti ProxMox, Xen, dsb. Saya ingin mempelajari lebih jauh karena saya lihat ESXi dipakai di banyak perusahaan. Berbagai lab pentest juga memakai solusi ini. Contoh: labnya Offsensive Security (yang mengeluarkan sertifikat OSCP, OSWE, dsb) juga memakai solusi ini.
ESXi yang sudah terinstal
Dari dulu saya belum pernah menginstall VMWare ESXi di hardware beneran (ESXi ini bisa diinstall di VMWare juga dengan nested virtualization). Tapi saya lakukan karena kebetulan ada hardware tersedia. Beberapa waktu lalu komputer yang dipakai Joshua sering error, jadi akhirnya Joshua diberi laptop lama Risna. Komputer dengan prosessor AMD ini setelah saya cek dengan memtest, ternyata salah satu keping memorinya error. Jadi saya belikan saja satu keping RAM lagi.
VMWare ESXi ini hanya disertifikasi untuk bisa berjalan di hardware dengan konfigurasi tertentu saja. Karena saya tadinya tidak merencanakan memakai komputer ini untuk ESXi, masalah mulai bermunculan.
Setelah tidak pulang beberapa tahun, rencananya saya akan pulang ke Indonesia bulan Juli. Saya jadi sadar bahwa banyak sekali hal yang sudah saya setup di sini, dan mungkin akan butuh akses berbagai komputer dan data saya dari Indonesia nanti.
Ada device/komputer yang ingin bisa diakses setiap waktu. Contohnya: asya ingin agar NAS saya tetap membackup data-data terbaru dari Internet ke harddisk lokal (agar tidak terjadi kasus account diblok seperti yang pernah saya alami). Andaikan internet di Indonesia sangat lancar, mudah dan bisa diandalkan, saya mungkin hanya akan butuh sebagian server saya ini di sini (misalnya server backup saja).
Untuk komputer yang ingin agar selalu menyala: harapannya adalah:
Komputer selalu on
Komputer tidak hang
Ada beberapa komputer yang hanya dibutuhkan sesekali. Contoh kasusnya: komputer powerful dengan RAM besar yang punya GPU dan hanya dipakai sesekali untuk traning AI atau cracking password. Untuk ini yang diinginkan adalah:
bisa menyalakan komputer jika dibutuhkan
bisa mematikan komputer jika tidak dibutuhkan.
bisa troubleshooting jika ada masalah startup
Contents
Setting BIOS: After Power Loss
Jika listrik mati dan kemudian menyala lagi, kita ingin agar komputer otomatis menyala lagi. Cara paling sederhana yang tidak butuh modal ekstra adalah mengganti setting di BIOS. Nama settingnya: “After Power Loss”, “AC Power Recovery” dan sejenisnya, intinya adalah kita ingin agar jika power dicolok, komputer langsung menyala.
Setelah settingnya diaktifkan, coba cabut power dan colok lagi. Seharusnya komputer akan langsung menyala. Perlu diperhatikan: kadang ini tidak selalu berhasil. Dua kegagalan yang pernah saya temui:
Ketika power ON/OFF berkali-kali dalam waktu singkat, kadang setting di komputer saya akan tereset menjadi off
Batere CMOS lemah dan setting BIOS ter-reset
Jika komputer yang dipakai adalah Windows, dan gagal boot berkali-kali (baru mulai booting lalu listrik mati lagi) maka kadang bisa gagal boot atau masuk ke safemode.
Uninterruptible Power Supply (UPS)
Supaya bisa tetap hidup walau mati listrik, ya tentunya menggunakan UPS. Dengan cara ini komputer saya sudah ada yang uptime-nya sampai lebih dari 500 hari.
Biasanya gabungan antara UPS dan setting BIOS sudah cukup untuk membuat komputer tetap menyala. UPS ini kapasitasnya terbatas, jadi hanya akan mengurangi kemungkinan komputer restart karena mati lampu sebentar. Jika UPS habis batere, lalu listrik menyala lagi, maka komputer otomatis hidup lagi dengan setting BIOS yang dijelaskan sebelumnya.
Tapi kemarin ketika hujan badai besar, listrik nyala dan mati berkali-kali (mungkin sampai 20 kali dalam waktu sangat singkat) dan hasilnya: UPS-nya sempat gagal juga dan komputernya restart berkali-kali.
Saya ingat waktu ke Medan dulu, mati listrik ini sering terjadi. Di sini saya lebih beruntung: sejak 2019, di komplek ini listrik tidak pernah mati lama. Terakhir kali di bulan Mei 2019 ada pemadaman 8 jam.
Jangan lupa kalau batere UPS juga punya batas usia. UPS saya merk APC bisa diakses statusnya dengan apcaccess. Ternyata kapasitas batere salah satu UPS saya sudah sangat sedikit, sehingga cepat sekali mati (padahal baru 2 tahun).
Akses info UPS merk APC dengan apcaccess
UPS yang agak mahal biasanya gampang diganti baterenya, sedangkan UPS murah sering kali semuanya disegel jadi sulit dibuka. Selain itu UPS mudah juga tidak bisa dikalibrasi ulang setelah baterenya diganti (jadi UPS tidak tahu bahwa baterenya sudah baru).
VPN itu apa sih? Virtual Private Network adalah teknologi untuk membuat serangkaian perangkat terhubung ke jaringan virtual yang sama. Jadi seolah-olah berbagai device tergabung di satu jaringan. Di posting ini saya akan membahas VPN dari sudut pandang user, sampai kalau ingin membuat VPN sendiri.
VPN banyak digunakan di dunia corporate atau enterprise. Penggunaan yang umum adalah untuk menghubungkan berbagai kantor regional dengan kantor lain atau dengan kantor pusat. VPN juga dipakai oleh remote worker untuk mengakses resource kantor (server, printer, dsb) yang tidak bisa diakses dari umum. Dengan koneksi VPN, komputer rumah atau laptop masuk ke jaringan perusahaan. Jika browsing via VPN maka , seolah-olah kita mengakses internet dari perusahaan tersebut.
Beberapa bank juga menggunakan koneksi VPN untuk partnernya, jadi berbagai perusahaan yang ingin mengakses sistem bank harus lewat VPN. Ini hanya layer keamanan tambahan, selain itu masih digunakan password dan juga token.
Sebagian orang ingin menghosting sendiri berbagai hal di rumah (atau kantor kecil), baik itu web, email, maupun layanan lain. Biasanya koneksi ISP tidak akan memberikan IP publik yang statik tanpa membayar ekstra (biasanya mahal), jadi biasanya banyak trik digunakan supaya server rumah bisa diakses dari luar.
Sebagai catatan sebelum menggunakan trik yang ada di sini: pertimbangkan memakai VPS atau dedicated server. Membuat server di rumah punya banyak kelemahan jika Anda tidak mengerti apa yang Anda lakukan:
Koneksi internet dan pasokan listirk di rumah biasanya kurang reliable dibanding data center
Jika salah konfigurasi, hacker bisa lebih mudah masuk ke jaringan rumah
Mengkonfigurasi semuanya sendiri cukup melelahkan/membuang banyak waktu
Dynamic DNS
Beberapa layanan tertentu seperti web cukup memakai dynamic DNS dan tidak perlu server eksternal tambahan. Artinya sebuah nama domain selalu diupdate IP-nya dengan IP terbaru saat ini. Untuk mengupdate ini bisa digunakan berbagai layanan Dynamic DNS dan server di rumah perlu diinstall software untuk mengupdate pemetaan nama ke IP.
Gambarannya kira-kira seperti ini:
Masalah dengan pendekatan ini adalah: akan ada jeda ketika ada update nama ke IP. Jeda ini karena DNS server akan mengcache informasi IP. TTL terkecil yang bisa diset biasanya 30 detik dan berbagai layanan DNS biasanya mengeset waktu minimumnya 1 menit. Jadi ketika ada pergantian IP, sekitar 1 menit kemudian kita baru bisa mengakses nama tersebut dengan IP baru.
Saat ini ada banyak sekali solusi VPN yang tersedia dengan segala kelebihan dan keterbatasannya. Beberapa contoh solusi yang populer dan gratis adalah OpenVPN, strongSwan, WireGuard, berbagai implementasi PPTP, tinc, dan VPN via SSH. Posting ini akan membahas mengenai tinc yang memiliki fitur mesh networking.
Beberapa perbedaan dari berbagai solusi VPN ini adalah:
Support platformnya. Contoh: saat ini wireguard tidak memiliki client di Windows, jadi kalau Anda memakai Windows, ini jelas tidak akan dipertimbangkan.
Kemudahan instalasinya (contoh: VPN melalui SSH cukup rumit setupnya, terutama di Windows)
Kecepatannya (ini biasanya hanya jika Anda memakai link dengan kecepatan tinggi) dan CPU usagenya (jika memiliki komputer dengan spesifikasi rendah)
Keamanannya, walau secara praktis serangan terhadap berbagai protokol VPN ini jarang/sulit dilakukan kecuali pada protokol kuno seperti PPTP.
Selain berbagai perbedaan teknis, pertimbangan lain memilih VPN adalah: apakah protokol VPN tertentu atau port tertentu diblok oleh ISP. Contohnya di ISP saya saat ini VPN dengan PPTP diblok, jadi harus menggunakan yang lain.
Apache Guacamole adalah clientless remote desktop gateway. Atau mudahnya: jika kita menginstall ini di sebuah gateway (atau di server remote), kita bisa mengakses Windows (via RDP), Linux (via VNC), atau SSH ke manapun dengan menggunakan browser saja.
Saat ini saya masih memakai Mini PC Router yang dibeli sekitar 2 tahun lalu. Mini PC ini cukup powerful untuk menjalankan berbagai aplikasi (memorinya 4 GB, dengan SSD 120 GB) termasuk juga Apache Guacamole yang memakai Java. Meskipun dalam 99% kasus saya lebih suka memakai aplikasi SSH langsung, tapi Guacamole ini sangat berguna ketika butuh akses GUI.
Dengan chrome melakukan koneksi ke rumah, lalu menjalankan Firefox
Sebelum memakai Guacamole saya memakai Team Viewer, tapi dulu sempat ada kecurigaan bug di team viewer yang memungkinkan orang masuk ke komputer kita. Selain masalah bug itu, TeamViewer juga kadang error ketika melakukan remote connection ke Linux. Solusi berikutnya yang saya coba adalah SSH + Port forwarding plus remote desktop dan VNC viewer. Hal ini cukup merepotkan, jadi jarang saya lakukan.
Sekarang dengan browser saja saya bisa melakukan koneksi ke rumah via Guacamole ke server Windows dan juga Linux. Untuk Linux saya menggunakan beberapa VNCServer (di satu server) untuk tujuan tertentu. Misalnya ada satu VNCServer untuk pentesting (yang memakai OWASP ZAProxy dengan GUI).
Saya juga memasang guacamole di server dedicated di Eropa. Kadang download sesuatu lebih cepat dilakukan dari server di Eropa. Dalam 90% kasus biasanya download bisa dilakukan di command line, tapi ada website yang melakukan banyak proteksi sehingga sulit dilakukan.
Contoh proteksi downloadnya:
Hanya boleh ada 1 koneksi setiap waktu
Harus memakai Cookie dan Cookienya terikat pada IP tertentu (jadi ketika dicopy paste ke server, jadi tidak valid)
Harus memakai user agent tertentu (jadi jika memakai command line, user agent harus dicopy persis)
Download menggunakan Javascript dan file didekrip di level Javascript
Daripada menghabiskan waktu mengakali, yang saya lakukan adalah:
membuka guacamole
memilih koneksi VNC ke server di Eropa
menjalankan browser di dalam koneksi VNC
mendownload file via browser yang berjalan di cloud
mentransfer file dari server ke rumah
Sepertinya langkah tersebut merepotkan, tapi dalam kasus tertentu bisa menghemat waktu sangat banyak. Kadang download yang butuh 3 jam bisa dilakukan dalam 10 atau 15 menit.