Pernahkah Anda membuat server web, membuka terminal, dan memperhatikan jumlah upaya login saat Anda offline? Penyerang menggunakan metode yang disebut 'brute force'. Brute force adalah metode untuk mendapatkan akses ke server web dengan memasukkan kata sandi acak, menggunakan skrip, dengan harapan mendapatkan akses.
Untuk membantu mencegah hal ini, kami menggunakan alat yang disebut Fail2Ban.
Apa itu Fail2Ban?
Fail2Ban adalah kerangka kerja perangkat lunak pencegahan intrusi yang melindungi server komputer dari serangan brute force. Ditulis dalam bahasa pemrograman Python, ia dapat berjalan pada sistem POSIX yang memiliki antarmuka ke sistem kontrol paket atau firewall yang diinstal secara lokal, misalnya, iptables atau TCP Wrapper. — Wikipedia
Menginstal Fail2Ban
Dalam panduan ini, kita akan membahas cara menginstal dan mengkonfigurasi Fail2Ban di server web Ubuntu 20.04.
Langkah 1 — Perbarui sistem dan Instal Fail2Ban
Mari kita jalankan perintah pembaruan.
$ sudo apt update && sudo apt upgrade -y
Sekarang mari kita instal Fail2Ban.
$ sudo apt install fail2ban
Setelah terinstal, Fail2Ban akan dimulai secara otomatis. Untuk jaga-jaga, mari kita periksa statusnya menggunakan perintah di bawah ini untuk memastikannya.
$ sudo systemctl status fail2ban
Instalasi Fail2Ban kami diinstal dan aktif. :)
Langkah 2 — Konfigurasi Fail2Ban
Saat menginstal Fail2Ban, skrip membuat dua file konfigurasi, /etc/fail2ban/fail.conf
dan /etc/fail2ban/fail.d/defaults-debian.conf
. Setiap perubahan pada file ini memiliki kemungkinan untuk ditimpa selama pembaruan paket.
Fail2ban membaca file konfigurasi dalam urutan ini. .local
file menimpa setelan .cong
berkas.
/etc/fail2ban/jail.conf
/etc/fail2ban/jail.d/*.conf
/etc/fail2ban/jail.local
/etc/fail2ban/jail.d/*.local
Cara paling efisien untuk mengonfigurasi Fail2Ban adalah dengan menyalin konten jail.conf
ke jail.local
kemudian ubah file lokal.
Langkah 2.1 — Buat file lokal kami dan konfigurasikan server
Sekarang mari kita salin melalui jail.conf
our kita file ke jail.local
kami berkas.
$ sudo cp /etc/fail2ban/jail.{conf,local}
Setelah memasukkan perintah ini, terminal akan segera membuka baris baru.*
Konfigurasikan server Fail2Ban dengan membuka jail.local
file dengan nano atau editor teks favorit Anda.
$ sudo nano /etc/fail2ban/jail.local
Anda sekarang seharusnya berada di jail.local
file dan lihat komentar yang menjelaskan fungsi setiap konfigurasi.
Langkah 2.2 — Daftar Putih Alamat IP
Alamat IP, rentang, dan host yang ingin Anda kecualikan dari pelarangan harus ditambahkan ke ignoreip
arahan.
Batalkan komentar (hapus simbol #) pada baris abaikan dan tambahkan alamat IP Anda yang dipisahkan oleh spasi.
Langkah 2.3 — Pengaturan Aturan Larangan
Beberapa baris di bawah komentar abaikan, Anda akan menemukan bantime
, findtime
, dan maxretry
.
bantime
adalah lamanya waktu IP dilarang. Waktu larangan default adalah 10 menit. Kemungkinan besar Anda akan menginginkan bantime
yang lebih lama . Anda dapat mencekal pengguna secara permanen dengan menggunakan angka negatif. Jika Anda tidak menggunakan sufiks, (yaitu, 10 bukannya 10d) waktunya akan dalam detik. Anda dapat mengatur waktu ini untuk durasi berapa pun yang Anda suka, kami akan menggunakan 10 hari.
bantime = 10d
findtime
adalah jarak waktu antara jumlah kegagalan sebelum IP diblokir. Ini berbeda dari maxretry
karena ini tidak melarang berdasarkan jumlah upaya login, bukan jumlah berturut-turut.
finetime = 5m
maxretry
adalah jumlah login yang gagal sebelum IP diblokir. Sekali lagi, Anda dapat mengatur ini sesuai keinginan Anda.
maxretry = 5
Langkah 2.4 — Notifikasi Email
Fail2Ban dapat diatur untuk mengirim peringatan email ketika IP telah diblokir. Anda harus memiliki SMTP yang dikonfigurasi di server web Anda. Langkah pertama adalah kita perlu mengubah komentar tindakan.
action = %(action_MW)s
Ini melarang IP dan mengirimkan peringatan email dengan laporan whois. Jika Anda ingin menyertakan log dalam email, tambahkan gunakan %(action_MWl)s
sebagai gantinya.
Anda juga perlu menyesuaikan alamat email pengirim dan penerima agar sistem dapat memperbaiki peringatan Anda.
destemail = [email protected]
sender = [email protected]
Langkah 2.5 — Penjara
Penjara di Fail2Ban adalah kombinasi dari filter dan satu atau beberapa tindakan. Filter mendefinisikan ekspresi reguler yang cocok dengan pola yang terkait dengan upaya login yang gagal atau aktivitas mencurigakan lainnya. Tindakan menentukan perintah yang dijalankan saat filter menangkap alamat IP yang menyalahgunakan. — Plesk
Fail2Ban hadir dengan berbagai penjara untuk layanan yang berbeda. Termasuk opsi untuk membuat kustom Anda sendiri.
Instalasi default Fail2Ban memiliki jail ssh yang diaktifkan. Untuk mengaktifkan jail, Anda harus menambahkan enabled = true
setelah gelar penjara. Menggunakan OpenWebMail sebagai contoh:
[openwebmail]
enabled = true
port = http,https
logpath = /var/log/openwemail.log
Jika Anda ingin menetapkan aturan larangan untuk suatu layanan, Anda dapat melakukannya di bawah layanan.
[sshd]
enabled = true
maxretry = 5
findtime = 5m
bantime = 10d
ignoreip = 192.169.0.1/8 12.34.56.78
Anda dapat mengedit filter di /etc/fail2ban/filter.d
direktori.
Langkah 3 — Mulai Ulang Fail2Ban
Setelah setiap penginstalan dan konfigurasi selesai, yang terbaik adalah memulai ulang layanan agar perubahan diterapkan.
$ sudo systemctl restart fail2ban
Langkah 4 — Baris Perintah Fail2ban
Menggunakan alat fail2ban-client
Anda dapat membuat perubahan dengan skrip Fail2Ban. Untuk menggunakan baris perintah, gunakan:
$ sudo fail2ban-client
[diikuti dengan perintah Anda]
Untuk melihat opsi yang tersedia, gunakan:
$ sudo fail2ban-client -h
Berikut adalah beberapa perintah praktis:
Lepas alamat IP:
$ sudo fail2ban-client set sshd unbanip 12.34.56.789
Melarang alamat IP:
$ sudo fail2ban-client set sddh banip 12.34.56.789