Cara Setup VPS Ubuntu Pertama Kali: SSH, User Baru, dan Firewall
Membeli VPS Ubuntu baru adalah langkah yang menarik, tapi bagi pemula bisa terasa menakutkan. Artikel ini memandu Anda langkah demi langkah dari menerima detail VPS hingga memiliki server yang siap production dengan keamanan standar industri.
1. Persiapan Awal: Detail yang Dibutuhkan
Setelah pembayaran VPS selesai, Anda akan menerima email dengan detail akses:
- IP Address VPS (contoh: 103.143.96.132)
- Username root (biasanya
root) - Password root (password sementara dari provider)
- Port SSH (default 22, beberapa provider sudah ganti ke port non-standar seperti 2222)
Siapkan terminal di komputer lokal Anda:
- Windows: PowerShell, Command Prompt, atau Windows Terminal (sudah built-in SSH client)
- macOS/Linux: Terminal.app, iTerm2, atau terminal favorit Anda
2. Koneksi SSH Pertama Kali
Buka terminal dan koneksi ke VPS:
ssh root@IP_VPS_ANDA
Jika port bukan 22 (misal 2222):
ssh -p 2222 root@IP_VPS_ANDA
Saath pertama kali konek, akan muncul verifikasi fingerprint:
The authenticity of host '103.143.96.132 (103.143.96.132)' can't be established.
ED25519 key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
Ketik yes lalu Enter, lalu masukkan password root dari email provider.
3. Update Sistem & Install Paket Dasar
Setelah login sebagai root, update sistem terlebih dahulu:
apt update && apt upgrade -y
Install paket yang akan dibutuhkan:
apt install -y curl wget git unzip htop vim ufw fail2ban net-tools
Set timezone ke WITA (Makassar) atau WIB (Jakarta):
timedatectl set-timezone Asia/Makassar
# Atau: timedatectl set-timezone Asia/Jakarta
# Verifikasi
timedatectl
4. Buat User Non-Root dengan Akses Sudo
Jangan pernah menggunakan root untuk aktivitas sehari-hari. Buat user biasa dengan akses sudo:
# Buat user baru (ganti adminuser sesuai keinginan)
adduser adminuser
# Isi password kuat, tekan Enter untuk field opsional
# Berikan akses sudo
usermod -aG sudo adminuser
5. Setup SSH Key (Wajib untuk Keamanan)
Generate SSH Key Pair Ed25519 (Modern & Aman)
# Di komputer LOKAL Anda (bukan di VPS!)
ssh-keygen -t ed25519 -C "vps-admin-$(date +%Y%m%d)"
# Output:
# Generating public/private ed25519 key pair.
# Enter file in which to save the key (/home/user/.ssh/id_ed25519): [Enter untuk default]
# Enter passphrase (empty for no passphrase): [Isi passphrase untuk keamanan ekstra]
# Enter same passphrase again: [Ulangi passphrase]
Hasilnya ada 2 file di ~/.ssh/:
id_ed25519— Private key (RAHASIA, jangan dibagikan!)id_ed25519.pub— Public key (bisa dibagikan, dikirim ke server)
Tips: Gunakan passphrase untuk melindungi private key jika laptop dicuri. Gunakan
ssh-agentagar tidak perlu ketik passphrase berulang.
Copy Public Key ke VPS
# Cara otomatis (ssh-copy-id - butuh password sekali)
ssh-copy-id -p 2222 adminuser@IP_VPS_ANDA
# Cara manual (jika ssh-copy-id tidak tersedia, mis. Windows lama)
cat ~/.ssh/id_ed25519.pub | ssh -p 2222 adminuser@IP_VPS_ANDA "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
Test Login Tanpa Password
ssh -p 2222 adminuser@IP_VPS_ANDA
# Harus masuk langsung tanpa minta password (kecuali passphrase key)
6. Hardening SSH (Wajib)
1. Buat User Non-Root dengan Sudo
# Buat user baru
adduser adminuser
# Isi password kuat, tekan Enter untuk field opsional
# Berikan akses sudo
usermod -aG sudo adminuser
# Copy SSH key root ke user baru
mkdir -p /home/adminuser/.ssh
cp /root/.ssh/authorized_keys /home/adminuser/.ssh/
chown -R adminuser:adminuser /home/adminuser/.ssh
chmod 700 /home/adminuser/.ssh
chmod 600 /home/adminuser/.ssh/authorized_keys
# Test login dengan user baru (dari lokal)
ssh -p 2222 adminuser@103.143.96.132
2. Ganti Port SSH Default
# Edit konfigurasi SSH
nano /etc/ssh/sshd_config
# Cari baris: #Port 22
# Ubah menjadi (pilih port acak 1024-65535):
Port 2222
# Atau tambahkan baris baru di bawah #Port 22:
Port 2222
# Simpan (Ctrl+O, Enter) & Keluar (Ctrl+X)
PENTING: Pastikan Anda bisa login via port baru SEBELUM logout dari sesi saat ini! Buka terminal baru, test
ssh -p 2222 adminuser@IP_VPS. Baru lalu restart SSH.
# Restart SSH service
systemctl restart sshd
3. Disable Root Login & Password Authentication
nano /etc/ssh/sshd_config
# Cari dan ubah baris-baris berikut (hapus # di depan):
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
# Opsional: Batasi user yang boleh login SSH
AllowUsers adminuser
# Simpan & restart
systemctl restart sshd
4. Setup UFW Firewall
apt update && apt install ufw -y
# Default policy
ufw default deny incoming
ufw default allow outgoing
# Allow SSH port baru
ufw allow 2222/tcp
# Allow HTTP/HTTPS (jika web server)
ufw allow 80/tcp
ufw allow 443/tcp
# Enable
ufw enable
# Cek status
ufw status numbered
5. Install Fail2Ban (Anti Brute-Force)
apt install fail2ban -y
# Buat config lokal
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
nano /etc/fail2ban/jail.local
# Sesuaikan bagian [sshd]:
[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
findtime = 600
systemctl restart fail2ban
systemctl enable fail2ban
7. Konfigurasi SSH Client (Optional tapi Disarankan)
Buat ~/.ssh/config di komputer lokal untuk memudahkan koneksi:
# ~/.ssh/config
Host myvps
HostName IP_VPS_ANDA
User adminuser
Port 2222
IdentityFile ~/.ssh/id_ed25519
IdentitiesOnly yes
ServerAliveInterval 60
ServerAliveCountMax 3
# Untuk VPS lain
Host vps-produksi
HostName 103.xxx.xxx.xxx
User deploy
Port 2222
IdentityFile ~/.ssh/id_ed25519_prod
ProxyJump bastion-host # jika butuh jump host
Kemudian cukup ketik:
ssh myvps
8. Best Practices Ringkas
- Selalu gunakan SSH Key (Ed25519), jangan password.
- Disable root login dan password authentication.
- Ganti port default (22 → port acak > 1024).
- Gunakan user non-root + sudo untuk aktivitas harian.
- Firewall (UFW) allow hanya port yang dibutuhkan.
- Fail2Ban aktif untuk SSH.
- Backup
~/.ssh/(private key) ke tempat aman (password manager, encrypted USB). - Audit berkala:
last,lastb,grep sshd /var/log/auth.log.
Kesimpulan
SSH adalah gerbang utama ke VPS Anda. Mengamankannya dengan benar sejak hari pertama adalah investasi keamanan jangka panjang. Mulai dari generate Ed25519 key, copy ke server, buat user non-root, ganti port, disable root & password login, lalu firewall + Fail2Ban.
Setelah dasar ini, lanjutkan ke 10 Langkah Hardening Server VPS Lengkap untuk keamanan tingkat lanjut (kernel hardening, auditd, Lynis, backup strategy, monitoring).
Artikel terkait: Apa Itu VPS? Panduan Lengkap untuk Pemula | Cara Memilih Spesifikasi VPS