Panduan

30 Menit Pertama: Daftar Periksa Pengamanan VPS

VPS baru mendapat probe SSH pertama dalam hitungan menit setelah mendapatkan IP. Berikut urutan persis yang saya jalankan di setiap mesin baru — siap salin-tempel untuk Debian 13, dengan tabel daftar periksa di bagian akhir.

Asumsi: image Debian 13 baru dari deploy VPSRento Anda, Anda masuk sebagai root melalui SSH, dan contoh IP adalah 185.220.101.14 — ganti dengan milik Anda. Total waktu: sekitar setengah jam. Kerjakan langkah-langkah secara berurutan; langkah 2 bisa mengunci Anda jika terburu-buru.

1. Buat pengguna sudo Anda

Bekerja sebagai root adalah cara typo menjadi insiden. Buat pengguna sungguhan, beri sudo, dan lakukan semuanya dari sana:

# create the user (you'll set a password — still useful for sudo)
adduser ops

# grant sudo
usermod -aG sudo ops

Semua yang di bawah titik ini berjalan sebagai ops kecuali dinyatakan lain.

2. Hanya kunci SSH — tanpa kata sandi, tanpa login root

Autentikasi kata sandi adalah lubang terbesar pada mesin yang menghadap internet. Bot menghantam port 22 dengan daftar kredensial sepanjang hari, setiap hari. Kunci membuat seluruh kelas serangan menjadi tidak relevan. Di mesin lokal Anda:

# generate a keypair if you don't have one (ed25519, no passphrase tradeoff is yours)
ssh-keygen -t ed25519 -C "ops@atlas"

# push the public key to the server
ssh-copy-id [email protected]

Verifikasi Anda bisa masuk dengan kunci di terminal baru terminal — ssh [email protected] — sebelum menyentuh konfigurasi. Pertahankan sesi root yang ada sebagai jalur pelarian. Kemudian edit /etc/ssh/sshd_config:

# /etc/ssh/sshd_config — the three lines that matter
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin prohibit-password
# validate the config, then reload (Debian 13 uses ssh.service)
sshd -t && systemctl reload ssh

prohibit-password daripada no datar untuk root dengan sengaja: root masih bisa mengautentikasi dengan kunci dari workstation Anda, yang kadang berguna untuk pemulihan konsol penyedia — tetapi tidak ada kata sandi yang akan pernah berfungsi, untuk siapa pun, dari mana pun. Konfirmasi dengan sshd -T | grep -E 'passwordauthentication|permitrootlogin'.

3. Firewall: tolak default, izinkan hanya yang Anda jalankan

ufw Debian adalah lapisan tipis dan masuk akal di atas nftables. Kebijakan adalah keamanannya; aturan hanyalah pengecualian terhadapnya:

apt update && apt install -y ufw

ufw default deny incoming
ufw default allow outgoing

# SSH stays open — add this BEFORE enabling
ufw allow 22/tcp comment 'SSH'

# whatever your box actually serves, e.g.:
ufw allow 80/tcp comment 'HTTP'
ufw allow 443/tcp comment 'HTTPS'

ufw enable
ufw status verbose

Setiap port yang Anda buka harus punya nama dan alasan. Jika Anda tidak bisa menyebutkan untuk apa sebuah port, port itu tidak mendapat aturan.

4. fail2ban: perlambat bot hingga merangkak

Dengan autentikasi kata sandi dinonaktifkan, brute force sudah mati — tetapi fail2ban menjaga log Anda tetap terbaca dan memblokir pemindai yang menyentuh hal lain:

apt install -y fail2ban
# /etc/fail2ban/jail.local
[sshd]
enabled  = true
port     = ssh
maxretry = 5
findtime = 10m
bantime  = 1h
systemctl enable --now fail2ban

# watch it work
fail2ban-client status sshd

5. Pembaruan keamanan otomatis

CVE yang tidak ditambal adalah risiko lebih besar daripada reboot. unattended-upgrades Debian memasang pembaruan keamanan sendiri:

apt install -y unattended-upgrades

# answer Yes to auto-install updates
dpkg-reconfigure -plow unattended-upgrades

Konfigurasi default di /etc/apt/apt.conf.d/50unattended-upgrades hanya menarik dari suite keamanan — yang memang Anda inginkan di server: perbaikan keamanan otomatis, yang lain saat Anda pilih.

6. Matikan yang tidak Anda jalankan

Setiap layanan yang berjalan adalah permukaan serangan yang harus Anda tambal. Lihat apa yang sebenarnya mendengarkan:

# who is listening, on what, as which process
ss -tulpn

# everything enabled at boot
systemctl list-unit-files --state=enabled

# example: you don't run a print server — nobody does
systemctl disable --now cups

Aturannya: jika Anda tidak bisa menyebutkan fungsi pendengar, cari tahu sebelum membiarkannya hidup. Pada image VPSRento minimal seharusnya sangat sedikit selain sshd dan aplikasi Anda sendiri.

7. Opsional tetapi disarankan: bidang manajemen WireGuard

Versi keamanan SSH terkuat adalah SSH yang tidak menghadap internet sama sekali. Jalankan WireGuard di mesin, izinkan SSH hanya di dalam tunnel, dan port 22 akan hilang dari semua pemindai di dunia:

apt install -y wireguard

# /etc/wireguard/wg0.conf — minimal management tunnel
# [Interface] Address = 10.8.0.1/24, ListenPort = 51820

# open the tunnel, not the shell
ufw allow 51820/udp comment 'WireGuard'
ufw allow in on wg0 to any port 22 proto tcp comment 'SSH via WG'
ufw delete allow 22/tcp

systemctl enable --now wg-quick@wg0

Setelah itu Anda ssh [email protected] melalui tunnel, dan IP publik hanya menjawab pada satu port UDP. Panduan lengkap WireGuard — kunci, peer, konfigurasi klien, kode QR ponsel — ada di panduan pendamping.

Daftar periksa 10 poin

Jalankan tabel ini setelah setiap deploy baru, dan lagi setelah setiap layanan yang Anda tambahkan:

#ItemDi mana beradaVerifikasi dengan
1Pengguna sudo non-root/etc/passwdid ops
2Autentikasi SSH hanya kuncisshd_configsshd -T | grep passwordauth
3Login root dengan kata sandi dinonaktifkansshd_configsshd -T | grep permitrootlogin
4Firewall default-deny untuk lalu lintas masukufwufw status verbose
5Hanya port bernama yang terbukaufwufw status numbered
6Jail fail2ban sshd aktifjail.localfail2ban-client status sshd
7Pembaruan keamanan otomatisaptsystemctl status unattended-upgrades
8Tidak ada listener yang tidak dijelaskanss -tulpn
9Manajemen melalui WireGuard (opsional)wg0.confwg show
10Snapshot setelah hardeningAdd-on area klien, $1.99/blnLayanan → VPS Anda → snapshot

Item 10 layak mendapat satu kalimat: harden dulu, snapshot kedua, dalam urutan itu — snapshot dari mesin yang bersih dan ter-hardening adalah rollback Anda untuk setiap kesalahan di masa depan. Snapshot offsite harian adalah add-on $1.99/bln di area klien. Tiga puluh menit pencegahan, satu klik asuransi.

Deploy mesin bersih dan harden sendiri.

Image Debian 13, root penuh dalam 55 detik, IP bersih yang diperiksa terhadap 40+ daftar hitam. Dari $5.99/bln.

Bahasa Indonesia