Cara menginstal Fail2ban di Debian 10 atau 11 Bullseye

Instal dan konfigurasi Fail2ban di server Linux Debian 10 11 min

fail2ban adalah paket client, server, dan file konfigurasi yang digunakan untuk melindungi sistem dari berbagai serangan berbahaya. Ini mengamankan service server Linux terhadap Denial of Service (DoS) juga. Padahal, fungsi dasar lainnya adalah memantau file log, mencari pola yang telah ditentukan, dan memblokir alamat IP untuk sementara. Ini diterbitkan di bawah GNU General Public License Versi 2 dan didasarkan pada Python.

Itu dapat berjalan di latar belakang (sebagai iblis) serta di latar depan. Program ini berguna, misalnya, di server ssh Anda ingin membatasi jumlah upaya login. Program fail2ban memeriksa file log sistem untuk upaya login yang gagal dan kemudian memblokir alamat Internet (IP) penyerang untuk jangka waktu tertentu.

Di sini kita mempelajari langkah-langkah untuk menginstal Fail2ban pada Debian 11 Bulleyes dan proses konfigurasinya.

Instalasi Fail2ban di Debian 11

Paket untuk menginstal dan mengkonfigurasi Fail2ban tersedia di repo resmi Debian 11, jadi kita hanya perlu menggunakan perintah apt untuk instalasinya.

Pertama, jalankan perintah pembaruan untuk membangun kembali cache repo-

sudo apt update

Dan kemudian perintah utama untuk mendapatkan alat keamanan ini-

sudo apt install fail2ban

Dengan menjalankan perintah di atas, program berikut akan tersedia setelah instalasi:

  • fail2ban-server – server
  • fail2ban-client – ​​Program client untuk konfigurasi dan evaluasi server
  • fail2ban-regex- Program untuk menguji ekspresi reguler

Aktifkan dan periksa status servicenya-

sudo systemctl enable fail2ban sudo systemctl status fail2ban

Konfigurasi pada Debian 10/11

fail2ban membaca jenis file konfigurasi dengan ekstensi.confdan.local. File dengan ekstensi.confdibuat selama instalasi dan akan ditimpa selama peningkatan paket, jadi semua perubahan harus dilakukan pada file yang sesuai. Jadi, hanya tambahkan atau ubah nilai dalam file ini yang berbeda dari pengaturan default atau global..local

Fail2ban memiliki tiga jenis file konfigurasi:

/etc/fail2ban/action.d/*.conf/*
/etc/fail2ban/filter.d/*.conf/*
/etc/fail2ban/jail.conf /etc/fail2ban/jail.d/*.conf

tindakan.d

File dalam direktori /etc/fail2ban/action.d/ berisi perintah untuk (membuka blokir) alamat IP. File tindakan berisi dua bagian: [Definition]dan [Init]. Entri di [Init]bagian ini digunakan untuk menimpa aturan yang ditentukan di penjara. Contoh pada tabel berikut diambil dari aksi iptables-multiport-conf. Semua perintah dijalankan dengan hak user fail2ban.

Ikhtisar opsi
pintu masuk keterangan contoh
[Definition]
actionstart Perintah yang dijalankan saat fail2ban dimulai. actionstart = iptables -N fail2ban-<name> iptables -A fail2ban-<name> -j RETURN iptables -I <chain> -p <protocol> -m multiport –dports <port> -j fail2ban-<name>
actionstop Perintah yang dijalankan saat keluar dari fail2ban. actionstop = iptables -D <chain> -p <protocol> -m multiport –dports <port> -j fail2ban-<name> iptables -F fail2ban-<name>[[BR]]iptables -X fail2ban-<name>
actioncheck Perintah yang dieksekusi sebelum setiap larangan tindakan. Ini digunakan untuk memeriksa lingkungan saat ini untuk fungsionalitas. actioncheck = iptables -n -L <chain> | grep -q ‘fail2ban-<name>[ t]’
actionban Perintah yang dijalankan saat IP diblokir. Kondisi selalu maxretry harus dilampaui dan findtime kurang. actionban = iptables -I fail2ban-<name> 1 -s <ip> -j <blocktype>
actionunban Perintah yang akan digunakan untuk membatalkan pemblokiran. actionunban = iptables -D fail2ban-<name> -s <ip> -j <blocktype>
[Init]
name Nama default dari rantai name = default
port Pelabuhan port = ssh
protocol Digunakan secara internal oleh pembaca konfigurasi. Nilai yang mungkin: tcp, udp, icmp, all. protocol = tcp
chain Rantai iptables tempat aturan fail2ban harus ditambahkan. Standar adalah INPUT. rantai = INPUT
Tag tindakan Tag tindakan adalah placeholder yang dapat digunakan di actionban, actionunbandan actioncheck.
ip Alamat IPv4 yang akan dilarang.
failures Jumlah percobaan yang gagal dihitung.
time Stempel waktu Unix (detik) dari larangan.
matches Entri berantai dari baris file log yang mengarah ke larangan. Banyak karakter shell yang lolos.

Filter.d

File dalam direktori /etc/fail2ban/filter.d/ berisi ekspresi reguler untuk menganalisis file log dan untuk mengekstrak alamat IP atau jika digunakan, nama host. Hanya ada dua bagian dalam file ini: [Definition]dan [Includes]. Yang terakhir dapat digunakan untuk membaca di file konfigurasi lainnya.

Contoh pada tabel berikut diambil dari aksi iptables-multiport-conf. Semua perintah dijalankan dengan hak user fail2ban.

Ikhtisar opsi
pintu masuk keterangan contoh
[Definition]
failregex Dengan bantuan ekspresi reguler ini, file log dicari untuk mendapatkan klik. Tag HOSTtersedia di sini, yang digunakan sebagai bagian dari ekspresi reguler dan berisi nama host atau alamat IP. Perbedaan antara alamat IP dan nama host ditentukan secara otomatis oleh fail2ban. failregex = ^%(__prefix_line)sFAIL: S+ alamat from=<HOST>$ ^%(__prefix_line)sFAIL: S+ libwrap from=<HOST>$
ignoreregex Pengecualian dapat didefinisikan di sini, bahkan jika itu valid untuk failregex di atas. abaikanregex mendukung interpolasi string sehingga Anda dapat menggunakan variabel Anda sendiri dengan %(variablenname)s. abaikanregex =
[INCLUDES]
before Gunakan untuk membuat file dibaca sebelum ditetapkan. Contohnya adalah common.conf sebelum = common.conf
after File dibaca setelah satu set setelah = contoh_setelah.local
contoh Setelah mengintegrasikan common.conf adalah _daemontersedia. Lihat /etc/fail2ban/filter.d/common.conf untuk lebih jelasnya. _daemon = xinetd

penjara.conf

Sedangkan jail.conffile tersebut menggabungkan Actions dan membuat Filter menjadi jail. Pengguna perlu menyimpan file ini dengan ekstensi.local untuk mulai menambahkan aturannya sendiri atau menyesuaikannya.

jail.conf dan tabel berikut memberikan gambaran tentang kemungkinan nilai default.

Ikhtisar opsi
pintu masuk keterangan contoh
[DEFAULT]
ignoreip Daftar IP atau jaringan yang dipisahkan spasi untuk diabaikan. ignoreip = 127.0.0.1/8 192.168.1.33
bantime Waktu larangan dalam hitungan detik. Nilai negatif adalah larangan permanen. bantime = 86400
findtime Jumlah detik setelah counter untuk maxretry direset. findtime = 660
maxretry Jumlah maksimum upaya yang gagal sebelum fail2ban melarang IP. maxretry = 2
backend Backend, seperti systemd, dapat diatur di sini. Standarnya adalah auto(disarankan). backend = systemd
usedns Pengaturan untuk perilaku pencarian terbalik dari fail2ban. Nilai yang mungkin adalah yes, nodan warn. Yang terakhir berarti bahwa entri dengan nama host memberikan peringatan di file log, yang dapat menyebabkan sejumlah besar entri. usedns = warn
[myJail] Nama penjara dapat ditetapkan di sini. [ssh]
enabled (De-) mengaktifkan penjara enabled = true
port Definisi port, dapat berupa numerik. Beberapa nilai dipisahkan dengan koma. port = ssh
filter = sshd Nama file filter /etc/fail2ban/filter.d/sshd.conf
logpath File log yang akan dipantau, yang diperiksa untuk filter. logpath = /var/log/auth.log
maxretry, bantime,… Nilai yang berbeda untuk opsi default juga dapat ditentukan. maxretry = 3

Buat file konfigurasi Penjara Anda sendiri

Jadi, sekarang mari kita salin file jail.conf untuk membuat file jail.local untuk menambahkan pengaturan kustom yang akan tetap ada bahkan setelah memutakhirkan fail2ban.

sudo cp /etc/fail2ban/jail.{conf,local}

Untuk mengonfigurasi berbagai pengaturan, edit file jail lokal yang dibuat

sudo nano /etc/fail2ban/jail.local

Beberapa contoh-

Daftar putih beberapa alamat IP, rentang IP, atau host

Sekarang, saat file terbuka, katakanlah Anda ingin memasukkan beberapa alamat IP, rentang IP, atau host agar tidak diblokir oleh service File2ban. Untuk wasiat itu, kita mendefinisikan hal yang sama di file Jail.local yang baru dibuat. Lihat : Cara memeriksa alamat IP di command terminal Linux

Dalam file temukan baris #igonreip dan hapus # darinya. Setelah itu tambahkan alamat IP atau rentang yang ingin Anda daftar putih.

Daftar putih alamat IP di fail2ban

Bantime, findtime, dan maxretry

Demikian pula, kita juga dapat menambah atau mengurangi waktu larangan alamat IP dengan mengubah nilai opsi bantime yang diberikan dalam file.

[Default] bantime = 10m

Untuk mengurangi atau menambah periode waktu, cukup ubah default 10 menit menjadi apa pun yang Anda inginkan. Sedangkan untuk memblokir Ip-address secara permanen menggunakan beberapa nilai negatif.

coba lagi

Berapa banyak percobaan maksimal yang harus dilakukan alamat IP untuk diblokir? Secara default adalah lima dan dideklarasikan menggunakan maxretryopsi dalam jail.localfile. Jika Anda ingin menguranginya, katakanlah hanya setelah dua upaya jahat, IP harus mendapatkan pemblokir, lalu ubah angka dari 5 menjadi 2. Dengan cara yang sama, Anda juga dapat meningkatkan jumlah percobaan maksimum.

maxretry = 5

Cari waktu

Ini adalah waktu antara percobaan ulang maksimum yang harus terjadi untuk setiap login berbahaya atau pada sistem sebelum Fail2Ban memblokir alamat IP tertentu. Misalnya, seseorang mencoba masuk, jika dia melakukan 5 upaya dalam 10 menit yang ditentukan, maka IP-nya diblokir. Namun, Anda dapat mengubah nilai findtime untuk menambah atau mengurangi periode waktu ini.

findtime = 10m

maxretry bantime dan pengaturan findtime di file jail Fail2ban

Fail2ban dapat mengirim peringatan email

Ya, jika beberapa IP diblokir maka Anda dapat menerima pemberitahuan email untuk hal yang sama. Namun, Anda harus mengaktifkan dan menentukan alamat email yang ingin Anda gunakan untuk menerima pemberitahuan.

Instal Sendmail- Agen transfer surat sumber terbuka (MTA)

sudo apt install sendmail

Sekarang, ada dua pengaturan utama yang harus kita lakukan di file jail.local untuk mendapatkan notifikasi email.

  1. destemail – alamat email yang akan digunakan untuk mendapatkan notifikasi.
  2. pengirim – alamat email dari mana fail2ban akan mengirim email.

Jadi, dalam file temukan dua pengaturan di atas dan tambahkan alamat email Anda-

Pemberitahuan email

Selanjutnya, temukan baris di bawah ini

action = %(action_)s

Dan ubah dengan salah satu dari yang berikut-

action = %(action_)s – Yang ini akan mengirim pemberitahuan email ketika beberapa alamat Ip diblokir.

atau

action = %(action_mwl)s– Jika Anda menginginkan pemberitahuan email untuk IP host yang diblokir termasuk informasi log, gunakan opsi tindakan ini. Selanjutnya, Anda dapat melihat daftar aplikasi client email terbaik kita untuk Ubuntu atau Debian Linux.

Aktifkan Layanan di file Fail2ban Jail

Seperti yang saya sebutkan sebelumnya bahwa membuat jail.local terdiri dari Tindakan dan Filter yang dapat digunakan untuk menonaktifkan/mengaktifkan service default yang diizinkan atau membuat service Anda sendiri.

Misalnya – Secara Default, SSH diaktifkan di Jail.local dari Fail2ban.

Sebenarnya, di file Fail2ban Jail, Anda akan melihat banyak service yang menyertainya. Namun, Anda harus mengaktifkannya untuk menggunakannya. ATAU Anda dapat membuat sendiri.

Di bawah folder /etc/fail2ban/filters.d Anda dapat melihat semua file filter konfigurasi untuk setiap service Fai2ban Jail yang tersedia di sana.

Layanan Penjara Fail2ban

Sebelum menunjukkan cara MENGAKTIFKANnya, mari kita periksa apa saja service jail yang diaktifkan-

sudo fail2ban-client status

Outputnya akan seperti ini-

Status |- Number of jail: 1 `- Jail list: sshd

Sekarang, jika kita ingin mengaktifkan beberapa service Jail, kita perlu menambahkan enabled = truedalam jail.confberkas setelah judul service penjara. Contoh berikut menunjukkan cara mengaktifkan jail apache-auth :

Contoh- Mari Aktifkan Fail2ban Apache-auth Service

Edit jail.localdan temukan Layanan Penjara Apache-Auth yang telah ditentukan sebelumnya

Aktifkan service Apache Jail Fail2ban

Simpan File menggunakan Ctrl+X, Y, dan dengan menekan Enter Key.

Mulai ulang server Fail2ban

sudo systemctl restart fail2ban

Sekarang, gunakan lagi client Fail2ban untuk memeriksa berapa banyak service Jail yang diaktifkan-

sudo fail2ban-client status

Kali ini outputnya adalah-

Status |- Number of jail: 2 `- Jail list: apache-auth, sshd 

Untuk mengetahui informasi lebih lanjut tentang service, gunakan namanya dengan perintah di atas-

sudo fail2ban-client status apache-auth

Keluaran:

Status for the jail: apache-auth |- Filter | |- Currently failed: 0 | |- Total failed: 0 | `- File list: /var/log/apache2/error.log `- Actions |- Currently banned: 0 |- Total banned: 0 `- Banned IP list:

Error:

Jika Anda mendapatkan error berikut, itu berarti service tertentu yang ingin Anda aktifkan belum diinstal pada sistem atau server Anda. Misalnya, Jika saya telah mengaktifkan Apache Jail tetapi Apache sendiri tidak tersedia di server saya, maka error semacam ini akan muncul.

fail2ban.service: Main process exited, code=exited, status=255/EXCEPTION [6613]: ERROR Failed to access socket path: /var/run/fail2ban/fail2ban.sock. Is fail2ban running?

Penggunaan Client Fail2ban

Bahkan kita dapat menggunakan alat perintah client Fail2ban untuk menangani berbagai servicenya- untuk melihat semua perintah yang terkait dengannya, Anda dapat menggunakan bendera Bantuan-

fail2ban-client -h

Misalnya untuk melarang atau membuka blokir beberapa IP untuk beberapa service, gunakan sintaks berikut:

Untuk melarang

fail2ban-client set <JAIL-service> banip <IP>

Untuk membatalkan larangan

fail2ban-client set <JAIL-service> unbanip <IP>

Contoh-

sudo fail2ban-client set sshd banip 192.168.0.6

Catatan Akhir-

Jadi, ini adalah gambaran singkat tentang instalasi dan Konfigurasi Fail2ban pada Debian 11 Bullseye atau 10 Buster. Meskipun, dokumentasi alat Fail2ban tidak luas, tetap saja jika ada yang ingin melihat, periksa situs web resminya. Berikut tautannya: Halaman proyek, Dokumentasi, halaman GitHub untuk Kode sumber

Related Posts

© 2022 Tekno Sridianti