VPS Pertama: Setup Ubuntu dan Hardening SSH dari Nol
Kenapa VPS baru tidak boleh langsung dipakai
VPS yang baru aktif biasanya datang dengan login root dan password. Kombinasi ini adalah target paling empuk di internet: bot pemindai port 22 bekerja 24 jam mencoba ribuan password umum. Anda mungkin tidak sadar server Anda sedang dicoba ditembus terus-menerus, karena percobaan itu tidak pernah berhenti.
Hardening di sini bukan soal paranoia. Ini empat langkah dasar yang sekali jalan, berlaku seterusnya: ganti root dengan user biasa, matikan login password, tutup port yang tidak perlu, dan blokir otomatis IP yang nekat menebak-nebak. Total waktu yang dibutuhkan sekitar 15 menit.
Satu aturan emas sebelum mulai: jangan tutup sesi SSH yang sedang aktif sampai Anda berhasil login lewat cara baru di terminal kedua. Kalau ada yang salah ketik, sesi lama itu jalan keluar Anda.
Langkah 0: Perbarui sistem
Login pertama sebagai root, lalu perbarui daftar paket dan paket yang terpasang:
apt update && apt upgrade -y
Perintah ini memastikan Anda memulai dari paket terbaru, termasuk patch keamanan. Sambil menunggu, jangan dulu mengubah konfigurasi SSH.
Langkah 1: Buat user non-root
Bekerja harian sebagai root itu berbahaya karena satu perintah yang salah bisa merusak sistem tanpa ada yang menahan. Buat user biasa dengan hak sudo:
adduser revan usermod -aG sudo revan
Ganti revan dengan nama user Anda. Perintah pertama akan meminta password untuk user baru — password ini hanya dipakai untuk sudo, bukan untuk login SSH nantinya. Setelah itu, pindah ke user baru untuk sisa langkah:
su - revan
Langkah 2: Pasang SSH key dan uji dulu
Kunci SSH terdiri dari sepasang: private key yang tinggal di laptop Anda, dan public key yang disimpan di server. Di laptop Anda (bukan di server), buat kunci kalau belum punya:
ssh-keygen -t ed25519 -C "laptop-utama"
Terima lokasi default (~/.ssh/id_ed25519). Passphrase boleh diisi untuk lapisan tambahan, boleh juga dikosongkan — tapi jangan pernah membagikan file id_ed25519 ke siapa pun, termasuk lewat chat.
Kirim public key ke server dengan:
ssh-copy-id revan@IP_SERVER_ANDA
Masukkan password user saat diminta. Setelah itu, uji login dengan kunci di terminal baru, tanpa menutup terminal lama:
ssh revan@IP_SERVER_ANDA
Kalau Anda masuk tanpa diminta password, kunci sudah beres. Kalau masih diminta password, jangan lanjut ke langkah berikutnya — periksa dulu apakah file ~/.ssh/authorized_keys di server sudah berisi public key Anda dan permission-nya benar:
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
Langkah 3: Matikan login password dan root
Sekarang kunci sudah terbukti jalan, barulah matikan jalur masuk yang lemah. Edit konfigurasi SSH di server:
sudo nano /etc/ssh/sshd_config
Cari dan ubah (atau tambahkan kalau belum ada) tiga baris ini:
PasswordAuthentication no PubkeyAuthentication yes PermitRootLogin no
Penjelasan singkatnya: PasswordAuthentication no mematikan tebakan password sepenuhnya, PubkeyAuthentication yes memastikan login kunci tetap diizinkan, dan PermitRootLogin no menutup pintu root lewat SSH — root tetap bisa dipakai lewat sudo dari dalam.
Sebelum restart, periksa dulu sintaks konfigurasinya supaya tidak ada salah ketik yang membuat SSH gagal jalan:
sudo sshd -t
Kalau tidak ada keluaran, berarti bersih. Baru restart layanannya:
sudo systemctl restart ssh
Di Ubuntu 24.04, nama servicenya ssh (di beberapa sistem lama bernama sshd, jangan tertukar). Uji lagi dari terminal baru: login dengan kunci harus berhasil, login dengan password harus ditolak.
Langkah 4: Nyalakan firewall UFW
Ubuntu membawa UFW, firewall yang konfigurasinya jauh lebih mudah dibaca daripada iptables mentah. Aturannya: izinkan SSH dulu, baru aktifkan — urutan ini penting, karena mengaktifkan UFW sebelum membuka port SSH sama saja mengunci diri sendiri.
sudo ufw allow OpenSSH sudo ufw enable
Konfirmasi dengan mengetik y saat diminta. Periksa statusnya:
sudo ufw status verbose
Keluaran yang sehat menampilkan Status: active dan aturan 22/tcp (OpenSSH) ALLOW IN. Nanti, setiap layanan baru yang Anda pasang — misalnya web server — tinggal ditambah aturannya, contoh sudo ufw allow 'Nginx Full', dan port lain tetap tertutup.
Langkah 5: Pasang fail2ban
Fail2ban mengawasi log login dan memblokir sementara IP yang terlalu sering gagal. Ini pelengkap yang bagus untuk kunci SSH: sekalipun seseorang mencoba menebak, mereka akan ditendang setelah beberapa kali gagal.
sudo apt install -y fail2ban sudo systemctl enable --now fail2ban
Konfigurasi default Ubuntu sudah mengaktifkan proteksi SSH, jadi tidak perlu file tambahan untuk kebutuhan dasar. Periksa apakah jail SSH berjalan:
sudo fail2ban-client status sshd
Kalau suatu hari Anda salah memasukkan passphrase berkali-kali dari IP sendiri, perintah sudo fail2ban-client set sshd unbanip <IP_ANDA> bisa membuka blokirnya — jalankan dari sesi lain atau dari konsol web penyedia VPS.
Langkah 6: Aktifkan update keamanan otomatis
Langkah terakhir yang sering dilupakan: patch keamanan sebaiknya tidak menunggu Anda sempat login. Ubuntu punya unattended-upgrades untuk itu:
sudo apt install -y unattended-upgrades sudo dpkg-reconfigure -plow unattended-upgrades
Pilih Yes saat ditanya. Setelah ini, update keamanan akan terpasang otomatis di latar belakang, sementara update fitur tetap menunggu persetujuan manual Anda.
Checklist penutup
- Sistem diperbarui (apt update && apt upgrade)
- User non-root dibuat dan masuk grup sudo
- Login SSH key-only terbukti jalan dari terminal baru
- PasswordAuthentication no dan PermitRootLogin no aktif, sshd -t bersih
- UFW aktif, hanya port yang dibutuhkan yang terbuka
- Fail2ban berjalan dan memantau SSH
- Update keamanan otomatis aktif
Sampai di sini VPS Anda sudah jauh lebih aman daripada kondisi awalnya. Langkah berikutnya yang masuk akal: pasang reverse proxy dan HTTPS untuk aplikasi pertama Anda, atau siapkan backup otomatis sebelum ada data penting di server — keduanya akan dibahas di artikel Rnevio berikutnya.
Baca juga: Audit Keamanan VPS dan WireGuard.
Komentar
Posting Komentar