GNU/Linux >> Belajar Linux >  >> Debian

Cara Menginstal &Mengkonfigurasi Fail2ban di Debian 11

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.

Tutorial berikut akan mengajari Anda cara menginstal Fail2ban dan melakukan beberapa konfigurasi dengan contoh lengkap dan tips penting untuk membantu Anda memulai Debian 11 Bullseye.

Prasyarat

  • OS yang Disarankan: Debian 11 Bullseye
  • Akun pengguna: Akun pengguna dengan sudo atau akses root.
  • Paket yang Diperlukan: wget

Perbarui Sistem Operasi

Perbarui Debian . Anda sistem operasi untuk memastikan semua paket yang ada mutakhir:

sudo apt update && sudo apt upgrade -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@debian~]$ sudo whoami
root

Untuk menyiapkan akun sudo yang ada atau baru, kunjungi tutorial kami di Menambahkan Pengguna ke Sudoers di Debian .

Untuk menggunakan akun root , gunakan perintah berikut dengan kata sandi root untuk masuk.

su

Instal Fail2ban

Secara default, Fail2ban disertakan dalam repositori Debian 11 Bullseye. Untuk menginstal perangkat lunak, gunakan perintah berikut di terminal Anda:

sudo apt install fail2ban

Contoh keluaran:

Tipe Y, lalu tekan tombol enter untuk melanjutkan dan menyelesaikan penginstalan.

Secara default, fail2ban setelah instalasi harus aktif dan diaktifkan. Untuk memverifikasi ini, gunakan perintah systemctl berikut ini :

sudo systemctl status fail2ban

Contoh keluaran:

Jika layanan fail2ban Anda tidak diaktifkan, jalankan perintah berikut untuk memulai dan, jika diinginkan, aktifkan pada sistem boot secara default:

sudo systemctl start fail2ban

Kemudian untuk mengaktifkan fail2ban pada boot sistem, gunakan yang berikut ini:

sudo systemctl enable fail2ban

Terakhir, verifikasi versi dan build dari fail2ban:

fail2ban-client --version

Contoh keluaran:

Fail2Ban v0.11.2

Ini menunjukkan bahwa Anda memiliki salah satu rilis stabil terbaru, yaitu ver. 0.11.2 (2020/11/23) – (sembuhkan dunia dengan alat keamanan) . Jika Anda ingin mengetahui di masa mendatang di mana build yang Anda instal berada dalam jadwal rilis Fail2ban, kunjungi halaman rilis di halaman Fail2ban Github.

Konfigurasikan 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 Fail2ban default /etc/fail2ban/jail.d/defaults-debian.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 jika tidak dapat menemukannya.

Untuk melakukannya, gunakan perintah berikut:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Sekarang buka file konfigurasi untuk melanjutkan konfigurasi:

sudo nano /etc/fail2ban/jail.local

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

Pengaturan pertama yang akan Anda temui adalah Ban time increments. 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 192.167.5.5 (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. Penjelasan tentang ini adalah Fail2ban jail dengan filtering akan memblokir penyerang Anda selama 10 menit setelah mencoba serangan yang sama dalam 10 menit (find time) x 5 kali (coba 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 mengirim email ke penyedia hosting tentang aktivitas penyerang sehingga sesuatu dapat dilakukan. Perhatikan, lakukan ini hanya jika Anda menggunakan proxy email karena beberapa penyerang tidak akan menerimanya atau mendapatkan email langsung dengan alamat IP server Anda, gunakan tindakan ini dengan sangat hati-hati atau tidak sama sekali.

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]

Contoh:

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

Instal UFW (Firewall Tanpa Komplikasi)

Secara default, Debian tidak datang dengan UFW. Untuk pengguna yang lebih suka menggunakan UFW dengan Fail2ban, ikuti langkah-langkah di bawah ini.

Pertama, instal UFW:

sudo apt install ufw -y

Selanjutnya, verifikasi instalasi dan build:

sudo ufw version

Contoh keluaran:

ufw 0.36
Copyright 2008-2015 Canonical Ltd.

Sekarang aktifkan pada startup sistem dan aktifkan fail2ban menggunakan perintah terminal:

sudo ufw enable

Contoh keluaran:

Firewall is active and enabled on system startup

Selanjutnya, tambahkan UFW ke larangan Anda, yang sebagai gantinya tidak akan menggunakan IPTABLES default dan apa yang Anda tentukan:

Contoh dari:

[apache-botsearch]
enabled = true
port     = http,https
logpath  = %(apache_error_log)s
bantime = 72h
maxretry = 1

Contoh untuk:

[apache-botsearch]
enabled = true
port     = http,https
logpath  = %(apache_error_log)s
banaction = ufw
bantime = 72h
maxretry = 1

Seperti yang Anda lihat, baris baru banaction =ufw telah ditambahkan untuk mengubah tindakan larangan default. Anda dapat menambahkan beberapa, katakanlah Anda ingin BAN di UFW dan juga menggunakan skrip Cloudflare untuk melarang alamat IP menggunakan layanan firewall mereka bersama dengan melaporkan alamat IP ke AbuseIPDB Fail2ban Integration:

Contoh:

[apache-botsearch]
enabled = true
port     = http,https
logpath  = %(apache_error_log)s
banaction = ufw
                    cloudflare
                    abuseipdb
bantime = 72h
maxretry = 1

Daftar tindakan yang telah dibuat sebelumnya dapat ditemukan di /etc/fail2ban/actions.d; semua tindakan memiliki penyiapan dasar dan kasus penggunaan.

Untuk melihat alamat IP yang dilarang, gunakan perintah UFW berikut:

sudo ufw status verbrose

Contoh keluaran:

Anywhere                   REJECT      <IP ADDRESS>               # by Fail2Ban after 1 attempts against apache-botsearch

Seperti yang Anda lihat, Anda dapat melihat UFW menolak alamat IP setelah dilarang oleh tindakan Fail2ban UFW di filter apache-botsearch setelah satu upaya. Ini hanya contoh Fail2ban yang bekerja di lingkungan langsung, dan diharapkan, Anda harus memodifikasi filter agar sesuai dengan kebutuhan Anda.

Catatan, jangan blokir alamat IP menggunakan UFW. Pastikan untuk menggunakan tindakan batalkan larangan klien fail2ban, atau IP akan diblokir ulang saat kembali ke situs karena UFW tidak dapat berkomunikasi kembali ke Fail2ban.

Perbarui Fail2ban

Rilis Fail2ban tidak sering keluar, jadi Anda tidak akan melihat perubahan signifikan setiap minggu atau, dalam hal ini, bahkan bulanan. Namun, untuk memperbarui Fail2ban, proses yang sama berlaku saat memeriksa pembaruan sistem Debian Anda.

Pertama, gunakan apt update perintah:

sudo apt update

Kedua, jika pembaruan tersedia, Anda dapat menggunakan peningkatan yang tepat, yang akan memulai pemutakhiran ditambah yang lainnya, atau jika Anda lebih suka memutakhirkan fail2ban, gunakan yang berikut ini:

sudo apt upgrade fail2ban

Copot Fail2ban

Jika Anda tidak lagi memerlukan Fail2ban, untuk menghapusnya dari sistem Anda, gunakan perintah berikut:

sudo apt autoremove fail2ban --purge

Contoh keluaran:

Tipe Y, lalu tekan ENTER KEY untuk melanjutkan penghapusan.

Perhatikan bahwa ini juga akan menghapus semua dependensi yang tidak digunakan yang awalnya diinstal dengan Fail2ban untuk penghapusan total.

Memantau Log Fail2ban

Banyak kesalahan umum yang dibuat 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.


Debian
  1. Cara Menginstal Tomcat 8.5 di Debian 9

  2. Cara Menginstal MongoDB di Debian 9

  3. Cara Menginstal Nginx di Debian 9

  1. Cara Instal Apache di Debian 9

  2. Cara Menginstal Jenkins di Debian 9

  3. Cara Menginstal Webmin di Debian 9

  1. Cara Menginstal Tomcat 9 di Debian 9

  2. Cara Menginstal dan Mengonfigurasi Nagios di Debian 9

  3. Cara Menginstal Elasticsearch di Debian 9