Dalam dunia server, keamanan bukan cuma opsional tapi keharusan. Server Linux memang terkenal tangguh, tapi tanpa konfigurasi yang benar, tetap aja bisa jadi target empuk. Di artikel ini, saya akan bahas beberapa tips praktis untuk mengamankan server Linux kalian dari level dasar sampai advanced.
1. Nonaktifkan Login Root via SSH
Langkah paling awal yang wajib dilakukan setelah setup server adalah menonaktifkan akses login langsung ke root.
Edit file konfigurasi SSH:
sudo nano /etc/ssh/sshd_config
Ubah baris berikut:
PermitRootLogin no
Simpan, lalu restart service SSH:
sudo systemctl restart sshd
Setelah itu, gunakan akun user biasa dengan sudo untuk administrasi:
sudo -i
2. Gunakan Port SSH Non-Default
Secara default, SSH berjalan di port 22. Karena port ini sering dipindai oleh bot, ganti aja ke port lain misalnya 2222 atau 22022:
sudo nano /etc/ssh/sshd_config
Ubah:
Port 22022
Restart:
sudo systemctl restart sshd
Jangan lupa update firewall biar port barunya bisa diakses:
sudo ufw allow 22022/tcp
3. Gunakan Autentikasi Key, Bukan Password
Password bisa ditebak, tapi SSH key jauh lebih aman.
Buat key di komputer kalian:
ssh-keygen -t rsa -b 4096
Lalu kirim ke server:
ssh-copy-id -p 22022 user@server_ip
Setelah berhasil, nonaktifkan login dengan password:
PasswordAuthentication no
Sekarang hanya key yang valid yang bisa login.
4. Aktifkan Firewall
Pastikan firewall aktif untuk membatasi akses yang tidak perlu.
Gunakan ufw (Ubuntu/Debian) atau firewalld (RHEL/CentOS).
Contoh UFW:
sudo ufw allow 22022/tcp
sudo ufw allow 80,443/tcp
sudo ufw enable
sudo ufw status verbose
Contoh FirewallD:
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload
5. Gunakan Fail2Ban untuk Mencegah Brute Force
Fail2Ban memantau log login gagal dan otomatis memblok IP yang mencurigakan.
Install:
sudo apt install fail2ban -y
Cek konfigurasi dasar di /etc/fail2ban/jail.conf dan aktifkan:
sudo systemctl enable --now fail2ban
Cek log-nya:
sudo fail2ban-client status sshd
6. Update Sistem Secara Berkala
Banyak serangan terjadi karena package yang ndak pernah di update.
Jadi biasakan update rutin:
sudo apt update && sudo apt upgrade -y
Atau gunakan update otomatis di background:
sudo apt install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades
7. Audit dan Monitor Log
Gunakan journalctl, last, dan ausearch untuk memantau aktivitas sistem.
Cek siapa aja yang login terakhir:
last -a
Pantau log SSH:
sudo journalctl -u sshd
Kalau mau lebih detail, aktifkan auditd:
sudo apt install auditd -y
sudo systemctl enable --now auditd
8. Gunakan SELinux atau AppArmor
Untuk sistem berbasis RHEL, gunakan SELinux; untuk Ubuntu/Debian, gunakan AppArmor.
Pastikan statusnya aktif:
sestatus
Kalau masih permissive, ubah ke enforcing:
sudo setenforce 1
9. Batasi Akses dengan Sudoers
Pastikan hanya user tertentu yang punya hak sudo.
Edit sudoers dengan:
sudo visudo
Contoh:
tyo ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart postfix
Dengan cara ini, user hanya boleh restart service tertentu, bukan semuanya.
Kesimpulan
Keamanan server Linux itu soal kebiasaan, bukan cuma konfigurasi awal. Mulai dari disable root login, aktifkan firewall, dan pakai SSH key aja udah bisa nutup sebagian besar celah serangan. Tambahkan Fail2Ban, log audit, dan update rutin, maka server kalian bakal jauh lebih aman dari serangan acak di internet.