Semua server yang terpapar ke Internet berisiko terkena serangan malware. Misalnya, jika Anda memiliki perangkat lunak yang terhubung ke jaringan publik, penyerang dapat menggunakan upaya paksa untuk mendapatkan akses ke aplikasi.
Fail2ban adalah alat sumber terbuka yang membantu melindungi mesin Linux Anda dari serangan paksa dan serangan otomatis lainnya dengan memantau log layanan untuk aktivitas jahat. Ini menggunakan ekspresi reguler untuk memindai file log. Semua entri yang cocok dengan pola dihitung, dan ketika jumlahnya mencapai ambang batas tertentu yang telah ditentukan, Fail2ban melarang IP yang melanggar untuk jangka waktu tertentu. Firewall sistem default digunakan sebagai tindakan larangan. Saat periode larangan berakhir, alamat IP akan dihapus dari daftar larangan.
Artikel ini menjelaskan cara menginstal dan mengkonfigurasi Fail2ban di CentOS 8.
Menginstal Fail2ban di CentOS #
Paket Fail2ban disertakan dalam repositori default CentOS 8. Untuk menginstalnya, masukkan perintah berikut sebagai root atau pengguna dengan hak sudo:
sudo dnf install fail2ban
Setelah instalasi selesai, aktifkan dan mulai layanan Fail2ban:
sudo systemctl enable --now fail2ban
Untuk memeriksa apakah server Fail2ban sedang berjalan, ketik:
sudo systemctl status fail2ban
● fail2ban.service - Fail2Ban Service
Loaded: loaded (/usr/lib/systemd/system/fail2ban.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2020-09-10 12:53:45 UTC; 8s ago
...
Itu dia. Pada titik ini, Anda telah menjalankan Fail2Ban di server CentOS Anda.
Konfigurasi Fail2ban #
Instalasi Fail2ban default dilengkapi dengan dua file konfigurasi, /etc/fail2ban/jail.conf
dan /etc/fail2ban/jail.d/00-firewalld.conf
. File-file ini tidak boleh dimodifikasi karena dapat ditimpa saat paket diperbarui.
Fail2ban membaca file konfigurasi dalam urutan berikut:
/etc/fail2ban/jail.conf
/etc/fail2ban/jail.d/*.conf
/etc/fail2ban/jail.local
/etc/fail2ban/jail.d/*.local
Setiap .local
file menimpa pengaturan dari .conf
berkas.
Cara termudah untuk mengkonfigurasi Fail2ban adalah dengan menyalin jail.conf
ke jail.local
dan ubah .local
mengajukan. Pengguna yang lebih mahir dapat membuat .local
file konfigurasi dari awal. .local
file tidak harus menyertakan semua pengaturan dari .conf
yang sesuai file, hanya yang ingin Anda timpa.
Buat .local
file konfigurasi dari jail.conf
default berkas:
sudo cp /etc/fail2ban/jail.{conf,local}
Untuk mulai mengonfigurasi server Fail2ban, buka jail.local
file dengan editor teks Anda:
sudo nano /etc/fail2ban/jail.local
File menyertakan komentar yang menjelaskan apa yang dilakukan setiap opsi konfigurasi. Dalam contoh ini, kami akan mengubah pengaturan dasar.
Alamat IP Daftar Putih #
Alamat IP, rentang IP, atau host yang ingin Anda kecualikan dari larangan dapat ditambahkan ke ignoreip
pengarahan. Di sini Anda harus menambahkan alamat IP PC lokal Anda dan semua mesin lain yang ingin Anda masukkan ke daftar putih.
Batalkan komentar pada baris yang dimulai dengan ignoreip
dan tambahkan alamat IP Anda yang dipisahkan oleh spasi:
ignoreip = 127.0.0.1/8 ::1 123.123.123.123 192.168.1.0/24
Setelan Larangan #
Nilai bantime
, findtime
, dan maxretry
opsi menentukan waktu larangan dan kondisi larangan.
bantime
adalah durasi di mana IP dilarang. Ketika tidak ada sufiks yang ditentukan, defaultnya adalah detik. Secara default, bantime
nilai diatur ke 10 menit. Umumnya, sebagian besar pengguna ingin menetapkan waktu larangan yang lebih lama. Ubah nilainya sesuai keinginan Anda:
bantime = 1d
Untuk memblokir IP secara permanen, gunakan angka negatif.
findtime
adalah durasi antara jumlah kegagalan sebelum larangan ditetapkan. Misalnya, jika Fail2ban diatur untuk memblokir IP setelah lima kegagalan (maxretry
, lihat di bawah), kegagalan tersebut harus terjadi dalam findtime
durasi.
findtime = 10m
maxretry
adalah jumlah kegagalan sebelum IP dilarang. Nilai default disetel ke lima, yang seharusnya baik untuk sebagian besar pengguna.
maxretry = 5
Pemberitahuan Email #
Fail2ban dapat mengirim peringatan email ketika IP telah diblokir. Untuk menerima pesan email, Anda harus menginstal SMTP di server Anda dan mengubah tindakan default, yang hanya memblokir IP menjadi %(action_mw)s
, seperti yang ditunjukkan di bawah ini:
action = %(action_mw)s
%(action_mw)s
akan melarang IP yang menyinggung dan mengirim email dengan laporan whois. Jika Anda ingin menyertakan log yang relevan dalam email, setel tindakan ke %(action_mwl)s
.
Anda juga dapat menyesuaikan alamat email pengirim dan penerima:
/etc/fail2ban/jail.localdestemail = [email protected]
sender = [email protected]
Fail2ban Jails #
Fail2ban menggunakan konsep penjara. Penjara menjelaskan layanan dan menyertakan filter dan tindakan. Entri log yang cocok dengan pola pencarian dihitung, dan ketika kondisi yang telah ditentukan terpenuhi, tindakan yang sesuai akan dijalankan.
Fail2ban dikirimkan dengan sejumlah penjara untuk layanan yang berbeda. Anda juga dapat membuat konfigurasi jail Anda sendiri.
Secara default, pada CentOS 8, tidak ada jail yang diaktifkan. Untuk mengaktifkan jail, Anda perlu menambahkan enabled = true
setelah gelar penjara. Contoh berikut menunjukkan cara mengaktifkan sshd
penjara:
[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s
Setting yang sudah kita bahas di bagian sebelumnya, bisa diatur per jail. Ini contohnya:
/etc/fail2ban/jail.local
Filter terletak di /etc/fail2ban/filter.d
direktori, disimpan dalam file dengan nama yang sama dengan jail. Jika Anda memiliki pengaturan dan pengalaman khusus dengan ekspresi reguler, Anda dapat menyempurnakan filter.
Setiap kali file konfigurasi diubah, layanan Fail2ban harus dimulai ulang agar perubahan diterapkan:
sudo systemctl restart fail2ban
Klien Fail2ban #
Fail2ban dikirimkan dengan alat baris perintah bernama fail2ban-client
yang dapat Anda gunakan untuk berinteraksi dengan layanan Fail2ban.
Untuk melihat semua opsi yang tersedia dari fail2ban-client
perintah, aktifkan itu dengan -h
pilihan:
fail2ban-client -h
Alat ini dapat digunakan untuk melarang/membatalkan larangan alamat IP, mengubah pengaturan, memulai ulang layanan, dan banyak lagi. Berikut beberapa contohnya:
-
Periksa status penjara:
sudo fail2ban-client status sshd
-
Membatalkan pemblokiran IP:
sudo fail2ban-client set sshd unbanip 23.34.45.56
-
Melarang IP:
sudo fail2ban-client set sshd banip 23.34.45.56