SSD Nodes Learn Hosting plans →
Panduan Matt ConnorOleh Matt Connor · Diperbarui 2026-08-29

10 Menit Pertama Mengamankan VPS Baru

Ikuti runbook 10 menit ini untuk membuat user, memasang SSH key, menonaktifkan root, dan mengaktifkan firewall sebelum VPS terhubung ke internet.

10 menit pertama menentukan keamanan server Anda

VPS baru tidak aman. Sejak memiliki IP publik, server akan segera dipindai untuk mencari akses login, sementara image default memberikan target yang mudah: root sering dapat diakses, autentikasi dengan password sering diizinkan, firewall belum dikonfigurasi, dan patch belum dijadwalkan. Kabar baiknya, semua celah tersebut dapat ditutup dalam waktu sekitar sepuluh menit dengan beberapa perintah. Ini adalah runbook yang saya jalankan pada setiap server baru sebelum menempatkan apa pun di dalamnya.

Ikuti langkah-langkah ini secara berurutan karena setiap langkah bergantung pada langkah sebelumnya. Setiap langkah memiliki panduan tersendiri yang ditautkan saat diperlukan; halaman ini adalah jalur cepat yang menghubungkan semuanya.

Menit 1: Perbarui semuanya

Login sebagai root menggunakan kredensial yang diberikan oleh provider Anda, lalu perbarui seluruh sistem sebelum melakukan hal lain:

apt update && apt upgrade -y

Sistem tanpa patch merupakan target yang paling mudah diserang. Karena itu, langkah ini harus dilakukan terlebih dahulu. Setelah selesai, atur pembaruan keamanan otomatis agar sistem tetap mendapatkan patch tanpa harus Anda ingat setiap kali.

Menit 2: Buat pengguna biasa dengan sudo

Jangan terus bekerja sebagai root. Buat pengguna untuk diri sendiri dan berikan akses sudo:

adduser matt
usermod -aG sudo matt

Mulai dari sini, login sebagai pengguna tersebut dan gunakan sudo untuk tugas administratif. Menjalankan sistem sebagai root setiap saat berarti setiap kesalahan dan setiap server yang berhasil dibobol dapat memperoleh hak tanpa batas. Inilah yang ingin dicegah dengan menjalankan sistem sebagai pengguna tanpa hak istimewa.

Menit 4: Siapkan kunci SSH

Password dapat ditebak; kunci tidak. Di laptop Anda sendiri, jika belum memiliki kunci, buat kunci:

ssh-keygen -t ed25519

Kemudian salin bagian publiknya ke server:

ssh-copy-id matt@YOUR_SERVER

ssh-copy-id harus mengaktifkan login dengan password untuk user baru; jika sudah dinonaktifkan, salin ~/.ssh/authorized_keys milik root ke /home/matt/.ssh/authorized_keys (yang dimiliki oleh matt), atau tempelkan kunci publik Anda ke file tersebut secara manual.

Model di balik langkah ini—satu kunci per perangkat, permission yang menyebabkan login dengan kunci gagal, dan pencabutan kunci yang hilang—dibahas dalam Dasar-dasar manajemen kunci SSH.

Logout lalu login kembali sebagai matt menggunakan kunci tersebut, dan pastikan login berhasil sebelum melanjutkan ke langkah berikutnya. Mengunci SSH sebelum Anda dapat masuk menggunakan kunci dapat membuat Anda terkunci dari server. Jika login tersebut menampilkan Permission denied (publickey), selesaikan masalahnya sekarang dan jangan kembali menggunakan password, karena satu pesan tersebut mencakup lima jenis masalah berbeda, sedangkan output ssh -v menunjukkan masalah yang sebenarnya terjadi.

Menit 6: Nonaktifkan login root dan kata sandi

Sekarang setelah key Anda berfungsi, tutup dua celah yang diandalkan oleh pemindai. Gunakan file drop-in agar pemutakhiran paket tidak menimpanya. Beri nama file tersebut 00- agar diurutkan sebelum 50-cloud-init.conf, yang disertakan image cloud Ubuntu bersama PasswordAuthentication yes; sshd mempertahankan nilai pertama yang dibacanya, sehingga file yang diurutkan belakangan akan diabaikan tanpa pesan:

sudo nano /etc/ssh/sshd_config.d/00-hardening.conf
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin no

Kemudian muat ulang SSH:

sudo systemctl restart ssh

Selanjutnya, periksa pengaturan yang benar-benar digunakan sshd agar drop-in yang diabaikan tidak menyesatkan Anda:

sudo sshd -T | grep -Ei 'passwordauthentication|permitrootlogin'

Setelah autentikasi kata sandi dinonaktifkan dan login root dihapus, trafik brute-force yang terus-menerus menuju server Anda tidak dapat berhasil. Penjelasan lengkapnya, termasuk perubahan port opsional, tersedia di Pengerasan SSH pada VPS.

Menit 8: Aktifkan firewall

Tolak semua koneksi masuk secara default, lalu izinkan hanya koneksi yang diperlukan. Izinkan SSH sebelum mengaktifkan firewall, atau koneksi Anda sendiri akan terputus:

sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw enable

Tambahkan aturan allow untuk setiap layanan yang benar-benar Anda jalankan, seperti 80/tcp dan 443/tcp untuk situs web. Jika sesi SSH baru berhenti terhubung setelah langkah ini, baca pesan error sebelum mengubah apa pun, karena penolakan berarti sshd merespons, sedangkan timeout biasanya berarti firewall membuang paket tersebut. Pastikan IPv4 dan IPv6 sama-sama tercakup, karena firewall yang hanya memfilter IPv4 membuat sisi IPv6 terbuka sepenuhnya. Panduan lengkapnya tersedia di Dasar-dasar firewall pada VPS. Perintah ufw ini mengasumsikan Ubuntu atau Debian; pada server Rocky atau AlmaLinux, tujuan penolakan default tetap sama, tetapi alat yang digunakan adalah firewalld, jadi ikuti versi langkah ini untuk firewalld.

Menit 10: Perlambat pemindaian dengan Fail2ban

Terakhir, tambahkan Fail2ban untuk memblokir alamat yang terus-menerus membanjiri port Anda:

sudo apt install -y fail2ban

Pada Ubuntu 24.04, instalasi bawaan melindungi SSH sejak boot pertama. Karena autentikasi dengan kunci sudah diwajibkan, konfigurasi ini berfungsi sebagai lapisan perlindungan tambahan untuk mengurangi kebisingan log dan memblokir pelaku berulang, bukan sebagai pertahanan utama.

Checklist Anda

Itulah runbook-nya. Gunakan generator di bawah ini untuk menandai setiap kontrol dan membuat checklist yang dipersonalisasi, yang dapat Anda simpan bersama server, termasuk perintah yang tepat untuk setiap langkah:

ToolBuild your VPS hardening checklist

Lakukan checklist ini sekali untuk setiap server baru hingga seluruh proses menjadi kebiasaan. Sepuluh menit yang Anda luangkan sekarang dapat mencegah masalah besar ketika server dibobol.

Setelah kebutuhan dasar terpenuhi, pembaruan keamanan otomatis di Ubuntu menjaga server tetap mutakhir tanpa mengharuskan Anda login kembali. Setiap service yang Anda tambahkan kemudian memerlukan pemeriksaan tersendiri, dan titik lemahnya berbeda: pada password vault yang di-host sendiri, server tidak pernah menyimpan plaintext, sehingga risiko sebenarnya Vaultwarden terletak pada admin token dan file backup.

FAQ

Apa yang harus saya lakukan terlebih dahulu pada VPS baru?

Perbarui sistem dengan apt update && apt upgrade -y, lalu buat pengguna biasa dengan sudo dan berhenti bekerja sebagai root. Setelah itu, siapkan kunci SSH, nonaktifkan login root dan autentikasi kata sandi, aktifkan firewall dengan kebijakan default-deny, lalu instal Fail2ban. Melakukannya dalam urutan tersebut membuat setiap langkah aman dilakukan tanpa mengunci akses Anda sendiri.

Bagaimana cara mencegah diri saya terkunci saat memperkuat keamanan SSH?

Siapkan dan uji login SSH menggunakan kunci sebelum menonaktifkan kata sandi atau root. Keluar lalu masuk kembali menggunakan kunci tersebut untuk memastikan login berhasil. Setelah itu, nonaktifkan PasswordAuthentication dan PermitRootLogin. Saat mengaktifkan firewall, izinkan port 22 sebelum menjalankan ufw enable. Jika akses Anda benar-benar terkunci, konsol web dari provider memungkinkan Anda masuk kembali tanpa SSH.

Apakah semua langkah ini benar-benar diperlukan pada server kecil?

Ya, karena pemindai tidak memperhatikan ukuran server Anda. Pemindai mencoba setiap IP publik dengan cara yang sama. Seluruh prosedur ini memerlukan sekitar sepuluh menit dan menghilangkan jalur serangan yang mudah: tidak ada login root, tidak ada percobaan kata sandi, tidak ada layanan yang terekspos tanpa sengaja, dan bug yang telah diketahui ditambal secara otomatis.

Apa satu langkah yang paling penting?

Gunakan SSH yang hanya menerima kunci dan nonaktifkan login root. Sebagian besar serangan terhadap VPS baru berupa percobaan kata sandi otomatis terhadap root. Menonaktifkan keduanya membuat seluruh kategori serangan tersebut tidak mungkin dilakukan. Firewall dan Fail2ban kemudian membatasi layanan yang terekspos serta memperlambat serangan yang masih tersisa.

Bagaimana cara memastikan server benar-benar telah diamankan?

Periksa tiga hal secara manual sebelum mempercayai konfigurasinya. Jalankan sudo ss -tlnp dan pastikan hanya port yang memang ingin Anda buka yang sedang listening pada alamat publik. Pastikan juga tidak ada layanan 0.0.0.0 atau [::] yang terlupakan. Jalankan sudo ufw status verbose dan pastikan kebijakan incoming default adalah deny serta aturan plain dan (v6) sama-sama tersedia. Selalu buka sesi SSH kedua sebelum menutup sesi pertama agar kesalahan dalam konfigurasi SSH tidak mengunci Anda dari server. Jika ketiganya sudah benar, dasar-dasar pengamanan telah diterapkan.