Cara Setup VPS CentOS/AlmaLinux: Panduan Administrasi Server Linux 2026

CentOS, AlmaLinux, dan Rocky Linux: Panduan untuk Era Post-CentOS 8
Dunia server Linux enterprise telah berubah drastis sejak Red Hat mengumumkan penghentian CentOS 8 pada akhir 2021 dan mengalihkan fokus ke CentOS Stream (versi rolling release). Keputusan ini mendorong komunitas membuat dua fork enterprise yang kompatibel sepenuhnya dengan RHEL (Red Hat Enterprise Linux): AlmaLinux dan Rocky Linux. Keduanya menawarkan kompatibilitas biner 1:1 dengan RHEL, dukungan keamanan jangka panjang, dan didukung oleh komunitas yang aktif serta sponsor korporat yang kuat.
Panduan setup VPS ini berlaku untuk CentOS 7 (masih banyak digunakan hingga 2024), AlmaLinux 8/9, dan Rocky Linux 8/9 - karena ketiganya menggunakan manajemen paket yum/dnf yang sama dan filosofi administrasi yang serupa. Dalam panduan ini, kita akan menggunakan AlmaLinux 9 sebagai referensi utama.
Mengapa Memilih AlmaLinux/Rocky Linux daripada Ubuntu?
CentOS/AlmaLinux/Rocky Linux memiliki keunggulan tersendiri dibandingkan Ubuntu untuk konteks tertentu:

- Kompatibilitas RHEL: Binary compatible dengan Red Hat Enterprise Linux - sangat penting untuk lingkungan enterprise dan software yang hanya mendukung RHEL.
- Stabilitas ekstrem: Paket yang lebih konservatif dan telah diuji secara mendalam. Perubahan breaking jauh lebih jarang terjadi.
- SELinux bawaan: Security-Enhanced Linux sudah terintegrasi dan aktif secara default, memberikan lapisan keamanan tambahan yang sangat kuat.
- Standar industri hosting: Banyak panel kontrol hosting populer (cPanel/WHM, DirectAdmin, Plesk) secara historis mendukung CentOS/RHEL sebagai platform utama.
- Dukungan jangka panjang: AlmaLinux 9 mendapat dukungan hingga 2032.
Langkah 1: Koneksi SSH dan Update Awal
# Koneksi ke VPS
ssh root@IP_ADDRESS_VPS
# Update semua paket sistem
dnf update -y
# Atau untuk CentOS 7 (menggunakan yum):
# yum update -y
# Install tools yang sering dibutuhkan
dnf install -y wget curl vim nano git htop net-tools bind-utils
# Verifikasi versi OS
cat /etc/os-release
uname -r
Langkah 2: Konfigurasi Hostname dan Timezone
# Set hostname yang deskriptif
hostnamectl set-hostname nama-server-anda.namadomain.com
# Verifikasi
hostnamectl status
# Set timezone ke WIB (Jakarta)
timedatectl set-timezone Asia/Jakarta
# Aktifkan NTP untuk sinkronisasi waktu otomatis
timedatectl set-ntp true
# Verifikasi waktu
timedatectl status
# Edit /etc/hosts untuk menambahkan mapping hostname lokal
nano /etc/hosts
# Tambahkan baris: 127.0.0.1 nama-server-anda.namadomain.com nama-server-anda
Langkah 3: Membuat User Non-Root dengan Sudo
# Buat user baru
useradd namauser
passwd namauser
# Tambahkan user ke grup wheel (setara sudo di RHEL/AlmaLinux)
usermod -aG wheel namauser
# Verifikasi
id namauser
groups namauser
# Test akses sudo (pindah ke user baru)
su - namauser
sudo dnf update # Masukkan password user, bukan root
# Kembali ke root
exit
Langkah 4: Konfigurasi SSH yang Aman
Setup SSH Key Authentication
# Di komputer LOKAL, generate SSH key (jika belum ada):
ssh-keygen -t ed25519 -C "your-email@domain.com"
# Copy key ke server
ssh-copy-id namauser@IP_ADDRESS_VPS
# Atau manual:
mkdir -p /home/namauser/.ssh
chmod 700 /home/namauser/.ssh
# Paste isi public key Anda ke /home/namauser/.ssh/authorized_keys
nano /home/namauser/.ssh/authorized_keys
chmod 600 /home/namauser/.ssh/authorized_keys
chown -R namauser:namauser /home/namauser/.ssh
Hardening Konfigurasi SSH
nano /etc/ssh/sshd_config
# Konfigurasi yang disarankan:
Port 2244 # Ganti port default
AddressFamily inet # IPv4 saja (opsional)
PermitRootLogin no # Larang login root
PasswordAuthentication no # Matikan login password
ChallengeResponseAuthentication no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
MaxAuthTries 3
LoginGraceTime 20
X11Forwarding no
PrintLastLog yes
ClientAliveInterval 300
ClientAliveCountMax 2
# Restart SSH service
systemctl restart sshd
# Verifikasi dari terminal LAIN sebelum menutup sesi ini
# ssh -p 2244 namauser@IP_ADDRESS_VPS
Langkah 5: Konfigurasi Firewall dengan firewalld
AlmaLinux/CentOS menggunakan firewalld (bukan UFW seperti Ubuntu) sebagai firewall management tool:
# Pastikan firewalld aktif
systemctl enable firewalld
systemctl start firewalld
systemctl status firewalld
# Cek zone yang aktif
firewall-cmd --get-active-zones
firewall-cmd --list-all
# Izinkan service berdasarkan nama
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
# Izinkan port SSH kustom (ganti 2244 dengan port Anda)
firewall-cmd --permanent --add-port=2244/tcp
# Hapus service SSH default (port 22) jika sudah diganti
firewall-cmd --permanent --remove-service=ssh
# Reload untuk menerapkan perubahan
firewall-cmd --reload
# Verifikasi
firewall-cmd --list-all

Langkah 6: Memahami dan Mengelola SELinux
SELinux adalah salah satu keunikan utama distribusi berbasis RHEL. Jangan menonaktifkannya - pahami dan kelola dengan benar:
# Cek status SELinux
sestatus
getenforce
# Tiga mode SELinux:
# Enforcing - aktif dan memblokir pelanggaran (mode produksi)
# Permissive - aktif tapi hanya mencatat, tidak memblokir (untuk debugging)
# Disabled - dinonaktifkan sepenuhnya (TIDAK DISARANKAN)
# Ubah ke mode Permissive sementara (untuk debugging, tanpa reboot):
setenforce 0
# Kembali ke Enforcing:
setenforce 1
# Untuk mengubah secara permanen (edit file config):
nano /etc/selinux/config
# SELINUX=enforcing ← jangan ubah ini kecuali sangat terpaksa
# Cek log pelanggaran SELinux
ausearch -m avc -ts today | audit2why
# Install tools SELinux tambahan
dnf install -y policycoreutils-python-utils setroubleshoot
# Izinkan service/port yang diblokir SELinux
# Contoh: izinkan Nginx menggunakan port 8080
semanage port -a -t http_port_t -p tcp 8080
Langkah 7: Instalasi Web Server Nginx
# Install Nginx
dnf install -y nginx
# Aktifkan dan start Nginx
systemctl enable nginx
systemctl start nginx
systemctl status nginx
# Izinkan Nginx di firewall (sudah dilakukan di langkah sebelumnya)
# firewall-cmd --permanent --add-service=http
# firewall-cmd --permanent --add-service=https
# Konfigurasi konteks SELinux untuk direktori website
mkdir -p /var/www/namadomain.com/html
chown -R nginx:nginx /var/www/namadomain.com
chmod -R 755 /var/www/namadomain.com
# Atur SELinux context untuk direktori web
chcon -Rt httpd_sys_content_t /var/www/namadomain.com
# Buat konfigurasi virtual host
nano /etc/nginx/conf.d/namadomain.com.conf
# Isi file konfigurasi:
server {
listen 80;
server_name namadomain.com www.namadomain.com;
root /var/www/namadomain.com/html;
index index.html index.php;
location / {
try_files $uri $uri/ =404;
}
access_log /var/log/nginx/namadomain.com-access.log;
error_log /var/log/nginx/namadomain.com-error.log;
}
# Test konfigurasi
nginx -t
# Reload Nginx
systemctl reload nginx
Langkah 8: Instalasi PHP 8.3 via Remi Repository
# Install EPEL repository
dnf install -y epel-release
# Install Remi repository (sumber PHP versi terbaru)
dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm
# Aktifkan modul PHP 8.3
dnf module reset php
dnf module enable php:remi-8.3
# Install PHP dan ekstensi umum
dnf install -y php php-fpm php-mysqlnd php-curl php-gd php-mbstring php-xml php-zip php-bcmath php-intl php-opcache php-imagick
# Konfigurasi PHP-FPM untuk user nginx
nano /etc/php-fpm.d/www.conf
# Ubah: user = apache → user = nginx
# Ubah: group = apache → group = nginx
# Ubah: listen.owner = apache → listen.owner = nginx
# Ubah: listen.group = apache → listen.group = nginx
# Aktifkan dan start PHP-FPM
systemctl enable php-fpm
systemctl start php-fpm
Langkah 9: Instalasi MariaDB
# Install MariaDB
dnf install -y mariadb-server mariadb
# Aktifkan dan start MariaDB
systemctl enable mariadb
systemctl start mariadb
# Jalankan wizard keamanan
mysql_secure_installation
# Jawab Y untuk semua pertanyaan keamanan
# Buat database dan user untuk website
mysql -u root -p
CREATE DATABASE dbname CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'dbuser'@'localhost' IDENTIFIED BY 'PasswordKuat123!';
GRANT ALL PRIVILEGES ON dbname.* TO 'dbuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Langkah 10: SSL dengan Let's Encrypt
# Install Certbot via EPEL
dnf install -y certbot python3-certbot-nginx
# Dapatkan sertifikat SSL (pastikan domain sudah diarahkan ke IP VPS)
certbot --nginx -d namadomain.com -d www.namadomain.com
# Test pembaruan otomatis
certbot renew --dry-run
# Cek timer systemd untuk pembaruan otomatis
systemctl status certbot-renew.timer
Langkah 11: Konfigurasi Fail2ban
# Install Fail2ban
dnf install -y fail2ban
# Buat file konfigurasi lokal
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
nano /etc/fail2ban/jail.local
# Konfigurasi di bagian [DEFAULT]:
# bantime = 1h
# findtime = 10m
# maxretry = 3
# backend = systemd ← penting untuk AlmaLinux/CentOS 8+
# Konfigurasi jail SSH:
# [sshd]
# enabled = true
# port = 2244
# filter = sshd
# backend = systemd
# maxretry = 3
# Aktifkan dan start Fail2ban
systemctl enable fail2ban
systemctl start fail2ban
# Verifikasi
fail2ban-client status
fail2ban-client status sshd
Perbedaan Utama Administrasi CentOS/AlmaLinux vs Ubuntu
| Aspek | AlmaLinux/CentOS | Ubuntu |
|---|---|---|
| Package manager | dnf / yum | apt |
| Firewall default | firewalld | UFW |
| SELinux | Aktif (Enforcing) | AppArmor (lebih longgar) |
| Init system | systemd | systemd |
| Manajemen service | systemctl | systemctl |
| Direktori config Nginx | /etc/nginx/conf.d/ | /etc/nginx/sites-available/ |
| User default web server | nginx / apache | www-data |
| Repositori extra | EPEL + Remi | PPA (add-apt-repository) |
Baca Juga:
FAQ: Setup VPS CentOS/AlmaLinux
Apa perbedaan CentOS, AlmaLinux, dan Rocky Linux?
Ketiganya adalah distribusi Linux binary-compatible dengan RHEL. CentOS 7 adalah versi lama (EOL 2024). AlmaLinux dan Rocky Linux adalah pengganti CentOS yang dibuat komunitas, keduanya sangat setara dalam fitur dan stabilitas.
Apakah CentOS 7 masih bisa digunakan setelah EOL?
Tidak disarankan. CentOS 7 mencapai EOL Juni 2024, tidak ada pembaruan keamanan. Segera migrasi ke AlmaLinux 9 atau Rocky Linux 9.
Mengapa SELinux sering dibilang menyulitkan administrasi server?
SELinux memblokir operasi yang tidak sesuai policy, menyebabkan error yang membingungkan pemula. Namun ini adalah lapisan keamanan yang sangat kuat. Gunakan mode Permissive untuk debugging, identifikasi masalah dengan audit2why, lalu buat policy yang tepat.
Apakah AlmaLinux cocok untuk menjalankan cPanel/WHM?
Ya, AlmaLinux adalah platform yang paling direkomendasikan untuk cPanel/WHM dengan dukungan resmi penuh dari cPanel Inc.
Bagaimana cara menginstal Docker di AlmaLinux?
Tambahkan repo Docker, install docker-ce dan docker-compose-plugin via dnf, aktifkan dengan systemctl enable --now docker, tambahkan user ke grup docker.
Mana yang lebih baik untuk VPS baru: AlmaLinux atau Ubuntu Server?
AlmaLinux untuk cPanel, kompatibilitas RHEL, dan lingkungan enterprise. Ubuntu Server untuk pemula, ekosistem package yang lebih luas, dan tools modern berbasis Docker.
Artikel Terkait
Cara Setup VPS Ubuntu dari Nol: Panduan Lengkap untuk Pemula 2026
Panduan lengkap cara setup VPS Ubuntu dari nol untuk pemula. Pelajari instalasi awal, konfigurasi keamanan, instalasi web server, dan deployment website di VPS Ubuntu step by step.
Baca Selengkapnya →Cara Monitoring Server VPS: Tools dan Panduan Memantau Kesehatan Server 2026
Panduan lengkap cara monitoring server VPS menggunakan berbagai tools terbaik. Pelajari cara memantau CPU, RAM, disk, network, dan uptime server agar bisnis online Anda selalu berjalan optimal.
Baca Selengkapnya →Apa Itu VPS? Pengertian, Cara Kerja, dan Kapan Kamu Butuh VPS
Pelajari apa itu VPS (Virtual Private Server): pengertian lengkap, cara kerja, perbedaan VPS vs shared hosting, kelebihan dan kekurangan, serta kapan Anda perlu upgrade ke VPS.
Baca Selengkapnya →Butuh Hosting untuk Website Anda?
Dapatkan hosting cepat, aman, dan terpercaya dengan harga terjangkau. Gratis domain, SSL, dan support 24/7.
Jangan Ketinggalan Promo!
Subscribe newsletter kami dan dapatkan diskon hingga 50% untuk pembelian pertama kamu.
Gratis, tanpa spam. Bisa unsubscribe kapan saja.