Cara Mengamankan VPS dari Serangan Hacker

Cara Mengamankan VPS dari Serangan Hacker

Cara Mengamankan VPS dari Serangan Hacker

Pendahuluan

Serangan hacker terhadap VPS seringkali dimulai dari kelemahan konfigurasi dasar seperti port terbuka, SSH yang tidak aman, atau paket yang tidak terupdate. Tutorial ini memberikan panduan lengkap, berbasis praktik terbaik industri, untuk menutup celah keamanan, mengamankan akses, dan memantau aktivitas di VPS Anda.

Prasyarat & Persiapan

Item Keterangan
VPS Ubuntu 22.04 LTS (atau distribusi serupa)
Akses root SSH key pair, atau password admin
Tools curl, wget, vim/nano
Akun AI Opsional: ChatGPT Plus, Claude Pro, Gemini Advanced, Perplexity Pro untuk membantu menulis skrip atau dokumentasi.
Akun Desain Midjourney, Canva Pro, Adobe Firefly untuk membuat diagram keamanan.

Catatan: Semua perintah di bawah dijalankan sebagai root atau dengan sudo.

Langkah‑Demi‑Langkah

Step 1 – Update & Upgrade Sistem

sudo apt update && sudo apt upgrade -y
sudo apt autoremove -y

Step 2 – Konfigurasi UFW (Uncomplicated Firewall)

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status verbose

Step 3 – Hardening SSH

  1. Edit /etc/ssh/sshd_config
    bash sudo nano /etc/ssh/sshd_config
  2. Tambahkan/ubah baris berikut:
    PermitRootLogin no PasswordAuthentication no PubkeyAuthentication yes ChallengeResponseAuthentication no X11Forwarding no AllowUsers your_user
  3. Restart SSH
    bash sudo systemctl restart sshd

Step 4 – Nonaktifkan Root Login & Ganti Port SSH

sudo nano /etc/ssh/sshd_config
# Tambahkan baris
Port 2222

Restart:

sudo systemctl restart sshd

Tip: Ubah port ke angka non‑standard (misal 2222) untuk mengurangi serangan brute‑force otomatis.

Step 5 – Instal Fail2Ban

sudo apt install fail2ban -y
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

Konfigurasi dasar di /etc/fail2ban/jail.local:

[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 86400

Step 6 – Monitoring & Logging

a. Install Monit

sudo apt install monit -y
sudo systemctl enable monit
sudo systemctl start monit

b. Konfigurasi Monit (/etc/monit/monitrc)

set daemon 120
set logfile syslog
check process sshd with pidfile /var/run/sshd.pid
   start program = "/usr/sbin/service ssh start"
   stop program  = "/usr/sbin/service ssh stop"
   if failed port 2222 then restart

Step 7 – Aktifkan AppArmor (Ubuntu) atau SELinux (CentOS)

sudo apt install apparmor apparmor-profiles -y
sudo systemctl enable apparmor
sudo systemctl start apparmor

Step 8 – Backup & Recovery

sudo apt install rsnapshot -y
sudo nano /etc/rsnapshot.conf
# Sesuaikan path backup dan jadwal
sudo rsnapshot configtest
sudo rsnapshot daily

Step 9 – Otomatisasi dengan Ansible (Opsional)

# playbook.yml
- hosts: vps
  become: true
  tasks:
    - name: Update sistem
      apt: update_cache=yes upgrade=yes
    - name: Install fail2ban
      apt: name=fail2ban state=present
    - name: Configure SSH
      lineinfile:
        path: /etc/ssh/sshd_config
        regexp: '^Port'
        line: 'Port 2222'
    - name: Restart SSH
      service: name=ssh state=restarted

Tips Optimasi & Keamanan

Praktik Penjelasan
Gunakan SSH Key Lebih aman daripada password.
Rate‑Limit Terapkan iptables atau fail2ban untuk membatasi IP.
Audit Log Gunakan auditd untuk mencatat aktivitas sistem.
TLS Jika VPS menjalankan web, aktifkan HTTPS via Let’s Encrypt.
Security Headers Tambahkan Content-Security-Policy, X-Frame-Options, dll.

AI Writing Tools
Untuk menulis dokumentasi ini, saya menggunakan Notion AI dan Jasper. Jika Anda ingin membuat catatan atau manual, kunjungi:
- Notion AI
- Jasper

AI Image Tools
Diagram arsitektur keamanan dibuat dengan Midjourney dan Canva Pro:
- Midjourney
- Canva Pro

Troubleshooting Error Umum

Masalah Penyebab Solusi
SSH tidak dapat login setelah perubahan port Port belum dibuka di UFW sudo ufw allow 2222/tcp
Fail2Ban menolak IP sah Konfigurasi maxretry terlalu rendah Tingkatkan maxretry atau tambahkan whitelist
Monit tidak restart SSH monitrc tidak terkonfigurasi Pastikan check process sshd ada dan path pidfile benar
AppArmor menolak akses Profil AppArmor terlalu restriktif Nonaktifkan sementara (sudo aa-complain /etc/apparmor.d/*)

Kesimpulan

Dengan mengikuti langkah‑dari‑langkah di atas, VPS Anda akan memiliki lapisan pertahanan yang kuat: firewall, SSH hardening, fail2ban, monitoring, dan backup otomatis. Selalu perbarui sistem, audit log, dan gunakan AI tools seperti ChatGPT Plus atau Claude Pro untuk membantu menulis skrip dan dokumentasi. Keamanan VPS bukan sekadar konfigurasi, melainkan proses berkelanjutan. Selamat mengamankan!

🏷️ Topik Terkait: