#!/bin/bash # Pastikan dijalankan sebagai root if [ "$EUID" -ne 0 ]; then echo "Error: Script ini harus dijalankan sebagai root!" exit 1 fi echo "================================================================" echo " SETUP SCRIPT UNTUK VPS DENGAN FIREWALL KETAT " echo "================================================================" # 1. Update sistem dan bersihkan paket usang echo "[1/4] Mengupdate sistem..." apt update && apt upgrade -y apt install curl wget git ufw net-tools software-properties-common -y # 2. Konfigurasi UFW yang Aman (Hanya izinkan port esensial) echo "[2/4] Mengatur UFW Firewall agar tidak terkunci..." ufw --force reset ufw default deny incoming ufw default allow outgoing # Izinkan port yang dijamin aman dan biasanya dibuka oleh provider ufw allow 22/tcp comment 'SSH' ufw allow 80/tcp comment 'HTTP' ufw allow 443/tcp comment 'HTTPS' # Aktifkan firewall ufw --force enable echo "Firewall aktif. Hanya port 22, 80, dan 443 yang dibuka untuk inbound." # 3. Instal Docker & Docker Compose (Standar deployment aman) echo "[3/4] Menginstal Docker untuk isolasi aplikasi..." if ! command -v docker &> /dev/null; then apt-get remove -y docker docker-engine docker.io containerd runc 2>/dev/null curl -fsSL https://get.docker.com -o get-docker.sh sh get-docker.sh rm get-docker.sh systemctl enable docker systemctl start docker echo "Docker berhasil diinstal." else echo "Docker sudah terinstal sebelumnya." fi # 4. Informasi Selesai IP_PUBLIK=$(curl -s ifconfig.me) echo "" echo "================================================================" echo " SETUP SELESAI DENGAN AMAN! " echo "================================================================" echo "IP VPS Anda : $IP_PUBLIK" echo "Status Firewall : Aktif (Aman dari blokiran provider)" echo "Rekomendasi : Gunakan port 80 atau 443 untuk web/aplikasi Anda." echo "================================================================"