Trusted Platform Module (TPM) adalah teknologi kriptografi berbasis hardware. TPM digunakan untuk memastikan proses boot tidak dimodifikasi (secure boot), dan digunakan oleh sistem operasi untuk enkripsi (misalnya Bitlocker) dan menyimpan informasi user (Windows Hello).
Di dalam komputer, TPM ini bisa berupa sebuah chip, atau sudah ada di dalam CPU. Prosesor Intel sejak Skylake/Intel Gen 6, dan AMD (sejak AM4) sudah punya fitur TPM built in. Kita bisa menggunakan fitur TPM ini untuk key SSH.
Ketika berbicara tentang SSH, ada banyak implementasinya (misalnya dropbear, tinyssh, dsb), saya akan menggunakan spesifik OpenSSH di tulisan ini.OpenSSH ini tersedia di hampir semua platform, termasuk juga Windows.
Intinya di sini saya akan membahas bagaimana membuat SSH Key yang tidak bisa dicopy, dan kita cukup menggunakan PIN atau sidik jari untuk login SSH.
Banyak Modem WIFI 4G (mobile hotspot) memakai Linux dan bisa dihack, misalnya: IMEI bisa diganti, Band yang aktif bisa dibatasi (agar lebih cepat pencarian signalnya), bisa dibuat agar bisa blokir iklan, dan memberi peringatan (via telegram) agar tidak lupa mematikan devicenya.
Sebelum kecewa: saya tidak akan memberikan skrip penggantian IMEI. Ini merupakan hal yang illegal, tapi saya akan memberikan petunjuk mengenai dasar teorinya saja.
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.
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.
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.
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.
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.
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: saya ingin agar NAS saya tetap membackup data-data terbaru dari Internet ke harddisk lokal (agar tidak apa-apa jika 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
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 agak berbeda di tiap BIOS: “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).
UPS yang agak mahal biasanya gampang diganti baterenya, sedangkan UPS murah sering kali semuanya disegel jadi sulit dibuka. Selain itu UPS murah juga tidak bisa dikalibrasi ulang setelah baterenya diganti (jadi UPS tidak tahu bahwa baterenya sudah baru).