Fail2ban adalah kerangka kerja perangkat lunak pencegahan intrusi yang melindungi server komputer dari serangan brute force, melarang agen pengguna yang buruk, melarang pemindai URL, dan banyak lagi. Fail2ban mencapai ini dengan membaca log akses/kesalahan dari server atau aplikasi web Anda. Fail2ban dikodekan dalam bahasa pemrograman python.
Panduan ini akan memberikan ikhtisar tentang menginstal Fail2ban di AlmaLinux 8 dan beberapa pengaturan dan tip dasar.
Prasyarat
- OS yang Disarankan: AlmaLinux 8.
- Akun pengguna: Akun pengguna dengan hak istimewa sudo atau akses root (perintah su) .
Memperbarui Sistem Operasi
Perbarui AlmaLinux . Anda sistem operasi untuk memastikan semua paket yang ada mutakhir:
sudo dnf upgrade --refresh -y
Tutorial akan menggunakan perintah sudo dan dengan asumsi Anda memiliki status sudo . Untuk memverifikasi status sudo di akun Anda:
sudo whoami
Contoh keluaran yang menunjukkan status sudo:
[joshua@localhost ~]$ sudo whoami
root
Jika Anda belum membuat akun pengguna sudo dan ingin melakukannya, kunjungi tutorial kami di Cara Menambahkan Pengguna ke Sudoers di AlmaLinux .
Untuk menggunakan akun root , gunakan perintah berikut dengan kata sandi root untuk masuk.
su
Instal Repositori EPEL
Langkah pertama adalah mengimpor repositori dari EPEL (Paket Ekstra untuk Enterprise Linux) sebagai berikut:
sudo dnf install epel-release
Contoh keluaran:
Ketik “Y”, lalu tekan “ENTER KEY” untuk melanjutkan penginstalan.
Itu selalu merupakan ide yang baik untuk memverifikasi apakah repositori berhasil ditambahkan; ini dapat dilakukan dengan perintah repolist dnf seperti di bawah ini:
sudo dnf repolist
Contoh keluaran:
Seperti yang Anda lihat, repositori EPEL ditambahkan dengan benar. Petunjuk praktis, Anda dapat menggunakan kembali perintah ini untuk melihat impor repositori di masa mendatang.
Konfigurasi Firewalld
Secara default, AlmaLinux dilengkapi dengan firewalld yang diinstal. Untuk memverifikasi ini, gunakan perintah berikut:
sudo dnf info firewalld
Contoh keluaran:
Seperti yang Anda lihat, ini diinstal pada AlmaLinux 8 secara default; juga, itu harus diaktifkan secara otomatis di sistem Anda.
Untuk mengonfirmasi ini, gunakan perintah systemctl berikut ini :
sudo systemctl status firewalld
Contoh keluaran:
Trik praktis lainnya dengan firewalld adalah menggunakan perintah firewall-cmd –state untuk memverifikasi apakah berjalan atau tidak:
sudo firewall-cmd --state
Contoh keluaran:
running
Jika firewalld Anda dimatikan, untuk memulainya gunakan yang berikut ini:
sudo systemctl start firewalld
Untuk mengaktifkannya kembali untuk memulai pada boot sistem, gunakan yang berikut ini:
sudo systemctl enable firewalld
Contoh keluaran jika berhasil:
Created symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service → /usr/lib/systemd/system/firewalld.service.
Created symlink /etc/systemd/system/multi-user.target.wants/firewalld.service → /usr/lib/systemd/system/firewalld.service.
Jika firewall Anda telah dihapus, Anda dapat menginstal ulang firewalld dengan perintah berikut:
sudo dnf install firewalld
Terakhir, untuk memverifikasi aturan saat ini sebelum yang baru ditambahkan oleh fail2ban, buat daftar yang sudah ada untuk mengenal firewalld:
sudo firewall-cmd --list-all
Contoh keluaran:
Instal Fail2ban
Sekarang setelah Anda menginstal repositori EPEL, sekarang saatnya untuk menginstal fail2ban dan paket tambahan fail2ban-firewalld, yang akan mengonfigurasi Fail2ban dengan benar agar berfungsi dengan firewalld untuk penggunaan di masa mendatang.
sudo dnf install fail2ban fail2ban-firewalld
Contoh keluaran:
Tipe Y, lalu tekan ENTER KEY untuk melanjutkan penginstalan.
Secara default, fail2ban tidak akan aktif, jadi Anda harus memulainya secara manual dengan perintah systemctl berikut :
sudo systemctl start fail2ban
Kemudian untuk mengaktifkan fail2ban pada boot sistem, gunakan yang berikut ini:
sudo systemctl enable fail2ban
Verifikasi status dengan perintah berikut:
sudo systemctl status fail2ban
Contoh keluaran:
Terakhir, verifikasi versi dan build dari fail2ban:
fail2ban-client --version
Contoh keluaran:
Fail2Ban v0.11.2
Cara Mengonfigurasi Fail2ban
Setelah menyelesaikan instalasi, sekarang kita perlu melakukan beberapa pengaturan dan konfigurasi dasar. Fail2ban hadir dengan dua file konfigurasi yang terletak di /etc/fail2ban/jail.conf dan default fail2ban jail /etc/fail2ban/jail.d/00-firewalld.conf . Jangan ubah file-file ini. File pengaturan asli adalah asli Anda dan akan diganti dalam pembaruan apa pun untuk Fail2ban di masa mendatang.
Sekarang Anda mungkin bertanya-tanya bagaimana kami mengatur Fail2ban seolah-olah Anda memperbarui dan kehilangan pengaturan Anda. Sederhana, kami membuat salinan yang diakhiri dengan .local bukannya .conf karena fail2ban akan selalu membaca .local file terlebih dahulu sebelum memuat .conf .
Untuk melakukannya, gunakan perintah berikut.
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Secara default, jail.local diatur untuk menggunakan IPTABLES . Untuk mempermudah, alih-alih menggunakan 00-firewalld.conf/jail dan buat aturan Anda dari awal, buka jail.local dan masuk ke baris 208 dan ganti :
Buka jail.local:
sudo nano /etc/fail2ban/jail.local
Temukan Ol kode d (IPTABLES):
anaction = iptables-multiport
banaction_allports = iptables-allports
Ganti dengan (FIREWALLD):
banaction = firewallcmd-rich-rules[actiontype=]
banaction_allports = firewallcmd-rich-rules[actiontype=]
Selanjutnya, tutorial akan menjalankan beberapa pengaturan yang dapat Anda gunakan atau modifikasi sesuai keinginan Anda. Perhatikan bahwa sebagian besar pengaturan dikomentari; tutorial akan menghapus komentar pada baris yang dimaksud atau memodifikasi yang sudah ada di pengaturan contoh.
Ingat, ini adalah pengaturan opsional, dan Anda dapat mengatur apa pun yang Anda suka jika Anda tahu lebih banyak tentang fail2ban dan percaya diri.
Larangan Peningkatan Waktu
Setelan pertama yang akan Anda temukan adalah Larangan penambahan waktu . Anda harus mengaktifkan ini setiap kali penyerang kembali. Ini akan meningkatkan waktu larangan, menyelamatkan sistem Anda dari terus-menerus melarang ulang IP yang sama jika jangka waktu larangan Anda kecil; misalnya, 1 jam, Anda ingin ini lebih lama jika penyerang kembali x5 kali.
Anda juga perlu mengatur pengganda atau faktor agar logika peningkatan larangan berfungsi. Anda dapat memilih salah satu dari ini; namun, dalam panduan kami, kami lebih memilih pengganda, seperti yang disorot dalam contoh kami di bawah ini, karena Anda dapat mengatur peningkatan waktu larangan khusus sesuai keinginan Anda. Penjelasan lebih lanjut ada di pengaturan matematika di baliknya.
Contoh di bawah ini:
IP Whitelist di Fail2ban
Selanjutnya dalam daftar, kami menemukan opsi daftar putih, batalkan komentar berikut dan alamatkan alamat IP apa pun yang ingin Anda masukkan ke daftar putih.
ignoreip = 127.0.0.1/8 ::1 180.53.31.33 (example IP address)
Pastikan untuk memberi spasi atau koma di antara alamat IP. Anda juga dapat memasukkan rentang IP ke daftar putih.
Contoh di bawah ini:
Pengaturan Waktu Larangan Default
Default waktu larangan adalah default 10 menit dengan pencari 10 menit pada 5 percobaan ulang. Penjelasannya adalah Fail2ban jail with filtering akan melarang penyerang Anda selama 10 menit setelah mencoba kembali serangan yang sama dalam 10 menit (menemukan waktu) x 5 kali (mencoba lagi). Anda dapat mengatur beberapa pengaturan larangan default di sini.
Namun, saat Anda masuk penjara, disarankan untuk menyetel waktu larangan yang berbeda karena beberapa larangan secara otomatis akan lebih lama dari yang lain, termasuk percobaan ulang yang seharusnya kurang atau lebih.
Contoh di bawah ini:
Pengaturan email dengan Fail2ban
Anda dapat mengatur alamat email untuk Fail2ban untuk mengirim laporan. Tindakan =%(action_mw)s default default yang melarang IP yang melanggar dan mengirim email dengan laporan whois untuk Anda tinjau. Namun, di folder action.d Anda, ada opsi email lain untuk melaporkan tidak hanya kepada diri Anda sendiri tetapi juga mengirimkan email ke penyedia daftar hitam dan ISP penyerang untuk dilaporkan.
Contoh di bawah ini:
# Destination email address used solely for the interpolations in
# jail.{conf,local,d/*} configuration files.
destemail = [email protected]
# Sender e-mail address used solely for some actions
sender = [email protected]
Catatan, secara default, Fail2ban menggunakan sendmail MTA untuk pemberitahuan email. Anda dapat mengubahnya ke fungsi email dengan melakukan hal berikut:
Ubah dari:
mta = sendmail
Ubah ke:
mail = sendmail
Fail2ban Penjara
Selanjutnya, kita datang ke penjara. Anda dapat mengatur jail yang telah ditentukan sebelumnya dengan filter dan tindakan yang dibuat oleh komunitas yang mencakup banyak aplikasi server populer. Anda dapat membuat jail khusus atau menemukan jail eksternal di berbagai inti dan situs komunitas; namun, kami akan menyiapkan jail paket Fail2ban default.
Pengaturan default untuk semua penjara seperti gambar di bawah ini. Perhatikan bagaimana tidak ada yang diaktifkan.
Contoh di bawah ini:
[apache-badbots]
# Ban hosts which agent identifies spammer robots crawling the web
# for email addresses. The mail outputs are buffered.
port = http,https
logpath = %(apache_access_log)s
bantime = 48h
maxretry = 1
Jadi, kami memiliki server HTTP Apache 2, dan seperti memfilter/melarang bot buruk, yang perlu Anda lakukan hanyalah menambahkan diaktifkan =true seperti contoh di bawah ini.
[apache-badbots]
# Ban hosts which agent identifies spammer robots crawling the web
# for email addresses. The mail outputs are buffered.
enabled = true
port = http,https
logpath = %(apache_access_log)s
bantime = 48h
maxretry = 1
Perhatikan bagaimana coba ulang maksimal sama dengan 1, dan waktu larangan adalah 48 jam. Ini adalah pengaturan coba ulang maksimum dan panjang larangan individu untuk penjara ini yang secara otomatis akan meningkat dengan pengganda larangan yang kami atur sebelumnya dalam panduan ini. Jika salah satu filter tidak memiliki ini, Anda dapat menambahkannya sebagai contoh.
[apache-noscript]
enabled = true
port = http,https
logpath = %(apache_error_log)s
Ubah di atas contoh berikut di bawah ini:
[apache-noscript]
enabled = true
port = http,https
logpath = %(apache_error_log)s
bantime = 1d
maxretry = 3
Selanjutnya, Anda ingin memiliki tindakan yang berbeda dari yang ditentukan dalam pengaturan default Anda di /etc/fail2ban/jail.local, tindakan tambahan yang dapat Anda temukan di direktori action.d. Tindakan yang berbeda dari direktori ini dapat dengan mudah diatur dengan mengikuti petunjuk di dalam baris konfigurasi tindakan dalam file, dengan mengingat untuk mengganti namanya terlebih dahulu menjadi .jail lebih dari .conf, lalu tambahkan yang berikut ini ke pengaturan jail Anda.
[apache-botsearch]
enabled = true
port = http,https
logpath = %(apache_error_log)s
banaction = action_mw
cloudflare
bantime = 72h
maxretry = 1
Seperti yang Anda lihat, kami menambahkan action_mw, sehingga secara otomatis melarang sesuai tindakan default kami dan mengirim email kepada kami laporan dengan whois, kemudian tindakan berikut, jika Anda menggunakan Cloudflare, itu akan memblokir alamat IP pada layanan juga. Ingat, Cloudflare perlu diatur sebelum digunakan. Baca file action.d cloudflare.conf .
Setelah Anda puas dengan pengaturan Anda, lakukan perintah berikut untuk memulai ulang fail2ban untuk memuat jail baru Anda.
sudo systemctl restart fail2ban
Contoh penggunaan Fail2ban-client
Sekarang setelah Anda menjalankan Fail2ban, Anda perlu mengetahui beberapa perintah operasi dasar. Kami melakukan ini dengan menggunakan perintah fail2ban-client. Anda mungkin perlu memiliki hak sudo, tergantung pada pengaturan Anda.
Blokir alamat IP:
sudo fail2ban-client set apache-botsearch banip <ip address>
Membatalkan pencekalan alamat IP:
sudo fail2ban-client set apache-botsearch unbanip <ip address>
Perintah untuk membuka menu bantuan jika Anda perlu menemukan setelan tambahan atau mendapatkan bantuan untuk setelan tertentu.
sudo fail2ban-client -h
Memeriksa Firewalld dan Fail2ban
Secara default, firewalld harus dikonfigurasi untuk secara otomatis melarang IP apa pun yang melakukan tindakan pelarangan fail2ban. Untuk melihat apakah ini bekerja dengan benar, gunakan perintah berikut:
Tes cepat terletak di penjara Anda [SSHD] dan menempatkan enabled =true bahkan jika Anda tidak menggunakan jail ini karena ini hanya tes, gunakan perintah larangan berikut:
sudo fail2ban-client set sshd banip 192.155.1.7
Sekarang buat daftar aturan kaya daftar firewall sebagai berikut:
firewall-cmd --list-rich-rules
Contoh keluaran:
rule family="ipv4" source address="192.155.1.7" port port="ssh" protocol="tcp" reject type="icmp-port-unreachable"
Seperti yang Anda lihat, fail2ban dan firewalld bekerja dengan benar untuk lingkungan hidup.
Memantau Log Fail2ban
Banyak kesalahan umum yang membuat penjara dan pergi tanpa menguji atau memantau apa yang mereka lakukan. Meninjau log sangat penting, karena log fail2ban berada di jalur defaultnya /var/log/fail2ban.log .
Jika Anda memiliki server yang menerima lalu lintas yang layak, perintah yang sangat baik untuk menonton langsung untuk melihat masalah apa pun dan mengawasinya saat Anda bekerja di server lain adalah dengan menggunakan perintah tail -f di bawah.
sudo tail -f /var/log/fail2ban.log
Perintah ini dapat berguna untuk pemeriksaan langsung tanpa harus masuk ke log.
Copot Fail2ban
Jika Anda tidak lagi memerlukan Fail2ban, untuk menghapusnya dari sistem Anda, gunakan perintah berikut:
sudo dnf autoremove fail2ban fail2ban-firewalld
Contoh keluaran:
Tipe Y, lalu tekan ENTER KEY untuk melanjutkan penghapusan instalasi.
Catatan, ini juga akan menghapus semua dependensi yang tidak digunakan yang diinstal dengan Fail2ban.