DEV Community

Cover image for Best Practices: 4 Langkah Krusial Mengonfigurasi VPS Linux Baru (Ubuntu/Debian)
maldiharyojudanto
maldiharyojudanto

Posted on Fully Autonomous

Best Practices: 4 Langkah Krusial Mengonfigurasi VPS Linux Baru (Ubuntu/Debian)

Membeli VPS (Virtual Private Server) baru selalu memberikan antusiasme tersendiri. Begitu mendapatkan kredensial IP, username root, dan password, naluri pertama sebagian besar developer adalah langsung meng-install stack aplikasi mereka: Docker, web server, bot, atau database.

Namun, menjalankan aplikasi di atas server Linux yang masih "polos" tanpa konfigurasi fondasi ibarat membangun rumah di atas tanah yang belum dipadatkan.

Tanpa konfigurasi awal yang benar, Anda berpotensi menemui kendala klasik yang membingungkan di kemudian hari:

  • Jadwal cron job atau backup berjalan di waktu yang salah karena perbedaan zona waktu server.
  • Server tiba-tiba freeze atau unresponsive tanpa log yang jelas saat pemakaian memori melonjak (Out-of-Memory / OOM Killer).
  • Gagal mengunduh dependensi atau repositori pihak ketiga karena tools dan sertifikat SSL bawaan belum mutakhir.
  • Seluruh port server terbuka bebas tanpa pagar pelindung sehingga rentan menjadi santapan empuk bot pemindai (automated port scanners) di internet.

Artikel ini merangkum 4 langkah fondasi awal yang wajib dilakukan di server berbasis Ubuntu atau Debian, sesaat setelah Anda login pertama kali via SSH.


⚡ TL;DR — Cheatsheet Cepat

Bagi Anda yang sudah terbiasa dengan terminal Linux dan hanya membutuhkan rangkuman perintah siap pakai, berikut adalah sontekan lengkapnya:

# 1. Sinkronisasi Timezone ke Waktu Lokal (WIB)
timedatectl set-timezone Asia/Jakarta

# 2. Setup Swap Memory 2 GB (Jaring Pengaman RAM)
fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile none swap sw 0 0' | tee -a /etc/fstab

# 3. Update Repositori & Install Paket Esensial
apt update && apt upgrade -y
apt install -y curl wget htop ca-certificates tar nano

# 4. Kunci Port Server dengan UFW Firewall
apt install -y ufw
ufw allow 22/tcp
ufw --force enable

# 5. Reboot 1x (Memastikan kernel terbaru aktif dan sistem fresh)
reboot
Enter fullscreen mode Exit fullscreen mode

Di bawah ini adalah pembahasan mendalam mengapa masing-masing langkah tersebut krusial, cara kerjanya di balik layar, serta cara verifikasinya.


1. Sinkronisasi Timezone Server

Secara default, hampir seluruh penyedia cloud (seperti Hetzner, DigitalOcean, Linode, AWS) menyetel zona waktu server ke UTC (Coordinated Universal Time).

Mengapa ini penting?

Jika server Anda dibiarkan berada di zona waktu UTC:

  • Jadwal Otomatis (Cron Job): Bila Anda menjadwalkan tugas backup database pada jam 03:00 dini hari, server sebenarnya baru akan mengeksekusinya pada jam 10:00 WIB (karena ada selisih 7 jam).
  • Audit Log dan Debugging: Saat terjadi error pada aplikasi, mencocokkan waktu laporan pengguna dengan timestamp pada log server akan sangat membingungkan.

Cara Konfigurasi

Jalankan perintah berikut untuk menyetel zona waktu ke Waktu Indonesia Barat (WIB):

timedatectl set-timezone Asia/Jakarta
Enter fullscreen mode Exit fullscreen mode

Catatan: Untuk WITA gunakan Asia/Makassar, dan untuk WIT gunakan Asia/Jayapura.

Cara Verifikasi

Periksa status waktu sistem:

timedatectl
Enter fullscreen mode Exit fullscreen mode

Pastikan baris Time zone menampilkan Asia/Jakarta (WIB, +0700) dan jam yang tertera pada Local time sudah cocok dengan jam di smartphone Anda.


2. Membuat Swap RAM (Virtual Memory) 2 GB

Banyak developer menyewa VPS dengan spesifikasi ekonomis (misalnya 1 Core CPU dengan 1 GB atau 2 GB RAM). Pada kapasitas memori terbatas seperti ini, sistem operasi sangat rentan mengalami kehabisan memori (memory exhaustion).

Mengapa ini penting?

Ketika penggunaan RAM fisik menyentuh 100% (misalnya saat proses npm install, kompilasi Docker image, atau lonjakan traffic tiba-tiba), mekanisme kernel Linux yang disebut OOM Killer (Out-of-Memory Killer) akan aktif secara agresif.

Kernel akan secara paksa mematikan proses yang memakan memori terbesar—yang sering kali adalah database MySQL, web server, atau bahkan layanan SSH itu sendiri—sehingga VPS menjadi freeze atau tidak bisa diakses sama sekali.

Swap file bertindak sebagai safety net (jaring pengaman). Ruang penyimpanan SSD akan dialokasikan sebagai memori cadangan darurat saat RAM fisik penuh, menjaga server tetap bernapas dan stabil.

Langkah Pembuatan

1. Alokasikan file swap sebesar 2 GB:

fallocate -l 2G /swapfile
Enter fullscreen mode Exit fullscreen mode

2. Kunci hak akses file demi keamanan:
Hanya user root yang boleh membaca atau menulis file swap ini.

chmod 600 /swapfile
Enter fullscreen mode Exit fullscreen mode

3. Format file menjadi area Swap:

mkswap /swapfile
Enter fullscreen mode Exit fullscreen mode

4. Aktifkan Swap pada sistem:

swapon /swapfile
Enter fullscreen mode Exit fullscreen mode

5. Jadikan permanen agar tidak hilang saat server restart:
Tambahkan entri konfigurasi ke file /etc/fstab:

echo '/swapfile none swap sw 0 0' | tee -a /etc/fstab
Enter fullscreen mode Exit fullscreen mode

Cara Verifikasi

Jalankan perintah pengecekan kapasitas memori:

free -h
Enter fullscreen mode Exit fullscreen mode

Output akan menunjukkan baris Swap dengan kapasitas sekitar 2.0Gi. Jika kolom total sudah tidak lagi 0B, Swap Anda telah aktif dan siap melindungi server dari crash.


3. Pembaruan Sistem & Instalasi Perkakas Esensial

Image OS bawaan dari provider VPS sering kali merupakan snapshot lama yang dibuat beberapa bulan sebelumnya. Paket-paket di dalamnya berpotensi memiliki celah keamanan (vulnerabilities) yang belum ditambal.

Mengapa ini penting?

  • Menghindari konflik dependensi saat Anda mulai memasang software baru.
  • Memastikan sertifikat root CA (Certificate Authority) terbarukan, sehingga proses unduhan HTTPS ke API atau repositori eksternal tidak mengalami error SSL handshake.
  • Menyediakan utilitas pemantauan mendasar sejak hari pertama sebelum aplikasi mulai berjalan.

Langkah Eksekusi

Perbarui daftar indeks paket dan lakukan pembaruan sistem secara menyeluruh:

apt update && apt upgrade -y
Enter fullscreen mode Exit fullscreen mode

Setelah proses update selesai, pasang beberapa perkakas CLI esensial yang hampir selalu dibutuhkan oleh installer apa pun:

apt install -y curl wget htop ca-certificates tar nano
Enter fullscreen mode Exit fullscreen mode

Penjelasan Utilitas yang Dipasang:

  • curl & wget: Utility standar untuk mengunduh skrip instalasi, repositori GPG key, dan file konfigurasi.
  • htop: Monitor visual interaktif untuk memantau penggunaan CPU, RAM, dan Swap secara real-time.
  • ca-certificates: Kumpulan sertifikat otoritas resmi agar sistem mengenali koneksi HTTPS yang aman.
  • tar: Ekstraktor arsip paket terkompresi.
  • nano: Text editor terminal yang ramah dan mudah digunakan untuk mengedit file konfigurasi kilat.

Cara Verifikasi

Jalankan monitor sistem:

htop
Enter fullscreen mode Exit fullscreen mode

Anda akan melihat tampilan visual CPU bar, kapasitas RAM, dan baris Swap yang sudah terisi. Tekan tombol q untuk keluar dari monitor.


4. Mengamankan Pintu Server dengan UFW Firewall

Secara default di server Linux baru, tidak ada filter firewall yang aktif. Membiarkan seluruh port terbuka ke publik tanpa pagar pembatas adalah undangan terbuka bagi bot pemindai di internet yang secara konstan mencari celah.

Gunakan UFW (Uncomplicated Firewall) untuk mengunci seluruh port masuk dan hanya membuka akses yang benar-benar Anda izinkan.

Mengapa ini penting?

UFW menerapkan prinsip keamanan mendasar: Tolak semua koneksi masuk (Default Deny), dan izinkan hanya yang dibutuhkan (Explicit Allow).

Langkah Eksekusi

1. Pasang UFW dan Izinkan Akses SSH Terlebih Dahulu:

⚠️ PENTING: Selalu izinkan port SSH terlebih dahulu sebelum mengaktifkan firewall agar Anda tidak terkunci keluar dari server sendiri!

apt install -y ufw
ufw allow 22/tcp
Enter fullscreen mode Exit fullscreen mode

2. Aktifkan Firewall:

ufw enable
Enter fullscreen mode Exit fullscreen mode

(Ketik y dan tekan Enter jika terminal meminta konfirmasi).

3. Verifikasi Status Firewall:

ufw status
Enter fullscreen mode Exit fullscreen mode

Output akan menunjukkan status aktif dengan aturan port 22 terbuka:

Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere
22/tcp (v6)                ALLOW       Anywhere (v6)
Enter fullscreen mode Exit fullscreen mode

💡 Wawasan Menarik: Mode Siluman (Stealth Mode) dengan Cloudflare Tunnel

Jika di masa mendatang Anda menjalankan web server atau bot yang dirutekan melalui Cloudflare Tunnel (cloudflared), Anda TIDAK PERLU membuka port web (80, 443, atau port aplikasi seperti 3000) di UFW!

Mengapa? Karena Cloudflare Tunnel bekerja secara outbound (dari dalam server menghubungi Cloudflare, bukan publik mengetuk server Anda). Seluruh aplikasi web Anda otomatis terlindungi di dalam server tanpa perlu mengekspos satu pun port tambahan ke internet publik. Siapa pun yang mencoba memindai IP server Anda akan menemukan semua port tertutup rapat!


🔄 Sentuhan Akhir: Reboot 1 Kali

Saat perintah apt upgrade -y pertama kali dijalankan, sistem biasanya memperbarui kernel Linux dan dependensi inti sistem.

Agar server benar-benar berjalan di atas versi kernel terbaru dengan kondisi fresh state, serta untuk membuktikan bahwa konfigurasi Swap dan UFW otomatis aktif saat booting:

reboot
Enter fullscreen mode Exit fullscreen mode

Catatan: Koneksi SSH Anda akan terputus sesaat. Tunggu sekitar 15–30 detik, lalu login kembali ke VPS Anda. Sekarang fondasi sistem operasi Anda sudah 100% siap tempur!


🛡️ Langkah Lanjutan (Next Steps)

Setelah 4 fondasi dasar di atas selesai, server Anda telah memiliki stabilitas dan proteksi port yang solid. Jika Anda berencana menggunakan VPS ini untuk lingkungan produksi yang lebih ketat, pertimbangkan langkah lanjutan berikut:

  • Membuat Non-Root Sudo User: Menghindari penggunaan langsung akun root untuk aktivitas harian guna meminimalisir risiko salah ketik perintah.
  • Menggunakan SSH Key Authentication: Mengganti autentikasi password dengan pasangan kunci SSH (public/private key) untuk menutup celah serangan brute-force.

Kesimpulan

Menyiapkan VPS tidak selalu harus rumit. Dengan meluangkan waktu 2–3 menit untuk menjalankan 4 langkah fondasi ini (Timezone, Swap, System Update, dan UFW Firewall), Anda telah mengeliminasi sebagian besar potensi masalah stabilitas dan celah keamanan yang sering membingungkan pengguna VPS baru.

Sekarang server Anda sudah bersih, stabil, dan siap untuk tahap berikutnya—baik itu memasang Docker Engine, web server, maupun men-deploy aplikasi Anda!


Apakah Anda memiliki konfigurasi awal wajib lainnya yang selalu Anda terapkan di VPS baru? Bagikan pengalaman Anda di kolom komentar!

Top comments (0)