Cara mengkonfigurasi Fail2ban untuk melindungi server Linux Anda

Pembaharuan Terakhir: 3 September 2026
  • Implementasi sistem pemblokiran IP dinamis berdasarkan analisis log akses.
  • Penggunaan file konfigurasi .local untuk mencegah hilangnya pengaturan selama pembaruan sistem.
  • Kemampuan perlindungan multi-saluran untuk layanan penting seperti SSH, server web, basis data, dan FTP.
  • Pengelolaan pemblokiran dan pencabutan pemblokiran secara real-time menggunakan alat baris perintah fail2ban-client.

Seorang profesional TI yang bekerja dengan laptop di pusat data modern, ideal untuk memperkenalkan keamanan server.

Membuka server Linux ke jaringan pada dasarnya seperti memasang magnet untuk bot. Jika Anda belum mengkonfigurasi langkah-langkah keamanan apa pun, kemungkinan besar Anda sudah memiliki ribuan upaya login yang gagal dalam log Anda; ada mesin otomatis yang terus-menerus mencoba kombinasi nama pengguna dan kata sandi untuk mencoba mengambil kendali mesin Anda melalui serangan brute-force.

Di sinilah Fail2ban berperan, sebuah alat yang bertindak sebagai pengawas tanpa lelah. Ini bukan firewall dalam arti sebenarnya, melainkan menganalisis log sistem dan, ketika mendeteksi seseorang yang mencoba masuk secara paksa, ia akan menutup pintu dengan memblokir alamat IP mereka menggunakan alat seperti iptables atau nftables. Mari kita lihat cara mengkonfigurasinya agar server Anda menjadi sulit ditembus.

Sebenarnya apa itu Fail2ban dan bagaimana cara kerjanya?

Sederhananya, Fail2ban adalah daemon yang terus memantau file log layanan Anda. Ketika menemukan pola mencurigakan yang sesuai dengan aturan yang telah ditentukan sebelumnya, yang disebut filter , ia mulai menghitung kegagalan. Jika alamat IP mencapai batas upaya yang diizinkan dalam waktu tertentu, program akan menjalankan suatu tindakan , yang biasanya melibatkan penambahan alamat IP tersebut ke daftar hitam firewall.

Konfigurasi ini diorganisir ke dalam apa yang disebut "jail" . Jail pada dasarnya adalah seperangkat aturan yang diterapkan pada layanan tertentu (seperti SSH, Apache, atau MySQL). Dengan cara ini, Anda dapat memiliki kebijakan yang sangat ketat untuk akses jarak jauh dan kebijakan yang lebih permisif untuk server web, memastikan bahwa penyusup diblokir secara otomatis tanpa Anda harus memeriksa log secara manual setiap lima menit.

  Apa yang Baru dan Perubahan di Zorin OS: Alternatif Ideal untuk Windows

Simbol serangan siber dengan seseorang yang memegang topeng peretas di samping rak server Linux.

Instalasi sesuai dengan distribusi Linux Anda.

Tergantung pada sistem yang Anda gunakan, perintah untuk menginstalnya sedikit berbeda, tetapi umumnya tersedia di hampir semua repositori resmi.

  • Pada Ubuntu dan Debian: Sangat sederhana, kamu hanya perlu berlari. sudo apt update diikuti oleh sudo apt install fail2ban.
  • Pada Rocky Linux atau AlmaLinux: Karena ini adalah distribusi Enterprise, Anda harus mengaktifkan repositori EPEL terlebih dahulu dengan sudo dnf install epel-release lalu instal paket tersebut dengan sudo dnf install fail2ban fail2ban-firewalld.
  • Di Alpine Linux: Gunakan pengelola APK dengan sudo apk add fail2ban Dan, karena menggunakan OpenRC, Anda harus mengaktifkannya dengan sudo rc-update add fail2ban default dan memulainya dengan sudo rc-service fail2ban start.

Detail profesional dari rak server di pusat data dengan pencahayaan biru, yang mewakili infrastruktur server.

Konfigurasi utama: Rahasia file .local

Kesalahan yang sangat umum adalah mengedit file secara langsung. jail.confJangan lakukan itu! File itu bisa ditimpa saat Anda memperbarui sistem. Aturan emasnya adalah membuat salinan bernama jail.localParameter apa pun yang Anda tambahkan ke file kedua ini akan diutamakan daripada yang asli, dan perubahan Anda akan ditimpa. aman dari pembaruan.

Untuk memulai, Anda dapat mengkloning file asli dengan sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local lalu buka dengan editor favorit Anda, seperti nano atau vim. Di bagian [BAWAAN] Di sinilah Anda menentukan perilaku keseluruhan sistem:

  • waktu larangan: Lamanya waktu alamat IP berbahaya akan tetap dibekukan. Ini bisa dalam hitungan detik atau menggunakan 'm' untuk menit (misalnya, 10m).
  • temukan waktu: Interval waktu yang digunakan Fail2ban untuk memeriksa kesalahan. Jika seseorang gagal 5 kali dalam satu jam tetapi waktu pemeriksaannya adalah 10 menit, mereka tidak akan dibanned.
  • maxretry: Jumlah percobaan gagal yang diperbolehkan sebelum sistem mengatakan Cukup, blokir IP tersebut..
  • ignoreip: Penting untuk menghindari pemblokiran diri sendiri. Di sini Anda harus memasukkan data Anda. alamat IP publik atau jangkauan VPN Anda.
  Passkey versus kata sandi tradisional: revolusi otentikasi

Tampilan jarak dekat kabel jaringan serat optik yang terhubung ke server perusahaan, menggambarkan konektivitas dan keamanan jaringan.

Melindungi layanan tertentu langkah demi langkah

Setelah pengaturan umum dikonfigurasi, saatnya untuk mengaktifkan jail untuk layanan yang paling Anda butuhkan. Agar perlindungan berfungsi, Anda harus mengatur enabled = true di bagiannya masing-masing di dalam jail.local.

Akses SSH (Titik paling kritis)

Port 22 adalah target utama. Konfigurasi yang andal akan menentukan maxretry = 3 dan bantime = 3600 (satu jam). Fail2ban akan membaca file tersebut. /var/log/auth.log (pada Debian/Ubuntu) atau / var / log / secure (pada CentOS/RHEL) untuk mendeteksi kegagalan otentikasi dan menutup akses bagi penyerang.

Server Web (Apache dan Nginx)

Jika Anda memiliki situs web atau toko online, bot akan mencoba mengakses rute sensitif seperti... /wp-admin o /login.phpAnda dapat membuat filter khusus di /etc/fail2ban/filter.d/ untuk mendeteksi pola-pola ini. Misalnya, untuk Lindungi WordPressKesalahan 403 atau upaya yang gagal dipantau di wp-login.php, memblokir IP jika melebihi batas yang ditetapkan di dalam Apache atau Nginx jail.

Basis Data dan FTP

Untuk MySQL, Anda dapat memantau log kesalahan untuk frasa tersebut. Akses ditolak untuk penggunaDalam kasus FTP (seperti ProFTPD), sangat penting untuk memastikan bahwa logpath Cocokkan jalur sebenarnya ke file log Anda, karena jika Fail2ban tidak dapat menemukan file log, perlindungan tersebut tidak akan berfungsi.

Manajemen tingkat lanjut dengan fail2ban-client

Anda tidak selalu harus mengedit file dan memulai ulang layanan untuk melakukan perubahan cepat. Perintahnya adalah... fail2ban-client Ini memungkinkan Anda untuk mengelola sistem secara langsung dari konsol.

Untuk melihat penjara mana yang aktif dan berapa banyak IP yang diblokir, gunakan sudo fail2ban-client statusJika Anda ingin mempelajari lebih dalam suatu layanan, seperti SSH, jalankan perintah berikut: sudo fail2ban-client status sshdSelain itu, jika karena kesalahan Anda telah memblokir seorang kolega. Atau Anda dapat dengan cepat melepaskan alamat IP sendiri dengan perintah tersebut. sudo fail2ban-client set sshd unbanip IP_A_DESBLOQUEAR.

Mengelola dan menyelesaikan masalah

Jika Anda mendapati bahwa Fail2ban tidak memblokir sebagaimana mestinya, tempat pertama yang perlu diperiksa adalah file log dari alat tersebut. /var/log/fail2ban.log. Menggunakan tail -f Anda dapat melihat secara langsung siapa yang diblokir dan mengapa.

  UEFI Bootkit: Bootkitty di Linux dan warisan BlackLotus

Ingat bahwa Fail2ban menyimpan status penguncian dalam basis data SQLite di /var/lib/fail2ban/fail2ban.sqlite3Oleh karena itu, jika Anda memulai ulang server, IP yang sebelumnya diblokir akan diaktifkan kembali. akan tetap diblokir sampai masa hukuman Anda berakhir. Setiap kali Anda melakukan perubahan pada file konfigurasi, jangan lupa untuk menerapkan perubahan tersebut dengan sudo systemctl restart fail2ban.

Menerapkan alat ini mengubah server Anda dari target yang mudah menjadi benteng otomatis, mengurangi beban CPU dengan membuang lalu lintas berbahaya pada lapisan jaringan dan memungkinkan Anda tidur nyenyak karena mengetahui bahwa bot tidak akan dapat melakukan serangan brute-force. Dengan menggabungkan penggunaan file .local, pengelolaan jail tertentu, dan pemantauan log secara terus-menerus, Anda mencapai sistem pertahanan berlapis yang penting bagi setiap administrator sistem Linux.