Cara Setup VPS Ubuntu 24.04 LTS: SSH, Firewall dan Keamanan untuk Pemula
VPS atau Virtual Private Server menjadi salah satu pilihan populer untuk menjalankan website, aplikasi, API, database, bot, panel hosting, hingga berbagai layanan berbasis internet. Dibandingkan shared hosting, VPS memberikan kontrol yang jauh lebih luas karena pengguna dapat mengatur sistem operasi, layanan, keamanan, port, hingga konfigurasi server sesuai kebutuhan.
Salah satu sistem operasi yang paling banyak digunakan pada VPS adalah Ubuntu Server. Ubuntu dikenal memiliki komunitas besar, dokumentasi yang lengkap, dukungan paket yang luas, serta proses administrasi yang relatif mudah dipahami oleh pemula.
Dalam panduan ini kita akan membahas cara melakukan setup VPS menggunakan Ubuntu Server 24.04 LTS dari awal. Pembahasan dimulai dari login ke server menggunakan SSH, memperbarui sistem, membuat user baru, mengatur SSH, mengaktifkan firewall, mengubah zona waktu, memasang Fail2ban, hingga beberapa konfigurasi dasar agar VPS lebih siap digunakan.
Panduan ini dibuat untuk pengguna yang baru pertama kali menggunakan VPS sehingga setiap langkah dijelaskan secara bertahap.
Mengenal Ubuntu Server 24.04 LTS
Ubuntu 24.04 LTS memiliki codename Noble Numbat. Huruf LTS merupakan singkatan dari Long Term Support.
Versi LTS biasanya lebih cocok digunakan untuk server karena memiliki periode dukungan panjang dan berorientasi pada kestabilan sistem.
Ubuntu Server tidak membutuhkan antarmuka desktop seperti Windows. Sebagian besar pengelolaannya dilakukan melalui terminal menggunakan perintah Linux. Hal ini membuat penggunaan resource server menjadi lebih efisien.
Ubuntu Server dapat digunakan untuk berbagai kebutuhan seperti:
-
Web server
-
Hosting aplikasi
-
Database server
-
REST API
-
Node.js
-
Laravel
-
WordPress
-
Docker
-
Reverse proxy
-
VPN server
-
Game server
-
Cloud storage
-
Automation server
-
Development server
Untuk pemula, penggunaan command line mungkin terlihat rumit pada awalnya. Namun setelah memahami beberapa perintah dasar, pengelolaan VPS menjadi jauh lebih mudah.
Apa Itu VPS?
VPS adalah server virtual yang dibuat menggunakan teknologi virtualisasi pada sebuah server fisik.
Satu server fisik dapat menjalankan beberapa VPS secara terpisah. Masing-masing VPS mempunyai resource sendiri seperti:
-
CPU virtual
-
RAM
-
Penyimpanan
-
Alamat IP
-
Sistem operasi
-
Network interface
Berbeda dengan shared hosting, pengguna VPS biasanya mendapatkan akses administrator atau root.
Dengan akses tersebut, pengguna bebas memasang software dan melakukan konfigurasi server.
Sebagai contoh, pada shared hosting Anda mungkin hanya bisa memilih versi PHP melalui panel yang disediakan provider. Pada VPS, Anda dapat menentukan sendiri versi PHP, web server, database, firewall, hingga konfigurasi jaringan.
Fleksibilitas tersebut menjadi kelebihan VPS, tetapi juga berarti pengguna bertanggung jawab terhadap keamanan dan konfigurasi server.
Mengapa Menggunakan Ubuntu untuk VPS?
Ada banyak distribusi Linux yang dapat digunakan pada VPS, seperti Debian, AlmaLinux, Rocky Linux, CentOS Stream, Fedora, dan Ubuntu.
Ubuntu menjadi pilihan yang menarik untuk pemula karena beberapa alasan.
1. Dokumentasi Luas
Ubuntu mempunyai dokumentasi resmi dan komunitas yang sangat besar. Ketika menemukan masalah, biasanya tersedia banyak referensi yang dapat membantu menyelesaikannya.
2. Dukungan Software
Sebagian besar software server populer menyediakan panduan instalasi khusus untuk Ubuntu.
Misalnya:
-
Nginx
-
Apache
-
PHP
-
MariaDB
-
MySQL
-
PostgreSQL
-
Docker
-
Node.js
-
Redis
3. Paket Mudah Dikelola
Ubuntu menggunakan APT sebagai package manager.
Contoh pemasangan software:
sudo apt install nginx4. Cocok untuk Server Cloud
Ubuntu tersedia pada hampir semua penyedia VPS dan layanan cloud.
5. Versi LTS
Ubuntu menyediakan versi Long Term Support yang cocok untuk server yang membutuhkan stabilitas jangka panjang.
Persiapan Sebelum Mengatur VPS
Sebelum memulai konfigurasi, pastikan Anda memiliki beberapa informasi dari provider VPS.
Biasanya informasi tersebut dikirim melalui email atau ditampilkan pada dashboard layanan.
Informasi yang diperlukan antara lain:
IP VPS
Username
Password
Port SSHContoh:
IP Address : 203.0.113.10
Username : root
Port : 22Alamat di atas hanya contoh. Gunakan alamat IP VPS milik Anda sendiri.
Selain itu, siapkan aplikasi terminal.
Pengguna Windows 10 atau Windows 11 dapat menggunakan:
-
Windows Terminal
-
PowerShell
-
Command Prompt
Anda juga dapat menggunakan aplikasi SSH lain seperti PuTTY.
1. Login ke VPS Menggunakan SSH
SSH atau Secure Shell digunakan untuk melakukan koneksi ke server dari jarak jauh dengan komunikasi terenkripsi.
Buka Terminal atau PowerShell kemudian jalankan:
ssh root@IP_VPSContoh:
ssh root@203.0.113.10Jika provider menggunakan port selain 22:
ssh root@203.0.113.10 -p 2222Ketika pertama kali tersambung, biasanya muncul pesan mengenai fingerprint server.
Ketik:
yesKemudian masukkan password root.
Saat mengetik password di terminal, karakter password biasanya tidak terlihat. Hal tersebut normal.
Apabila berhasil, terminal akan menampilkan prompt server.
Contoh:
root@server:~#Artinya Anda sudah berhasil masuk ke VPS.
2. Mengecek Versi Ubuntu
Sebelum melakukan konfigurasi, periksa versi Ubuntu yang digunakan.
Jalankan:
lsb_release -aAlternatifnya:
cat /etc/os-releasePada Ubuntu 24.04 LTS akan terlihat informasi yang mengarah ke:
Ubuntu 24.04 LTS
Noble NumbatLangkah ini penting karena beberapa perintah atau paket dapat berbeda pada versi Ubuntu tertentu.
3. Update Sistem Ubuntu
Setelah berhasil login, hal pertama yang sebaiknya dilakukan adalah memperbarui daftar paket.
Jalankan:
apt updateKemudian:
apt upgrade -yAtau jalankan sekaligus:
apt update && apt upgrade -yPerintah apt update memperbarui informasi paket dari repository.
Sedangkan:
apt upgradememasang versi terbaru dari paket yang tersedia.
Menjaga sistem tetap diperbarui sangat penting karena update sering membawa perbaikan bug dan keamanan.
Setelah update besar, Anda dapat melakukan reboot:
rebootTunggu server kembali aktif lalu login kembali menggunakan SSH.
4. Mengatur Hostname Server
Hostname adalah nama yang digunakan untuk mengenali server.
Cek hostname saat ini:
hostnameMisalnya Anda ingin mengubahnya menjadi:
server1Jalankan:
hostnamectl set-hostname server1Kemudian cek:
hostnamectlGunakan nama sederhana dan mudah dikenali.
Contoh:
web01
database01
app01
production01Jika memiliki beberapa VPS, pemberian hostname yang terstruktur akan membantu administrasi.
5. Mengatur Zona Waktu
Server VPS terkadang menggunakan UTC secara default.
Untuk pengguna Indonesia, Anda dapat menggunakan zona waktu Asia/Jakarta.
Periksa zona waktu:
timedatectlKemudian ubah menjadi WIB:
timedatectl set-timezone Asia/JakartaPeriksa kembali:
timedatectlWaktu server yang benar sangat penting karena digunakan pada log, cron job, aplikasi, database, dan berbagai layanan lainnya.
6. Membuat User Administrator Baru
Menggunakan akun root terus-menerus bukan praktik yang ideal.
Sebaiknya buat user administrator terpisah.
Contoh kita membuat user bernama:
adminJalankan:
adduser adminServer akan meminta Anda membuat password.
Kemudian masukkan user tersebut ke grup sudo:
usermod -aG sudo adminSekarang user admin dapat menjalankan perintah administratif dengan menambahkan sudo.
Contoh:
sudo apt updateUntuk menguji user:
su - adminKemudian:
sudo whoamiJika hasilnya:
rootartinya akses sudo sudah bekerja.
7. Menggunakan SSH Key
Password memang praktis, tetapi SSH key memberikan metode autentikasi yang lebih baik untuk pengelolaan server.
Pada komputer lokal, buat SSH key:
ssh-keygenPada sistem modern biasanya Anda juga dapat menggunakan Ed25519:
ssh-keygen -t ed25519Ikuti instruksi yang tampil.
Public key biasanya tersimpan pada:
~/.ssh/id_ed25519.pubSedangkan private key:
~/.ssh/id_ed25519Private key jangan dibagikan kepada siapa pun.
Setelah itu public key perlu ditambahkan ke server pada file:
~/.ssh/authorized_keysJika komputer Anda mempunyai perintah ssh-copy-id, prosesnya dapat dilakukan menggunakan:
ssh-copy-id admin@IP_VPSSetelah selesai, uji koneksi:
ssh admin@IP_VPSPastikan SSH key dapat digunakan sebelum menonaktifkan autentikasi password atau login root.
8. Mengamankan Konfigurasi SSH
Konfigurasi SSH biasanya berada pada:
/etc/ssh/sshd_configSebelum mengubahnya, buat backup:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backupBuka file:
sudo nano /etc/ssh/sshd_configSalah satu opsi keamanan yang dapat dipertimbangkan adalah membatasi login root.
Cari atau tambahkan:
PermitRootLogin noJika SSH key sudah teruji dan Anda memang ingin menonaktifkan autentikasi password, konfigurasi dapat disesuaikan menjadi:
PasswordAuthentication noNamun jangan menonaktifkan password sebelum memastikan SSH key benar-benar berfungsi.
Kesalahan konfigurasi SSH dapat membuat Anda kehilangan akses ke server.
Setelah mengubah konfigurasi, validasi terlebih dahulu:
sudo sshd -tJika tidak ada error, restart SSH:
sudo systemctl restart sshJangan langsung menutup sesi SSH lama.
Buka terminal baru dan coba login kembali. Jika sesi baru berhasil, barulah sesi sebelumnya dapat ditutup.
9. Mengaktifkan Firewall UFW
Ubuntu menyediakan UFW atau Uncomplicated Firewall.
Cek statusnya:
sudo ufw statusSebelum mengaktifkan firewall, izinkan SSH:
sudo ufw allow OpenSSHAtau apabila menggunakan port 22:
sudo ufw allow 22/tcpJika server akan menjalankan website, buka port HTTP:
sudo ufw allow 80/tcpKemudian HTTPS:
sudo ufw allow 443/tcpAktifkan firewall:
sudo ufw enablePeriksa:
sudo ufw status verboseAnda mungkin melihat aturan seperti:
22/tcp ALLOW
80/tcp ALLOW
443/tcp ALLOWHanya buka port yang benar-benar dibutuhkan.
Membuka banyak port tanpa kebutuhan akan memperluas permukaan serangan terhadap server.
10. Memasang Fail2ban
Server yang terhubung ke internet dapat menerima percobaan login otomatis dari bot.
Fail2ban dapat membantu memblokir alamat IP yang melakukan percobaan login berulang berdasarkan pola pada log.
Instal:
sudo apt install fail2ban -yAktifkan service:
sudo systemctl enable fail2banKemudian jalankan:
sudo systemctl start fail2banPeriksa status:
sudo systemctl status fail2banUntuk melihat status jail SSH:
sudo fail2ban-client status sshdFail2ban bukan pengganti konfigurasi keamanan lain. Gunakan sebagai salah satu lapisan perlindungan bersama SSH key, firewall, update rutin, dan kebijakan akses yang baik.
11. Menginstal Tools Dasar
Beberapa utility sering diperlukan ketika mengelola VPS.
Anda dapat memasangnya dengan:
sudo apt install curl wget git unzip zip htop nano -yFungsinya antara lain:
curl digunakan untuk melakukan request atau mengambil resource melalui jaringan.
wget digunakan untuk mengunduh file.
git digunakan untuk pengelolaan source code.
unzip dan zip digunakan untuk file arsip.
htop membantu memantau resource server secara interaktif.
nano merupakan text editor terminal yang relatif mudah digunakan pemula.
12. Mengecek Resource VPS
Untuk melihat penggunaan RAM:
free -hUntuk mengecek kapasitas penyimpanan:
df -hUntuk melihat penggunaan CPU dan proses:
htopAtau:
topUntuk mengetahui uptime server:
uptimeMonitoring sederhana seperti ini penting ketika server mulai menjalankan aplikasi.
Jika server terasa lambat, Anda dapat memeriksa apakah RAM, CPU, atau penyimpanan mulai penuh.
13. Mengecek Alamat IP Server
Untuk melihat alamat IP:
ip addrUntuk mengetahui public IP melalui layanan eksternal, salah satu caranya:
curl ifconfig.mePublic IP VPS nantinya dapat digunakan untuk mengarahkan domain melalui DNS.
Sebagai contoh, domain dapat mempunyai A record:
Type : A
Name : @
Value: IP_VPSKonfigurasi DNS dilakukan melalui layanan pengelola domain atau DNS yang digunakan.
14. Menginstal Nginx sebagai Web Server
Jika VPS akan digunakan untuk website, salah satu web server populer adalah Nginx.
Instal menggunakan:
sudo apt install nginx -yAktifkan:
sudo systemctl enable nginxJalankan:
sudo systemctl start nginxPeriksa status:
sudo systemctl status nginxKemudian buka alamat IP VPS melalui browser:
http://IP_VPSJika konfigurasi berhasil, halaman default Nginx biasanya akan muncul.
Pastikan firewall mengizinkan HTTP dan HTTPS.
15. Mengenal Systemctl
Pada Ubuntu modern, banyak service dikelola menggunakan systemd.
Perintah yang sering digunakan antara lain:
sudo systemctl start nginxMemulai layanan.
sudo systemctl stop nginxMenghentikan layanan.
sudo systemctl restart nginxMelakukan restart layanan.
sudo systemctl reload nginxMemuat ulang konfigurasi tanpa restart penuh apabila service mendukungnya.
sudo systemctl status nginxMelihat status service.
sudo systemctl enable nginxMembuat service otomatis dijalankan ketika server boot.
Memahami systemctl akan sangat membantu ketika mengelola berbagai service pada VPS.
16. Melihat Log Server
Ketika terjadi error, jangan terburu-buru melakukan reinstall VPS.
Langkah pertama adalah membaca log.
Untuk melihat log systemd:
journalctlUntuk melihat error terbaru:
journalctl -p errUntuk melihat log service Nginx:
journalctl -u nginxMengikuti log secara real-time:
journalctl -u nginx -fNginx juga biasanya memiliki file log seperti:
/var/log/nginx/access.logdan:
/var/log/nginx/error.logKemampuan membaca log merupakan salah satu kemampuan terpenting dalam administrasi server.
17. Mengaktifkan Update Keamanan Otomatis
Server yang jarang diperbarui lebih berisiko memiliki kerentanan lama.
Ubuntu menyediakan mekanisme unattended upgrades yang dapat digunakan untuk memasang pembaruan tertentu secara otomatis.
Pastikan paket tersedia:
sudo apt install unattended-upgrades -yKemudian:
sudo dpkg-reconfigure unattended-upgradesWalaupun pembaruan otomatis berguna, administrator tetap sebaiknya melakukan monitoring dan pengecekan server secara berkala.
Untuk server produksi penting, backup dan pengujian sebelum perubahan besar tetap disarankan.
18. Membuat Swap Jika Dibutuhkan
VPS dengan RAM kecil kadang memerlukan swap sebagai cadangan memori.
Sebelum membuat swap, periksa:
free -hatau:
swapon --showJika provider belum menyediakan swap dan memang diperlukan, Anda dapat membuat swap file.
Contoh 2 GB:
sudo fallocate -l 2G /swapfileAtur permission:
sudo chmod 600 /swapfileFormat:
sudo mkswap /swapfileAktifkan:
sudo swapon /swapfilePeriksa:
swapon --showAgar tetap aktif setelah reboot, tambahkan konfigurasi berikut ke /etc/fstab:
/swapfile none swap sw 0 0Swap bukan pengganti RAM. Jika aplikasi terus kekurangan memori, solusi terbaik biasanya menaikkan kapasitas RAM VPS atau mengoptimalkan aplikasinya.
19. Backup VPS
Jangan menganggap VPS selalu aman hanya karena berada pada data center.
Server tetap dapat mengalami masalah karena:
-
Kesalahan konfigurasi
-
Human error
-
Aplikasi bermasalah
-
Database corrupt
-
Update gagal
-
Credential bocor
-
Serangan keamanan
-
Masalah storage
-
Penghapusan file secara tidak sengaja
Gunakan fasilitas snapshot atau backup dari provider jika tersedia.
Untuk aplikasi penting, pertimbangkan strategi backup yang memiliki salinan di lokasi berbeda.
Jangan hanya menyimpan backup pada VPS yang sama.
Jika server rusak total, backup yang berada pada server tersebut bisa ikut hilang.
20. Checklist Keamanan VPS Setelah Instalasi
Setelah konfigurasi dasar selesai, gunakan checklist berikut:
-
Sistem sudah diperbarui
-
User administrator non-root sudah dibuat
-
Password kuat digunakan
-
SSH key sudah dikonfigurasi
-
Login root dibatasi jika memungkinkan
-
UFW aktif
-
Hanya port yang dibutuhkan yang dibuka
-
Fail2ban aktif
-
Zona waktu benar
-
Backup tersedia
-
Update keamanan diperhatikan
-
Service yang tidak diperlukan tidak dijalankan
-
Credential tidak disimpan di source code
-
Private key SSH tidak dibagikan
-
Log diperiksa secara berkala
Tidak ada satu konfigurasi yang dapat menjamin server sepenuhnya aman. Keamanan server merupakan proses berkelanjutan.
Spesifikasi VPS untuk Pemula
Kebutuhan VPS bergantung pada aplikasi yang dijalankan.
Untuk belajar Linux dan menjalankan aplikasi sederhana, VPS kecil sudah cukup.
Sebagai gambaran awal:
CPU : 1-2 vCPU
RAM : 1-2 GB
Storage : 20-40 GB SSD/NVMe
OS : Ubuntu Server