Setiap Server Linux yang terhubung langsung ke jaringan publik dengan port SSH aktif akan menjadi sasaran empuk pemindaian otomatis (botnet). Serangan yang paling sering dijumpai adalah serangan Brute Force, yaitu skrip otomatis yang terus-menerus mencoba menebak kombinasi username dan password hingga berhasil masuk. Berikut adalah tutorial Konfigurasi Otentikasi SSH Key dan Proteksi Fail2ban
Untuk membangun pertahanan server yang kokoh, pendekatan keamanan berlapis (defense-in-depth) perlu diterapkan dengan alur kerja yang tepat:
- Penerapan Otentikasi SSH Key: Mengganti metode login kata sandi dengan pasangan kunci kriptografi (Public & Private Key), lalu mematikan otentikasi kata sandi secara permanen. Langkah ini secara langsung menutup celah serangan tebakan password.
-
Pemasangan File2ban: Dipasang setelah SSH Key aktif sebagai sistem pemantau log untuk mendeteksi serta memblokir IP mencurigakan yang masih mencoba melakukan pemindaian atau akses ilegal di level firewall (
firewalld).
Konfigurasi Otentikasi SSH Key dan Pengamanan Layanan SSH
Langkah awal difokuskan pada pembuatan kunci enkripsi di komputer lokal (klien), mengunggah kunci publik ke server, dan menutup akses login berbasis kata sandi pada konfigurasi SSH.
Konfigurasi di sisi Windows (Client)
Generasi SSH Key Pair
- Buka Command Prompt (CMD).
- Jalankan perintah berikut untuk membuat kunci:
ssh-keygen -t rsa -b 4096- Tekan Enter pada semua pertanyaan yang muncul:
-
Enter file in which to save the key:Tekan Enter (akan tersimpan otomatis diC:\Users\NamaUser\.ssh\id_rsa). -
Enter passphrase:Tekan Enter (kosongkan jika tidak ingin memasukkan password tambahan tiap kali login, atau isi jika ingin proteksi ekstra).
-
Ambil / Salin SSH Public Key
- Buka isi file Public Key (
id_rsa.pub) yang baru dibuat dengan perintah:
type %USERPROFILE%\.ssh\id_rsa.pub
- Salin (Copy) seluruh baris teks yang muncul (teks diawali dengan
ssh-rsa AAAAB3NzaC1...sampai akhir).
Konfigurasi di sisi AlmaLinux (Server)
Masukkan Public Key ke Server
- Login ke server AlmaLinux Anda (misalnya IP
192.168.20.50di port 22):
ssh [email protected]
- Masuk direktori
cd ./ssh- Buka file
authorized_keys:
nano ~/.ssh/authorized_keys
- Tempel (Paste) teks Public Key dari Windows tadi ke dalam file tersebut.
- Simpan file (
Ctrl + SlaluCtrl + X).
Matikan Otentikasi Password di Server (SSH Hardening)
Agar server hanya bisa diakses via SSH Key (mencegah serangan brute force / Hydra):
- Buka file konfigurasi SSH Daemon:
sudo nano /etc/ssh/sshd_config
- Pastikan atau ubah baris-baris berikut:
Port 2222
PubkeyAuthentication yes
PasswordAuthentication no
UsePAM no
- Simpan file (
Ctrl + SlaluCtrl + X). - Restart layanan SSH:
sudo systemctl restart sshd
Pengujian dari Windows (Client)
Buka Command Prompt baru di Windows, lalu coba login ke server:
ssh [email protected] -p 2222
Hasil: Anda akan langsung masuk ke dalam server tanpa diminta memasukkan password lagi.
Instalasi dan Konfigurasi Fail2ban
Aktifkan Repositori EPEL
Fail2Ban tidak tersedia di repositori standar AlmaLinux, sehingga Pengguna perlu mengaktifkan repositori EPEL (Extra Packages for Enterprise Linux) terlebih dahulu.
Jalankan perintah ini di terminal AlmaLinux:
sudo dnf install epel-release -yInstal Fail2Ban
Setelah EPEL aktif, instal Fail2Ban beserta modul integrasi firewalld-nya:
sudo dnf install fail2ban fail2ban-firewalld -yKonfigurasi Fail2Ban (jail.local)
Jangan mengedit file bawaan /etc/fail2ban/jail.conf secara langsung karena bisa tertimpa saat update. Buat file konfigurasi lokal baru:
- Buka file jail.local:
sudo nano /etc/fail2ban/jail.local- Tempelkan (paste) konfigurasi berikut (disesuaikan untuk port kustom SSH 2222):
[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 3
banaction = firewallcmd-ipset
backend = systemd# Masukkan IP laptop pengelola di sini (pisahkan dengan spasi jika lebih dari satu)
ignoreip = 127.0.0.1/8 ::1 192.168.20.100
[sshd]
enabled = true
port = 2222- Simpan perubahan: Tekan Ctrl + S , kemudian keluar dengan Ctrl + X.
Jalankan dan Aktifkan Layanan Fail2Ban
Jalankan Fail2Ban dan atur agar otomatis berjalan saat server pertama kali menyala (booting):
sudo systemctl start fail2ban
sudo systemctl enable fail2banVerifikasi Status Fail2Ban
- Cek apakah layanan berjalan dengan normal:
sudo systemctl status fail2ban- Cek status Jail SSH yang sedang aktif:
sudo fail2ban-client status sshdJika berhasil, Pengguna akan melihat jumlah total IP yang sedang diblokir (Banned IP list).
Tips Perintah Penting Fail2Ban (Cheat Sheet):
- Melihat daftar IP yang sedang di-ban:
sudo fail2ban-client status sshd- Membuka blokir (unban) IP tertentu secara manual (misal IP teman Pengguna keliru masuk):
sudo fail2ban-client set sshd unbanip 192.168.20.10- Melihat log aktivitas pemblokiran secara real-time:
sudo tail -f /var/log/fail2ban.logKesimpulan
Penerapan kombinasi antara Otentikasi berbasis SSH Key dan Fail2ban menghasilkan skema pertahanan yang solid pada server AlmaLinux. Dengan mematikan otentikasi kata sandi, celah serangan brute force pada layanan SSH secara praktis telah ditutup total. Sementara itu, kehadiran File2ban berfungsi sebagai sistem proteksi aktif yang secara otomatis menyaring lalu lintas mencurigakan dan memblokir IP pemindai pada tingkatan firewall. Penerapan prosedur keamanan bertahap ini sangat direkomendasikan sebagai standar dasar (baseline) sebelum server digunakan untuk lingkungan produksi (production).





