Layanan apa pun yang terpapar ke Internet berisiko terkena serangan malware. Misalnya, jika Anda menjalankan layanan di jaringan yang tersedia untuk umum, penyerang dapat menggunakan upaya paksa untuk masuk ke akun Anda.
Fail2ban adalah alat yang membantu melindungi mesin Linux Anda dari kekerasan 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 menggunakan firewall sistem untuk jangka waktu tertentu. Saat periode larangan berakhir, alamat IP akan dihapus dari daftar larangan.
Artikel ini menjelaskan cara menginstal dan mengkonfigurasi Fail2ban di Ubuntu 20.04.
Menginstal Fail2ban di Ubuntu #
Paket Fail2ban disertakan dalam repositori default Ubuntu 20.04. Untuk menginstalnya, masukkan perintah berikut sebagai root atau pengguna dengan hak sudo:
sudo apt update
sudo apt install fail2ban
Setelah instalasi selesai, layanan Fail2ban akan dimulai secara otomatis. Anda dapat memverifikasinya dengan memeriksa status layanan:
sudo systemctl status fail2ban
Outputnya akan terlihat seperti ini:
● fail2ban.service - Fail2Ban Service
Loaded: loaded (/lib/systemd/system/fail2ban.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2020-08-19 06:16:29 UTC; 27s ago
Docs: man:fail2ban(1)
Main PID: 1251 (f2b/server)
Tasks: 5 (limit: 1079)
Memory: 13.8M
CGroup: /system.slice/fail2ban.service
└─1251 /usr/bin/python3 /usr/bin/fail2ban-server -xf start
Itu dia. Pada titik ini, Anda telah menjalankan Fail2Ban di server Ubuntu Anda.
Konfigurasi Fail2ban #
Instalasi Fail2ban default dilengkapi dengan dua file konfigurasi, /etc/fail2ban/jail.conf
dan /etc/fail2ban/jail.d/defaults-debian.conf
. Tidak disarankan untuk mengubah file-file ini karena dapat ditimpa ketika paket diperbarui.
Fail2ban membaca file konfigurasi dalam urutan berikut. Setiap .local
file menimpa pengaturan dari .conf
berkas:
/etc/fail2ban/jail.conf
/etc/fail2ban/jail.d/*.conf
/etc/fail2ban/jail.local
/etc/fail2ban/jail.d/*.local
Untuk sebagian besar pengguna, 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 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
melarang IP yang melanggar 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, hanya sshjail yang diaktifkan. Untuk mengaktifkan jail, Anda perlu menambahkan enabled = true
setelah gelar penjara. Contoh berikut menunjukkan cara mengaktifkan jail proftpd:
[proftpd]
enabled = true
port = ftp,ftp-data,ftps,ftps-data
logpath = %(proftpd_log)s
backend = %(proftpd_backend)s
Setting yang sudah kita bahas di bagian sebelumnya, bisa diatur per jail. Ini contohnya:
/etc/fail2ban/jail.local[sshd]
enabled = true
maxretry = 3
findtime = 1d
bantime = 4w
ignoreip = 127.0.0.1/8 23.34.45.56
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 Anda mengedit file konfigurasi, Anda harus memulai ulang layanan Fail2ban 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, jalankan perintah 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
-
Larang IP:
sudo fail2ban-client set sshd banip 23.34.45.56