Instal, Konfigurasi & Gunakan Fail2ban di Ubuntu 20.04 LTS Server

Tutorial menginstal dan mengkonfigurasi server, client, dan service Fail2ban di server Ubuntu 20.04 atau 18.04 LTS Linux.

Blogger dan Pengembang yang menjalankan dan mengelola server mereka sendiri, tentu saja mereka juga bertanggung jawab atas keamanannya. Jika di dunia sekarang ini kita tidak memperhatikan keamanan maka ada kemungkinan server kita akan menjadi target penyerang – dan menyebabkan kerusakan. Nah, meskipun ada berbagai WAF online, namun untuk mengeraskan server tersedia program open source yang disebut Fail2Ban. Ini memastikan bahwa alamat IP penyerang diblokir untuk jangka waktu tertentu setelah beberapa upaya yang gagal dan dengan demikian mencegah upaya yang tidak terbatas yang nantinya dapat mengarah pada pencarian password.

Fail2Ban dapat memantau berbagai service. Ini tentu saja termasuk akses SSH, FTP, email, dll. Di sini kita mempelajari langkah-langkah untuk menginstal Fail2ban di Ubuntu 20.04 atau 18.04 LTS dan proses konfigurasinya.

Instalasi Fail2ban di Ubuntu 20.04 atau 18.04 LTS

Paket untuk menginstal dan mengkonfigurasi Fail2ban tersedia di repo resmi Ubuntu 20.04/18.04, 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 aktifkan fail2ban Sudo systemctl status fail2ban

Konfigurasi Fail2ban di Ubuntu

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

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 bagian [Init] 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

[Definisi]

tindakan mulai

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>

penghentian tindakan

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>

pemeriksaan tindakan

Perintah yang dieksekusi sebelum setiap larangan tindakan. Ini digunakan untuk memeriksa lingkungan saat ini untuk fungsionalitas.

actioncheck = iptables -n -L <chain> | grep -q ‘fail2ban-<nama>[ t]’

larangan tindakan

Perintah yang dijalankan saat IP diblokir. Kondisi selalu maxretry harus dilampaui dan findtime kurang.

actionban = iptables -Saya fail2ban-<name> 1 -s <ip> -j <blocktype>

tindakanunban

Perintah yang akan digunakan untuk membatalkan pemblokiran.

actionunban = iptables -D fail2ban-<nama> -s <ip> -j <blocktype>

[Init]

nama

Nama default dari rantai

nama = default

Pelabuhan

Pelabuhan

port = ssh

protokol

Digunakan secara internal oleh pembaca konfigurasi. Nilai yang memungkinkan: tcp, udp, icmp, all.

protokol = tcp

rantai

Rantai iptables tempat aturan fail2ban harus ditambahkan. Standar adalah INPUT.

rantai = INPUT

Tag tindakan

Tag tindakan adalah placeholder yang dapat digunakan di actionban, actionunban dan actioncheck.

aku p

Alamat IPv4 yang akan dilarang.

kegagalan

Jumlah percobaan yang gagal dihitung.

waktu

Stempel waktu Unix (detik) dari larangan.

pertandingan

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

[Definisi]

gagalregex

Dengan bantuan ekspresi reguler ini, file log dicari untuk mendapatkan klik. Tag adalah HOST tersedia 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>$

abaikanregex

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 =

[TERMASUK]

sebelum

Gunakan untuk membuat file dibaca sebelum ditetapkan. Contohnya adalah common.conf

sebelum = common.conf

setelah

File dibaca setelah satu set

setelah = contoh_setelah.local

contoh

Setelah mengintegrasikan common.conf adalah _daemon tersedia. Lihat /etc/fail2ban/filter.d/common.conf untuk lebih jelasnya.

_daemon = xinetd

penjara.conf

Sedangkan file jail.conf menggabungkan Actions dan membuat Filter menjadi jail. Pengguna perlu menyimpan file ini dengan ekstensi.loca l untuk mulai menambahkan aturannya sendiri atau menyesuaikannya.

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

Ikhtisar opsi

pintu masuk

keterangan

contoh

[BAWAAN]

abaikan

Daftar IP atau jaringan yang dipisahkan spasi untuk diabaikan.

abaikan ip = 127.0.0.1/8 192.168.1.33

ban waktu

Waktu larangan dalam hitungan detik. Nilai negatif adalah larangan permanen.

waktu ban = 86400

Cari waktu

Jumlah detik setelah counter untuk maxretry direset.

waktu cari = 660

coba lagi

Jumlah maksimum upaya yang gagal sebelum fail2ban melarang IP.

maxretry = 2

bagian belakang

Backend, seperti systemd, dapat diatur di sini. Standarnya adalah otomatis (disarankan).

backend = sistemd

bekas

Pengaturan untuk perilaku pencarian terbalik dari fail2ban. Nilai yang mungkin adalah ya, tidak dan peringatkan. Yang terakhir berarti bahwa entri dengan nama host memberikan peringatan di file log, yang dapat menyebabkan sejumlah besar entri.

digunakan = memperingatkan

[penjara saya]

Nama penjara dapat ditetapkan di sini.

[ssh]

diaktifkan

(De-) mengaktifkan penjara

diaktifkan = benar

Pelabuhan

Definisi port, dapat berupa numerik. Beberapa nilai dipisahkan dengan koma.

port = ssh

filter = sshd

Nama file filter

/etc/fail2ban/filter.d/sshd.conf

jalan masuk

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.

Bantime, findtime, dan maxretry

Dengan cara yang sama, kita juga dapat menambah atau mengurangi waktu pemblokiran alamat IP dengan mengubah nilai opsi bantime yang diberikan dalam file.

[Awal] waktu ban = 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? Jadilah bawaan itu adalah lima dan dinyatakan menggunakan maxretry pilihan dalam jail.local berkas. 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 kejahatan atau login 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.

waktu cari = 10m

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-

Selanjutnya, temukan baris di bawah ini

tindakan = %(aksi_)s

Dan ubah dengan salah satu dari yang berikut-

action = %(action_)s – Yang ini akan mengirimkan email notifikasi ketika beberapa Ip-address dilarang.

atau

action = %(action_mwl)s – Jika Anda ingin 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.

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

sudo status client fail2ban

Outputnya akan seperti ini-

Status |- Jumlah penjara: 1 `- Daftar penjara: sshd

Sekarang, jika kita ingin MENGAKTIFKAN beberapa service Jail, kita perlu menambahkan enabled = true di file jail.conf setelah judul service jail. Contoh berikut menunjukkan cara mengaktifkan jail apache-auth :

Contoh- Mari Aktifkan Fail2ban Apache-auth Service

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

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 status client fail2ban

Kali ini outputnya adalah-

Status |- Jumlah penjara: 2 `- Daftar penjara: apache-auth, sshd

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

sudo fail2ban-client status apache-auth

Keluaran:

Status untuk penjara: apache-auth |- Filter | |- Saat ini gagal: 0 | |- Total gagal: 0 | `- Daftar file: /var/log/apache2/error.log `- Tindakan |- Saat ini dilarang: 0 |- Total dilarang: 0 `- Daftar IP yang dilarang:

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: Proses utama keluar, kode=keluar, status=255/EXCEPTION [6613]: ERROR Gagal mengakses jalur soket: /var/run/fail2ban/fail2ban.sock. Apakah fail2ban berjalan?

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 membatalkan larangan beberapa IP untuk beberapa service, gunakan sintaks berikut:

Untuk melarang

fail2ban-client mengatur <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 ikhtisar singkat tentang instalasi dan Konfigurasi Fail2ban di Ubuntu 20.04 atau 18.04 LTS. 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