10 Langkah Pertama Setelah VPS Ubuntu Aktif (Panduan 2026)
Server baru Anda sudah diincar sebelum sempat dipakai
Pasang VPS dengan IP publik, lalu cek log autentikasinya beberapa jam kemudian. Pada banyak server, Anda akan menemukan ratusan percobaan login gagal dari alamat IP yang tidak dikenal. Pelakunya bukan orang yang menarget Anda secara khusus, melainkan bot yang memindai seluruh ruang IP tanpa henti.
Jadi, yang menentukan keamanan VPS bukan apa yang Anda pasang bulan depan, melainkan apa yang Anda lakukan di 30 menit pertama. Panduan ini berisi 10 langkah yang biasa jadi standar praktik terbaik industri untuk Ubuntu (LTS 22.04 atau 24.04), dan semuanya bisa dikerjakan lewat terminal tanpa alat tambahan.
10 langkah yang perlu Anda kerjakan berurutan
1. Login pertama, lalu update seluruh paket
Masuk sebagai root memakai IP dari email atau panel, lalu segera perbarui sistem. Image Ubuntu sering dibuat berbulan-bulan lalu, jadi hampir pasti ada tambalan keamanan yang tertinggal.
ssh root@IP_VPS_ANDA
apt update && apt upgrade -y
# Reboot bila kernel ikut diperbarui
reboot2. Buat user baru dan beri hak sudo
Akun root itu seperti kunci induk gedung: sekali bocor, semua pintu terbuka. Buat user harian dengan hak sudo agar tiap tindakan berisiko harus disengaja.
adduser deploy
usermod -aG sudo deploy
# Uji dari sesi lain: su - deploy lalu sudo whoami3. Buat SSH key di komputer lokal
Kata sandi bisa ditebak, sedangkan kunci Ed25519 praktis mustahil ditebak lewat brute force. Jalankan perintah ini di laptop Anda, bukan di server.
ssh-keygen -t ed25519 -C 'laptop-kerja'
ssh-copy-id deploy@IP_VPS_ANDAPengguna Windows bisa menjalankan perintah yang sama di PowerShell modern atau Windows Terminal.
4. Uji login key di sesi terpisah
Jangan tutup sesi root dulu. Buka terminal kedua dan pastikan ssh deploy@IP_VPS_ANDA masuk tanpa meminta kata sandi akun. Langkah kecil ini mencegah Anda terkunci di luar server sendiri.
5. Matikan login root dan login kata sandi
Setelah key terbukti jalan, tutup dua celah terbesar. Pakai berkas konfigurasi terpisah agar mudah dibaca dan tidak tertimpa saat pembaruan paket.
sudo nano /etc/ssh/sshd_config.d/99-hardening.conf
# Isi berkas:
PermitRootLogin no
PasswordAuthentication no
# Cek sintaks dulu, baru muat ulang
sudo sshd -t && sudo systemctl reload sshPoin Penting: Selalu pertahankan satu sesi SSH yang masih terbuka saat mengubah konfigurasi SSH atau firewall. Bila ada salah ketik, Anda masih punya jalur untuk memperbaikinya.
6. Aktifkan firewall UFW
Prinsipnya sederhana: tolak semua koneksi masuk, lalu buka hanya yang dibutuhkan. Izinkan SSH sebelum mengaktifkan UFW, kalau tidak Anda mengunci diri sendiri.
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
# Buka hanya bila server menjalankan web
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status verboseBila Anda memakai VPS untuk n8n, bot, atau aplikasi Node.js, cukup buka port aplikasi lewat reverse proxy di 80 dan 443, jangan membuka port aplikasi langsung ke internet.
7. Pasang Fail2ban untuk memblokir penebak sandi
Walaupun login kata sandi sudah mati, bot tetap mengetuk pintu dan membebani log. Fail2ban memblokir IP yang berulang kali gagal untuk sementara waktu.
sudo apt install fail2ban -y
sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd8. Atur zona waktu dan nama host
Terdengar sepele, tetapi log dengan zona waktu keliru akan menyulitkan Anda saat melacak insiden pukul 02.00 dini hari. Penjadwal cron juga mengikuti zona waktu ini. Karena server di Jakarta, pilih WIB.
sudo timedatectl set-timezone Asia/Jakarta
sudo hostnamectl set-hostname web-01
timedatectl9. Aktifkan pembaruan keamanan otomatis
Anda tidak akan ingat login tiap pekan untuk menjalankan apt upgrade. Biarkan unattended-upgrades menangani tambalan keamanan, sementara pembaruan besar tetap Anda kendalikan manual.
sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure --priority=low unattended-upgrades10. Buat snapshot dan catat konfigurasi awal
Setelah semua langkah di atas beres, ambil snapshot atau cadangan lewat panel. Anda punya titik pemulihan bersih: bila nanti ada eksperimen yang berantakan, tinggal kembali ke kondisi ini tanpa mengulang semuanya dari nol. Simpan juga catatan singkat berisi nama user, port yang terbuka, dan lokasi berkas konfigurasi.
Ringkasan: apa yang dilindungi tiap langkah
| Langkah | Risiko yang ditutup | Waktu pengerjaan |
|---|---|---|
| Update paket | Celah yang sudah diketahui publik | 2-5 menit |
| User non-root | Kesalahan fatal dan pengambilalihan akun root | 1 menit |
| SSH key + nonaktifkan sandi | Brute force dan sandi lemah | 5 menit |
| UFW | Layanan yang terpapar tidak sengaja | 2 menit |
| Fail2ban | Serangan berulang dan log penuh | 2 menit |
| Auto-update dan snapshot | Tambalan terlewat dan kehilangan data | 5 menit |
Kesalahan yang sering terjadi di lapangan
Skenario klasik: Anda menyalakan UFW tanpa mengizinkan SSH, lalu sesi langsung putus. Skenario kedua: Anda mematikan login kata sandi, tetapi kunci publik belum tersalin ke user yang benar. Dua-duanya bisa dihindari dengan satu kebiasaan, yaitu menguji di sesi kedua sebelum menutup sesi pertama.
Satu lagi: jangan menyalin private key ke server atau mengirimkannya lewat chat. Yang boleh dibagikan hanya berkas berakhiran .pub. Untuk tim, beri tiap anggota kunci sendiri agar akses seseorang bisa dicabut tanpa mengganggu yang lain.
Poin Penting: Keamanan VPS dibangun berlapis: user terbatas, kunci SSH, firewall, pemblokir otomatis, dan cadangan. Satu lapisan yang bocor tidak langsung berarti server jebol.
Mau praktik dulu sebelum server produksi?
Bila Anda baru belajar, pakai VPS cadangan untuk berlatih ke-10 langkah ini sampai hafal, baru terapkan di server yang menjalankan aplikasi sungguhan. Karena server berada di Jakarta, latensi untuk pengguna di Indonesia juga tetap rendah, enak untuk aplikasi web maupun akses SSH harian. Untuk memilih paket yang sesuai kebutuhan, cek halaman paket VPS atau kelola layanan Anda lewat panel my.vpshosting.id.
Setelah fondasi ini beres, Anda siap lanjut ke tahap berikutnya: memasang Docker, men-deploy aplikasi Node.js, Laravel, atau Python, dan memasang SSL. Semuanya jauh lebih tenang dikerjakan di server yang sudah dikunci dengan benar.



