Maskot beruang kutub NordBastion di tempat pandai besi Nordik yang mengelas pelat baja dan gembok kuningan ke menara server kecil di atas landasan, glif pelindung sian membungkus dasarnya, cahaya tungku api amber dan percikan pengelasan amber
Panduan · Daftar periksa·10 menit membaca · 60 menit praktik

Pengerasan VPS — daftar periksa OPSEC jam pertama.
Delapan langkah. Jalankan ini di setiap server baru.

Daftar periksa pra-peluncuran universal sebelum beban kerja apa pun masuk ke VPS baru. Hanya kunci SSH, port khusus, firewall, pembaruan otomatis, fail2ban, snapshot, pemulihan terdokumentasi. Diuji pada Debian 12 / Ubuntu 22-24 / Alpine.

Delapan langkah
  1. 01

    SSH key auth

  2. 02

    Disable root + change port

  3. 03

    Firewall baseline

  4. 04

    Unattended-upgrades

  5. 05

    Fail2ban

  6. 06

    Time + swap

  7. 07

    Baseline snapshot

  8. 08

    Recovery doc

Langkah 01-02 · SSH

Kunci, bukan kata sandi. Port khusus, bukan 22.

Di laptop Anda, buat pasangan kunci ed25519 (lebih kecil, lebih cepat, modern):

ssh-keygen -t ed25519 -C "you@laptop"
ssh-copy-id -p 22 root@<vps-ip>
ssh root@<vps-ip>     # should now work without password

Pada VPS, sunting /etc/ssh/sshd_config:

Port 54871                  # pick a random number 1024-65535
PermitRootLogin no          # use a non-root user with sudo
PasswordAuthentication no   # keys only
PubkeyAuthentication yes

Buat pengguna sudo non-root terlebih dahulu (adduser bear; usermod -aG sudo bear; ssh-copy-id -p 22 bear@vps), uji login, KEMUDIAN mulai ulang sshd: systemctl restart sshd. Jika Anda terkunci, konsol panel memberikan akses shell tanpa SSH.

Langkah 03 · Firewall

Tolak masuk secara default. Daftar putih apa yang Anda butuhkan.

apt install -y ufw
ufw default deny incoming
ufw default allow outgoing
ufw allow 54871/tcp      # custom SSH port
ufw allow 80/tcp         # if running a web service
ufw allow 443/tcp        # if running TLS
ufw enable
ufw status verbose

Replikasikan set aturan yang sama pada firewall tingkat bastion NordBastion melalui panel (Jaringan → Firewall). Firewall bastion memblokir sebelum paket mencapai VPS, menghemat CPU dari pemindaian volumetrik. Pertahanan berlapis.

Langkah 04-05 · Pembaruan otomatis + fail2ban

Dua paket, lima menit, dampak nyata.

apt install -y unattended-upgrades fail2ban
dpkg-reconfigure -plow unattended-upgrades   # accept defaults
systemctl enable --now fail2ban
fail2ban-client status                       # shows sshd jail

Unattended-upgrades menerapkan patch keamanan secara otomatis; fail2ban melarang IP yang gagal 5 percobaan autentikasi dalam 10 menit selama 1 jam. Keduanya tidak memerlukan konfigurasi lebih lanjut untuk kasus penggunaan dasar — keduanya adalah default agresif yang berfungsi untuk semua orang.

Langkah 06 · Waktu + swap

Atur zona waktu UTC. Tambahkan swapfile.

timedatectl set-timezone UTC

fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo "/swapfile none swap sw 0 0" >> /etc/fstab
free -h                                       # confirm swap is active

UTC di server menyederhanakan korelasi log di seluruh bastion dan klien di zona waktu mana pun. Swapfile 2-4 GB melindungi dari lonjakan OOM-kill; pada tier kecil itu penting, pada tier besar itu adalah asuransi murah.

Langkah 07-08 · Snapshot + dokumen pemulihan

Tangkap kondisi bersih. Tuliskan jalur pemulihan.

Snapshot. Di panel: Server → server Anda → Snapshot → Buat. Beri nama baseline-hardened-YYYY-MM-DD. Snapshot NordBastion bersifat off-host, terenkripsi, dan memakan waktu beberapa detik. Anda dapat memulihkan dalam sekitar 90 detik — diri Anda di masa depan akan berterima kasih saat pertama kali peningkatan berjalan tidak sesuai rencana.

Dokumen pemulihan. Di atas kertas atau dalam pengelola kata sandi, tuliskan:

  • Email akun NordBastion + (mnemonik kata sandi, bukan kata sandinya sendiri)
  • Di mana kunci privat SSH Anda berada di laptop
  • Nomor port SSH khusus
  • Nama pengguna sudo non-root di VPS
  • Nama snapshot dasar yang akan dipulihkan
  • Catatan: "konsol panel berfungsi tanpa SSH — gunakan untuk pemulihan saat terkunci"

OPSEC adalah disiplin menulis hal-hal hari ini sehingga diri Anda di masa depan dapat pulih ketika diri Anda saat ini telah melupakannya. Panduan selesai ketika dokumen lengkap.

FAQ · Pengerasan

Pertanyaan, dijawab.

Delapan pertanyaan yang diajukan pelanggan VPS pertama kali saat menjalankan daftar periksa.

Apakah autentikasi kunci SSH benar-benar lebih aman daripada kata sandi yang kuat?

Ya, dengan selisih besar. Kata sandi — bahkan yang acak 16 karakter — dapat di-brute-force dalam beberapa model ancaman yang realistis; kunci SSH ed25519 memiliki 256 bit entropi dan tidak bisa. Kunci juga terikat ke perangkat tempat ia berada, sehingga penyerang membutuhkan berkas kunci DAN frasa sandi yang mendekripsinya. Nonaktifkan PasswordAuthentication sepenuhnya di sshd_config dan permukaan serangan brute-force menjadi nol.

Apakah mengubah port SSH dari 22 ke port acak benar-benar membantu?

Ini tidak menghentikan penyerang yang bertekad — mereka akan memindai semua 65.535 port. Ini MEMANG mengurangi volume kebisingan otomatis dari bot yang hanya mencoba port 22, yang berarti log yang lebih bersih dan fail2ban yang lebih sedikit tertekan. Pilih port acak antara 1024 dan 65535, tuliskan di tempat yang tidak akan Anda lupakan, perbarui firewall untuk mengizinkannya. Manfaat bersih: sekitar 90 persen lebih sedikit kebisingan log.

UFW atau nftables — mana yang dipilih?

UFW untuk seseorang yang sedang belajar atau menjalankan satu VPS — ini adalah pembungkus yang ramah, sintaksnya mudah dibaca manusia, dan berjalan di atas iptables atau nftables di bawahnya. nftables secara langsung jika Anda menginginkan komposisi aturan yang lebih ketat, set anonim, atau menjalankan lebih dari beberapa server dan menginginkan konsistensi. Keduanya menghasilkan hasil tingkat kernel yang sama.

Apakah saya harus menjalankan unattended-upgrades untuk kernel juga?

Patch keamanan, ya — patch tersebut memperbaiki CVE kritis dan alternatifnya adalah membiarkannya terbuka. Peningkatan paket kernel penuh lebih berisiko karena membutuhkan reboot agar berlaku; unattended-upgrades tidak akan reboot untuk Anda secara default. Baca /etc/apt/apt.conf.d/50unattended-upgrades dan putuskan: sebagian besar pelanggan NordBastion membiarkan konfigurasi tanpa pengawasan di "security-only", dan reboot secara manual setiap bulan selama jendela yang tenang.

Apakah fail2ban diperlukan jika saya sudah menonaktifkan autentikasi kata sandi?

Wajib secara ketat, tidak — setelah autentikasi kata sandi dinonaktifkan, brute-force pada SSH tidak dapat berhasil. Fail2ban tetap berguna untuk layanan lain (mail, halaman login aplikasi web, apa pun yang memiliki lapisan kredensial). Asuransi murah: apt install fail2ban, terima default, lanjutkan. 30 detik yang diperlukan untuk menginstalnya sepadan dengan log yang lebih bersih dan perlindungan layanan bonus yang diberikannya.

Bagaimana dengan enkripsi disk penuh?

Bukan bagian dari jam pertama — enkripsi disk penuh dengan kunci yang dipegang pengguna memerlukan instalasi ISO khusus (pemasangan LUKS saat boot dengan frasa sandi yang harus diketik seseorang) atau opsi LUKS-on-provision NordBastion yang akan datang (peta jalan panel). Untuk sekarang, perlakukan disk sebagai dapat dibaca oleh NordBastion (dalam kasus subpoena yang tidak mungkin terjadi) dan perlakukan perlindungan yurisdiksi NordBastion sebagai lapisan yang menjaganya tetap aman. Jika model ancaman Anda memerlukan FDE sebelum diluncurkan, pasang Debian melalui rescue ISO ke dalam volume root LUKS dan buka kunci melalui konsol panel saat setiap boot — dapat dilakukan tetapi perubahan yang bermakna dalam beban operasional.

Seberapa sering saya harus mengambil snapshot?

Tiga ritme yang berguna. (1) Sebelum setiap perubahan bermakna (peningkatan paket, pengeditan konfigurasi, peningkatan OS). (2) Terjadwal — sekali seminggu adalah default yang wajar untuk beban kerja produksi apa pun. (3) Sebelum setiap latihan verifikasi cadangan, sehingga Anda dapat membuktikan pemulihan berfungsi. Snapshot NordBastion berada di luar host dan terenkripsi; tidak menggunakan disk VPS Anda dan dapat dipulihkan dalam sekitar 90 detik.

Apakah saya perlu memantau VPS, dan bagaimana caranya?

Untuk jam pertama: belum — selesaikan pengerasan, jalankan beban kerja, kemudian tambahkan pemantauan setelah Anda memiliki sesuatu yang layak dipantau. Opsi ringan: node_exporter + Prometheus + Grafana di VPS kecil kedua, Netdata sebagai dasbor self-hosted satu biner, atau lebih sederhana lagi, pemeriksa uptime eksternal tingkat gratis (UptimeRobot, BetterStack) yang melakukan ping ke port publik. Pilih satu, konfigurasikan, dan lupakan — pemantauan paling berguna ketika tetap diam.

Berikutnya

Server telah dikeraskan. Sekarang bangun sesuatu di atasnya.

Terakhir ditinjau · 2026-05-20 · Diuji · Debian 12 · Ubuntu 22.04 / 24.04 · Alpine 3.19+