Serapan
person
Advertisement
Top Header Banner

Instalasi CyberPanel AlmaLinux 9 Sekaligus Hardening Server

Andika Prasetiawan
Andika Prasetiawan Diterbitkan 20 Juni 2026, 18:56 WIB
Instalasi CyberPanel AlmaLinux 9 Sekaligus Hardening Server
zoom_in
text_fields

Berikut prosedur instalasi CyberPanel pada VPS AlmaLinux 9 sekaligus hardening server. Urutannya sengaja dibuat agar SSH tidak terkunci dan CyberPanel tetap berfungsi.

CyberPanel saat ini mendukung instalasi baru AlmaLinux 8–9, membutuhkan minimal 1 GB RAM, tetapi 2 GB RAM atau lebih lebih disarankan, serta disk minimal 10 GB. Gunakan VPS bersih tanpa panel/web server lain.

Penting: jangan menonaktifkan login root atau password SSH sebelum user baru dan SSH key benar-benar berhasil diuji di terminal kedua.

1. Persiapan DNS dan VPS

Siapkan subdomain khusus panel, misalnya:

panel.domainanda.com

Buat DNS:

Type : A
Name : panel
Value: IP_VPS
Proxy: DNS Only
TTL  : Auto

Hostname sebaiknya berupa FQDN dan sudah diarahkan ke IP server sebelum konfigurasi SSL panel.

Masuk sebagai root:

ssh root@IP_VPS

Periksa sistem:

cat /etc/os-release
hostnamectl
free -h
df -h
ip address

Atur hostname:

hostnamectl set-hostname panel.domainanda.com

Tambahkan ke /etc/hosts:

nano /etc/hosts

Contoh:

127.0.0.1 localhost localhost.localdomain
IP_VPS panel.domainanda.com panel

Periksa:

hostname -f

Hasil yang diharapkan:

panel.domainanda.com

2. Update AlmaLinux

dnf clean all
dnf makecache
dnf update -y

Instal utilitas dasar:

dnf install -y \
    curl \
    wget \
    nano \
    vim \
    git \
    unzip \
    tar \
    bind-utils \
    net-tools \
    policycoreutils-python-utils \
    firewalld \
    fail2ban \
    fail2ban-firewalld \
    rsync \
    chrony \
    dnf-automatic

Aktifkan sinkronisasi waktu:

systemctl enable --now chronyd
timedatectl set-timezone Asia/Jakarta
timedatectl

Reboot jika kernel diperbarui:

reboot

Masuk kembali:

ssh root@IP_VPS

3. Buat user administrator Linux

Ganti andika jika ingin nama lain:

useradd -m -s /bin/bash andika
passwd andika

Tambahkan ke grup administrator AlmaLinux:

usermod -aG wheel andika

Pastikan grupnya:

id andika

Uji sudo:

su - andika
sudo whoami

Hasilnya harus:

root

Keluar kembali:

exit

4. Pasang SSH key untuk user baru

Dari komputer Windows

Buka PowerShell:

ssh-keygen -t ed25519 -a 100

Tekan Enter untuk lokasi default dan gunakan passphrase yang kuat.

Tampilkan public key:

type $env:USERPROFILE\.ssh\id_ed25519.pub

Salin seluruh isinya.

Di server

mkdir -p /home/andika/.ssh
nano /home/andika/.ssh/authorized_keys

Tempel public key, lalu:

chown -R andika:andika /home/andika/.ssh
chmod 700 /home/andika/.ssh
chmod 600 /home/andika/.ssh/authorized_keys
restorecon -Rv /home/andika/.ssh

Buka terminal baru dan uji:

ssh andika@IP_VPS

Kemudian:

sudo whoami

Jangan melanjutkan SSH hardening bila login key belum berhasil.

5. Instal CyberPanel

Installer CyberPanel harus dijalankan sebagai root.

Masuk root:

sudo -i

Unduh terlebih dahulu agar dapat diperiksa:

cd /root
curl -fsSL https://cyberpanel.net/install.sh -o install-cyberpanel.sh

Periksa hash dan bagian awal:

sha256sum install-cyberpanel.sh
head -n 40 install-cyberpanel.sh

Jalankan:

sh install-cyberpanel.sh

Pilihan instalasi yang disarankan untuk server website biasa:

1. Install CyberPanel with OpenLiteSpeed
Full Service: N
Remote MySQL: N
CyberPanel Version: Latest
Password: s
Memcached: Y
Redis: Y
Watchdog: Y

Gunakan password panel minimal 20 karakter acak, misalnya dibuat dengan:

openssl rand -base64 32

Mengapa memilih Full Service N?

Jika server hanya digunakan untuk website, jangan memasang layanan yang tidak dibutuhkan seperti:

  • Mail server;

  • DNS server;

  • FTP server.

Semakin sedikit layanan aktif, semakin kecil permukaan serangannya. Untuk transfer file, gunakan SFTP melalui SSH.

Apabila server memang akan menjadi mail server atau nameserver, pilih Full Service dan buka portnya secara selektif setelah instalasi.

Setelah selesai, reboot:

reboot

CyberPanel dapat diakses melalui:

https://IP_VPS:8090

Port 8090 merupakan port panel, sedangkan port 7080 digunakan untuk konsol WebAdmin OpenLiteSpeed.

Halaman 2

6. Periksa layanan setelah instalasi

Masuk kembali:

ssh andika@IP_VPS
sudo -i

Periksa:

systemctl --failed
ss -tulpn

Periksa CyberPanel:

systemctl status lscpd --no-pager
systemctl status lsws --no-pager

Periksa versi:

cyberpanel version 2>/dev/null || cyberpanel help

Perbarui CyberPanel menggunakan metode resmi jika versi belum terbaru:

sh <(curl -fsSL https://raw.githubusercontent.com/usmannasir/cyberpanel/stable/preUpgrade.sh)

7. Firewall tingkat provider

Di firewall VPS/provider, gunakan aturan paling ketat.

Server website tanpa mail dan DNS

Port

Protokol

Sumber

22 atau port SSH baru

TCP

IP pribadi Anda

80

TCP

Semua

443

TCP

Semua

443

UDP

Semua, untuk HTTP/3

8090

TCP

IP pribadi Anda

7080

TCP

IP pribadi Anda

Jangan membuka 8090 dan 7080 ke seluruh internet apabila Anda memiliki IP publik tetap.

CyberPanel secara resmi menyebut port 80/443 untuk web, 8090 untuk panel, 7080 untuk WebAdmin, serta port tambahan apabila FTP, mail, dan DNS digunakan.

Apabila IP rumah berubah-ubah, pilihan lebih aman adalah mengakses panel menggunakan:

  • VPN seperti WireGuard/Tailscale; atau

  • SSH tunnel.

Contoh SSH tunnel:

ssh -L 8090:127.0.0.1:8090 -L 7080:127.0.0.1:7080 andika@IP_VPS

Lalu buka:

https://127.0.0.1:8090
https://127.0.0.1:7080

8. Konfigurasi firewalld di server

AlmaLinux menggunakan firewalld sebagai firewall bawaan dan mendukung konfigurasi berbasis zona.

Aktifkan:

systemctl enable --now firewalld
firewall-cmd --state
firewall-cmd --get-active-zones

Buka web publik

firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --permanent --zone=public --add-port=443/udp

Batasi SSH dan panel hanya dari IP administrator

Ganti:

IP_ADMIN_ANDA

dengan IP publik rumah/kantor Anda.

ADMIN_IP="IP_ADMIN_ANDA"

Izinkan IP administrator:

firewall-cmd --permanent --zone=trusted --add-source="${ADMIN_IP}/32"
firewall-cmd --permanent --zone=trusted --add-port=22/tcp
firewall-cmd --permanent --zone=trusted --add-port=8090/tcp
firewall-cmd --permanent --zone=trusted --add-port=7080/tcp

Hapus akses publik ke port panel bila sebelumnya terbuka:

firewall-cmd --permanent --zone=public --remove-port=8090/tcp
firewall-cmd --permanent --zone=public --remove-port=7080/tcp

Jangan langsung menghapus SSH publik sebelum memastikan trusted zone berfungsi.

Terapkan:

firewall-cmd --reload
firewall-cmd --list-all --zone=public
firewall-cmd --list-all --zone=trusted

CyberPanel memiliki pengelola firewall tersendiri dengan prinsip menolak port selain yang dibuka. Namun, jangan mengelola aturan yang sama secara sembarangan dari beberapa tempat karena bisa menyebabkan konflik atau akses terputus.

9. Pindahkan port SSH

Gunakan port tinggi, misalnya 22779. Ini tidak menggantikan autentikasi key, tetapi mengurangi noise bot.

Karena AlmaLinux menggunakan SELinux, daftarkan port terlebih dahulu:

semanage port -a -t ssh_port_t -p tcp 22779

Jika ternyata sudah terdaftar:

semanage port -m -t ssh_port_t -p tcp 22779

Buka firewall sebelum mengubah SSH:

firewall-cmd --permanent --zone=trusted --add-port=22779/tcp
firewall-cmd --reload

Buat konfigurasi drop-in:

mkdir -p /etc/ssh/sshd_config.d
nano /etc/ssh/sshd_config.d/10-custom-port.conf

Isi:

Port 22779

Validasi:

sshd -t

Restart:

systemctl restart sshd

Buka terminal baru dan uji:

ssh -p 22779 andika@IP_VPS

Setelah berhasil, hapus port 22 dari trusted zone:

firewall-cmd --permanent --zone=trusted --remove-port=22/tcp
firewall-cmd --reload

Jangan lupa mengubah firewall provider dari port 22 menjadi 22779.

10. Hardening konfigurasi SSH

Pastikan login key pada port baru berhasil. Kemudian buat:

nano /etc/ssh/sshd_config.d/99-hardening.conf

Isi:

PermitRootLogin no
PasswordAuthentication no
KbdInteractiveAuthentication no
ChallengeResponseAuthentication no
PubkeyAuthentication yes

PermitEmptyPasswords no
IgnoreRhosts yes
HostbasedAuthentication no

X11Forwarding no
PermitUserEnvironment no
AllowAgentForwarding no
AllowTcpForwarding yes
PermitTunnel no
GatewayPorts no

MaxAuthTries 3
MaxSessions 3
LoginGraceTime 30
ClientAliveInterval 300
ClientAliveCountMax 2

AllowUsers andika

AllowTcpForwarding yes dipertahankan agar SSH tunnel ke CyberPanel tetap dapat digunakan.

Periksa konfigurasi efektif:

sshd -T | grep -E \
'port|permitrootlogin|passwordauthentication|kbdinteractiveauthentication|pubkeyauthentication|maxauthtries|allowusers'

Validasi:

sshd -t

Restart:

systemctl restart sshd

Dokumentasi Red Hat merekomendasikan autentikasi SSH berbasis key sebagai satu-satunya metode setelah key dipastikan dapat digunakan. (Dokumentasi Red Hat)

Jangan tutup sesi root lama sampai login berikut berhasil:

ssh -p 22779 andika@IP_VPS
Halaman 3

11. Amankan sudo

Buat aturan khusus:

visudo -f /etc/sudoers.d/andika

Isi:

Defaults:andika use_pty
Defaults:andika timestamp_timeout=5
andika ALL=(ALL) ALL

Atur izin:

chmod 440 /etc/sudoers.d/andika
visudo -c

Jangan menggunakan:

NOPASSWD: ALL

untuk akun administrator utama.

12. Aktifkan Fail2Ban

Buat konfigurasi:

nano /etc/fail2ban/jail.local

Isi:

[DEFAULT]
banaction = firewallcmd-rich-rules
banaction_allports = firewallcmd-rich-rules
findtime = 10m
bantime = 1h
maxretry = 4
backend = systemd
ignoreip = 127.0.0.1/8 ::1 IP_ADMIN_ANDA

[sshd]
enabled = true
port = 22779
mode = aggressive
maxretry = 4
findtime = 10m
bantime = 24h

Aktifkan:

systemctl enable --now fail2ban
systemctl restart fail2ban

Periksa:

fail2ban-client status
fail2ban-client status sshd
journalctl -u fail2ban --no-pager -n 50

13. Aktifkan pembaruan keamanan otomatis

Edit:

nano /etc/dnf/automatic.conf

Pastikan bagian ini:

[commands]
upgrade_type = security
random_sleep = 300
download_updates = yes
apply_updates = yes

[emitters]
emit_via = stdio

[base]
debuglevel = 1

Aktifkan timer:

systemctl enable --now dnf-automatic.timer
systemctl list-timers | grep dnf

Perlu diperhatikan bahwa pembaruan otomatis sistem tidak selalu memperbarui CyberPanel. Periksa pembaruan CyberPanel secara berkala dan lakukan backup/snapshot sebelum upgrade besar.

14. Aktifkan audit sistem

Instal dan aktifkan audit daemon:

dnf install -y audit
systemctl enable --now auditd

Tambahkan pemantauan berkas sensitif:

cat > /etc/audit/rules.d/hardening.rules <<'EOF'
-w /etc/passwd -p wa -k identity
-w /etc/group -p wa -k identity
-w /etc/shadow -p wa -k identity
-w /etc/gshadow -p wa -k identity
-w /etc/sudoers -p wa -k sudoers
-w /etc/sudoers.d/ -p wa -k sudoers
-w /etc/ssh/sshd_config -p wa -k sshd
-w /etc/ssh/sshd_config.d/ -p wa -k sshd
-w /etc/firewalld/ -p wa -k firewall
EOF

Muat ulang:

augenrules --load
auditctl -l

Melihat perubahan:

ausearch -k sshd
ausearch -k sudoers

15. Hardening kernel dan jaringan

Buat:

nano /etc/sysctl.d/99-server-hardening.conf

Isi:

# Proteksi spoofing dan redirect
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.all.secure_redirects = 0
net.ipv4.conf.default.secure_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0

# Source routing
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv6.conf.all.accept_source_route = 0
net.ipv6.conf.default.accept_source_route = 0

# Reverse path filtering
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1

# SYN protection
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_rfc1337 = 1

# Log paket mencurigakan
net.ipv4.conf.all.log_martians = 1
net.ipv4.conf.default.log_martians = 1

# Proteksi informasi kernel
kernel.dmesg_restrict = 1
kernel.kptr_restrict = 2
kernel.yama.ptrace_scope = 1

# Proteksi symlink dan hardlink
fs.protected_hardlinks = 1
fs.protected_symlinks = 1
fs.protected_fifos = 2
fs.protected_regular = 2

# Core dump
fs.suid_dumpable = 0
kernel.core_uses_pid = 1
EOF

Terapkan:

sysctl --system

Jangan menambahkan parameter jaringan agresif yang belum diuji karena dapat mengganggu mail, container, DNS, atau koneksi web.

Halaman 4

16. Periksa SELinux

getenforce
sestatus

Jangan langsung menonaktifkan SELinux hanya untuk menghilangkan error. Periksa audit log terlebih dahulu:

ausearch -m AVC -ts recent

Namun, jangan memaksa perubahan dari permissive ke enforcing setelah instalasi CyberPanel tanpa pengujian staging. Panel, OpenLiteSpeed, mail, dan komponen lain harus diuji karena kebijakan yang tidak sesuai dapat memutus layanan.

AlmaLinux 9 juga menggunakan kebijakan kriptografi sistem untuk menolak protokol dan algoritme lama. Jangan mengubahnya ke LEGACY kecuali benar-benar diperlukan, karena kebijakan tersebut lebih lemah. (Dokumentasi Red Hat)

Periksa:

update-crypto-policies --show

Rekomendasi:

DEFAULT

17. Nonaktifkan layanan yang tidak digunakan

Lihat semua port:

ss -tulpn

Lihat layanan aktif:

systemctl --type=service --state=running

Jika tidak memakai FTP:

systemctl disable --now pure-ftpd 2>/dev/null || true
firewall-cmd --permanent --remove-service=ftp
firewall-cmd --permanent --remove-port=21/tcp
firewall-cmd --permanent --remove-port=40110-40210/tcp

Jika tidak memakai DNS authoritative:

systemctl disable --now pdns 2>/dev/null || true
firewall-cmd --permanent --remove-service=dns

Jika tidak memakai email server:

systemctl disable --now postfix 2>/dev/null || true
systemctl disable --now dovecot 2>/dev/null || true

Kemudian hapus port mail dari firewall bila ada.

Terapkan:

firewall-cmd --reload

Jangan menonaktifkan MariaDB, Redis, Memcached, lscpd, atau OpenLiteSpeed tanpa memastikan komponen tersebut tidak dipakai CyberPanel maupun website.

18. Amankan akun CyberPanel

Setelah login ke panel:

https://panel.domainanda.com:8090

Lakukan hal berikut:

  1. Ganti password admin dengan password unik minimal 20 karakter.

  2. Aktifkan 2FA.

  3. Buat user panel lain hanya dengan ACL yang dibutuhkan.

  4. Jangan memakai akun administrator untuk pekerjaan website sehari-hari.

  5. Jangan mengaktifkan API CyberPanel bila tidak digunakan.

  6. Pastikan SSL hostname panel terpasang.

  7. Batasi akses 8090 berdasarkan IP atau VPN.

CyberPanel menyediakan 2FA melalui menu:

Users → Modify User → pilih user → aktifkan 2FA

Setelah itu, pindai QR menggunakan aplikasi authenticator.

CyberPanel memiliki beberapa jenis ACL. User dengan ACL admin merupakan superuser, sehingga user website atau klien sebaiknya diberikan ACL terbatas, bukan admin.

Untuk reset password admin dari SSH:

adminPass 'PASSWORD_BARU_YANG_SANGAT_KUAT'

19. Aktifkan ModSecurity secara hati-hati

CyberPanel tidak selalu memasang ModSecurity secara default. Instalasinya tersedia dari bagian Security/ModSecurity panel.

Urutan aman:

  1. Instal ModSecurity.

  2. Aktifkan OWASP Core Rule Set.

  3. Gunakan mode audit/detection dahulu.

  4. Uji login, upload, API, form, WordPress, Laravel, dan callback pembayaran.

  5. Baru ubah ke blocking.

  6. Buat pengecualian hanya untuk false positive tertentu.

Jangan langsung mengaktifkan semua aturan pada sensitivitas tertinggi di production karena dapat menyebabkan HTTP 403 atau memblokir request aplikasi yang sah.

20. Buat user CyberPanel untuk pemilik website

Di panel:

Users → Create New User

Contoh:

First Name : Andika
Last Name  : Prasetiawan
Email      : email Anda
Username   : andikaweb
ACL        : user

Gunakan password berbeda dari:

  • Password Linux;

  • Password root;

  • Password admin CyberPanel;

  • Password database.

Kemudian buat website menggunakan user tersebut atau transfer ownership website kepadanya. CyberPanel mendukung pemisahan user dan kepemilikan website sehingga pekerjaan rutin tidak perlu dilakukan dengan akun admin.

Halaman 5

21. Backup wajib

Minimal gunakan tiga lapis:

1. Backup CyberPanel harian
2. Backup eksternal ke server/object storage berbeda
3. Snapshot VPS sebelum upgrade besar

Backup yang berada pada disk VPS yang sama bukan backup penuh, karena ikut hilang jika disk rusak atau server diretas.

Buat direktori backup root dengan izin ketat:

install -d -m 700 -o root -g root /root/secure-backup

Jangan menyimpan backup database, .env, atau private key di folder website publik seperti:

public_html/
public/
htdocs/

22. Pemeriksaan keamanan akhir

Jalankan:

echo "=== OS ==="
cat /etc/os-release

echo "=== HOSTNAME ==="
hostnamectl

echo "=== FIREWALL ==="
firewall-cmd --state
firewall-cmd --list-all --zone=public
firewall-cmd --list-all --zone=trusted

echo "=== PORT ==="
ss -tulpn

echo "=== SSH EFFECTIVE CONFIG ==="
sshd -T | grep -E \
'port|permitrootlogin|passwordauthentication|kbdinteractiveauthentication|pubkeyauthentication|maxauthtries|allowusers'

echo "=== FAILED SERVICES ==="
systemctl --failed

echo "=== FAIL2BAN ==="
fail2ban-client status
fail2ban-client status sshd

echo "=== SELINUX ==="
getenforce

echo "=== CRYPTO POLICY ==="
update-crypto-policies --show

echo "=== AUTO UPDATE ==="
systemctl status dnf-automatic.timer --no-pager

echo "=== CYBERPANEL ==="
systemctl status lscpd --no-pager

echo "=== OPENLITESPEED ==="
systemctl status lsws --no-pager

Target akhirnya:

Root SSH login          : nonaktif
SSH password login      : nonaktif
SSH key                 : aktif
User sudo terpisah      : aktif
SSH port                : dibatasi IP/VPN
CyberPanel 8090         : dibatasi IP/VPN
OpenLiteSpeed 7080      : dibatasi IP/VPN
2FA CyberPanel          : aktif
Firewall provider       : aktif
Firewalld               : aktif
Fail2Ban                : aktif
Security updates        : aktif
Unused services         : nonaktif
Backup eksternal        : aktif

Konfigurasi paling aman untuk production website: publik hanya membuka 80/tcp, 443/tcp, dan opsional 443/udp. SSH, CyberPanel 8090, dan OpenLiteSpeed WebAdmin 7080 hanya dapat diakses dari IP administrator, VPN, atau SSH tunnel.

link

Bagaimana pendapat Anda?

Komentar 0

chat_bubble

Belum ada komentar. Jadilah yang pertama!