Jangan skip bab ni. Serius.
Saya tahu, bila anda baru excited nak setup homelab, keselamatan bukan benda pertama yang anda fikir. “Ala, homelab je, siapa nak hack?” Percayalah, internet tidak peduli sama ada server itu milik Google atau milik anda di bilik tidur. Bot-bot jahat scan IP secara automatik 24/7. Saya pernah setup server baru dan dalam masa 10 minit dah nampak percubaan brute force SSH dalam log.
Apa yang anda akan belajar:
Nota Beginner: Keselamatan yang baik tidak semestinya kompleks. Selalunya ia bermula dengan kurang buka port, kurang guna default setting, dan lebih disiplin dalam update. Empat perkara je dulu: update, firewall, kata laluan kuat, backup.
Kalau anda rasa overwhelmed dengan semua maklumat keselamatan ni, fokus pada empat perkara ni dulu:
admin123
Elakkan buka port ke internet kalau belum benar-benar faham kesannya. Kalau perlu akses dari luar, utamakan VPN berbanding Port Forward untuk banyak service.
Keselamatan bukan ciri tambahan yang boleh anda “pasang kemudian.” Ia adalah sebahagian daripada reka bentuk homelab dari hari pertama.
Bayangkan scenario ni: seseorang dapat akses ke homelab anda. Mereka boleh akses NAS anda (semua fail peribadi), guna server anda untuk mining crypto (bil elektrik naik mendadak), atau lebih teruk — guna rangkaian anda sebagai launching pad untuk serangan ke tempat lain.
Sebab itu, kita ambil pendekatan yang praktikal dan berlapis. Kalau satu lapisan gagal, lapisan lain masih melindungi.
Konsep ni dipanggil defense in depth — pertahanan secara mendalam. Macam rumah yang ada pagar, kunci pintu, alarm, DAN anjing. Kalau pencuri lepas pagar, masih ada kunci. Kalau lepas kunci, masih ada alarm.
Firewall — Barisan Pertahanan Pertama:
Prinsip utama: Default deny — sekat semua, benarkan yang perlu sahaja. Jangan terbalik!
Peraturan Firewall Asas: 1. Sekat semua trafik masuk (default) 2. Benarkan trafik keluar yang diperlukan 3. Benarkan port tertentu sahaja (SSH, HTTP/S, VPN) 4. Sekat trafik dari negara yang tidak berkaitan (geo-blocking)
IDS/IPS (Intrusion Detection/Prevention System):
Ini macam “CCTV digital” untuk rangkaian anda. Dia detect kalau ada aktiviti mencurigakan:
# Suricata pada pfSense/OPNsense # Navigasi ke: Services → Suricata/Snort # Aktifkan pada antara muka WAN # Muat turun set peraturan (ET Open, Snort Community)
Nota Beginner: Kalau anda guna Unifi, router Unifi pun ada basic firewall. Pastikan anda dah configure peraturan asas di situ. Kalau anda guna pfSense atau OPNsense, lagi bagus — lebih banyak kawalan.
Segmentasi VLAN — Asingkan Peranti Mengikut Tahap Kepercayaan:
Bayangkan smart TV anda kena hack. Kalau semua peranti dalam satu rangkaian yang sama, penyerang boleh terus “jump” ke NAS atau server anda. Tapi kalau anda guna VLAN, smart TV tu terkurung dalam segmen IoT dan tak boleh akses server.
VLAN 10 - Pengurusan: Akses admin sahaja VLAN 20 - Pelayan: VM dan kontena VLAN 30 - IoT: Peranti pintar (terhad) VLAN 40 - Tetamu: WiFi tetamu (internet sahaja)
Peraturan antara VLAN:
IoT → Pelayan: SEKAT (kecuali port tertentu) IoT → Internet: BENARKAN Tetamu → Semua: SEKAT (kecuali internet) Pengurusan → Semua: BENARKAN
Kemas kini sistem — Ini benda paling basic tapi ramai yang lupa:
# Ubuntu/Debian - kemas kini automatik sudo apt install unattended-upgrades -y sudo dpkg-reconfigure -plow unattended-upgrades # Konfigurasi /etc/apt/apt.conf.d/50unattended-upgrades Unattended-Upgrade::Allowed-Origins { "${distro_id}:${distro_codename}-security"; "${distro_id}:${distro_codename}-updates"; }; Unattended-Upgrade::Automatic-Reboot "true"; Unattended-Upgrade::Automatic-Reboot-Time "04:00";
Fail2ban — Perlindungan brute force:
Fail2ban memantau log dan automatik ban IP yang cuba login berulang kali. Ini wajib ada kalau SSH anda terbuka:
# Pasang Fail2ban sudo apt install fail2ban -y # Konfigurasi /etc/fail2ban/jail.local
[DEFAULT] bantime = 1h findtime = 10m maxretry = 5 [sshd] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 3 bantime = 24h
# Mulakan Fail2ban sudo systemctl enable fail2ban sudo systemctl start fail2ban # Periksa status — anda akan nampak berapa IP yang dah kena ban sudo fail2ban-client status sshd
CrowdSec — Alternatif moden kepada Fail2ban:
CrowdSec ni macam Fail2ban tapi dengan “kecerdasan kolektif.” Kalau satu IP jahat kena detect oleh pengguna CrowdSec lain di seluruh dunia, IP tu akan disekat untuk anda juga. Macam community-powered security:
# Pasang CrowdSec curl -s https://install.crowdsec.net | sudo bash sudo apt install crowdsec crowdsec-firewall-bouncer-iptables -y # CrowdSec menggunakan kecerdasan kolektif - # ia berkongsi IP berniat jahat dengan komuniti
Pengesahan berbilang faktor (2FA/MFA):
2FA ni macam kunci tambahan. Walaupun seseorang tahu password anda, mereka masih tak boleh masuk tanpa kod dari telefon anda. Aktifkan 2FA di mana sahaja yang mungkin:
Konfigurasi 2FA untuk SSH:
# Pasang Google Authenticator sudo apt install libpam-google-authenticator -y # Jalankan setup google-authenticator # Edit /etc/pam.d/sshd - tambah: auth required pam_google_authenticator.so # Edit /etc/ssh/sshd_config: ChallengeResponseAuthentication yes AuthenticationMethods publickey,keyboard-interactive # Mulakan semula SSH sudo systemctl restart sshd
Nota Beginner: Sebelum aktifkan 2FA untuk SSH, pastikan anda ada akses lain ke server (contoh: akses konsol Proxmox atau IPMI). Kalau tak, dan 2FA ada masalah, anda boleh terkunci dari server sendiri!
“Saya guna password yang sama untuk semua service” — kalau ini anda, tolong berhenti sekarang.
Vaultwarden adalah pelaksanaan pelayan Bitwarden yang ringan. Ia membolehkan anda mengurus semua kata laluan dengan selamat, dan anda boleh host sendiri dalam homelab.
Amalan terbaik kata laluan:
Jangan sesekali akses perkhidmatan homelab melalui HTTP biasa. Walaupun dalam rangkaian dalaman, biasakan guna HTTPS. Kenapa? Sebab data yang travel melalui HTTP boleh dibaca oleh sesiapa sahaja dalam rangkaian yang sama.
Let’s Encrypt dengan Nginx Proxy Manager (cara paling senang):
Let’s Encrypt dengan Traefik (lebih automated):
# traefik.yml certificatesResolvers: letsencrypt: acme: email: admin@domain-anda.com storage: /acme.json httpChallenge: entryPoint: web entryPoints: web: address: ":80" http: redirections: entryPoint: to: websecure websecure: address: ":443"
Kalau anda risau tentang data fizikal (contoh: laptop dicuri), enkripsi cakera penuh dengan LUKS:
# Enkripsi cakera penuh dengan LUKS sudo cryptsetup luksFormat /dev/sdb sudo cryptsetup open /dev/sdb encrypted-data sudo mkfs.ext4 /dev/mapper/encrypted-data
Wazuh macam “security guard digital” yang sentiasa memantau homelab anda. Ia boleh detect ancaman, pantau integriti fail (ada sesiapa ubah fail config?), dan banyak lagi:
# docker-compose.yml untuk Wazuh services: wazuh.manager: image: wazuh/wazuh-manager:latest container_name: wazuh-manager ports: - "1514:1514" - "1515:1515" - "514:514/udp" - "55000:55000" volumes: - ./wazuh-data:/var/ossec/data restart: unless-stopped
Ini tip yang saya rasa sangat berguna: kumpulkan log dari semua pelayan ke satu lokasi. Bila ada masalah, anda tak perlu SSH ke setiap server satu-satu untuk check log:
# Menggunakan rsyslog # Pada pelayan log (/etc/rsyslog.conf): module(load="imudp") input(type="imudp" port="514") module(load="imtcp") input(type="imtcp" port="514") # Pada pelayan klien (/etc/rsyslog.d/50-remote.conf): *.* @@10.0.20.30:514
Pi-hole bukan sekadar ad blocker. Ia juga lapisan keselamatan yang berkesan. Dengan Pi-hole, anda boleh sekat:
Senarai sekat tambahan untuk perlindungan lebih:
# Di Pi-hole → Adlists, tambah: https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/pro.txt
Nota Beginner: Pi-hole ni salah satu projek homelab yang paling “worth it.” Setup sekali, semua peranti dalam rumah anda dilindungi. Malah keluarga anda pun akan perasan sebab iklan kurang.
Ini peraturan emas yang saya cadangkan anda ikut:
Internet → Firewall → VPN (WireGuard) ↓ Rangkaian Dalaman ↓ ↓ ↓ Pelayan NAS Peranti
Dengan setup macam ni, semua akses dari luar mesti melalui VPN dulu. Lebih selamat, dan anda tak perlu buka banyak port.
Keselamatan bukan benda yang anda “set and forget.” Ia perlu penyelenggaraan berkala. Ini jadual yang saya cadangkan:
Bab keselamatan ni memang panjang, tapi setiap bahagian ada sebabnya. Jom recap:
Ingat, anda tak perlu buat semua sekaligus. Mulakan dengan asas (update, firewall, kata laluan kuat, backup), kemudian tambah lapisan demi lapisan. Yang penting, mulakan sekarang.
Seterusnya, kita akan masuk ke topik keselamatan lanjutan untuk anda yang nak pergi lebih jauh.