GNU/Linux >> Belajar Linux >  >> Ubuntu

Instal, Konfigurasi &Gunakan Fail2ban di Ubuntu 20.04 LTS Server

Tutorial untuk menginstal dan mengkonfigurasi server, klien, dan layanan Fail2ban di server Linux Ubuntu 20.04 atau 18.04 LTS.

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 kali gagal dan dengan demikian mencegah upaya yang tidak terbatas yang nantinya dapat menyebabkan menemukan kata sandi.

Fail2Ban dapat memantau berbagai layanan. 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.

Fail2ban instalasi 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 apt perintah 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 klien untuk konfigurasi dan evaluasi server
  • fail2ban-regex- Program untuk menguji ekspresi reguler

Aktifkan dan periksa status layanannya-

sudo systemctl enable 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 penginstalan dan akan ditimpa selama peningkatan versi paket, jadi semua perubahan harus dilakukan di .local yang sesuai file. 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

Actions.d

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

Ikhtisar opsi
entri deskripsi 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 fungsionalitas lingkungan saat ini. actioncheck = iptables -n -L <chain> | grep -q 'fail2ban-<name>[ \t]'
actionban Perintah yang dijalankan saat IP diblokir. Kondisinya selalu maxretry harus terlampaui dan findtime jatuh 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 rantai name = default
port pelabuhan port = ssh
protocol Digunakan secara internal oleh pembaca konfigurasi. Nilai yang memungkinkan: tcpudpicmpall . protocol = tcp
chain Rantai iptables tempat aturan fail2ban harus ditambahkan. Standarnya adalah INPUT . rantai =INPUT
Tag tindakan Tag tindakan adalah placeholder yang dapat digunakan di actionbanactionunban dan actioncheck .
ip Alamat IPv4 yang akan diblokir.
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 bekas digunakan, nama host. Hanya ada dua bagian dalam file ini: [Definition] dan [Includes] . Yang terakhir dapat digunakan untuk membaca di file konfigurasi lain.

Contoh dalam tabel berikut diambil dari iptables-multiport-conf tindakan. Semua perintah dijalankan dengan hak pengguna fail2ban.

Ikhtisar opsi
entri deskripsi contoh
[Definition]
failregex Dengan bantuan ekspresi reguler ini, file log dicari untuk mendapatkan klik. Tagnya adalah HOST tersedia di sini,
yang digunakan sebagai bagian dari regex dan berisi nama host atau alamat IP.
Perbedaan antara alamat IP dan nama host ditentukan secara otomatis oleh fail2ban.
failregex =^%(__prefix_line)sFAIL:\S+ address from=$
^%(__prefix_line)sFAIL:\S+ libwrap from=$
ignoreregex Pengecualian dapat didefinisikan di sini, meskipun valid untuk
pengecualian di atas. abaikanregex mendukung interpolasi string
sehingga Anda dapat menggunakan variabel Anda sendiri dengan %(variablenname)s .
ignoreregex =
[INCLUDES]
before Gunakan untuk membuat file dibaca sebelum file yang disetel.
Contohnya adalah common.conf
sebelum =common.conf
after File dibaca setelah disetel setelah =example_after.local
contoh Setelah mengintegrasikan common.conf adalah _daemon tersedia.
Lihat /etc/fail2ban/filter.d/common.conf untuk lebih jelasnya.
_daemon =xinetd

Jail.conf

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

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


Ikhtisar opsi
entri deskripsi contoh
[DEFAULT]
ignoreip Daftar IP atau jaringan yang dipisahkan spasi untuk diabaikan. ignoreip = 127.0.0.1/8 192.168.1.33
bantime Larang waktu dalam hitungan detik. Nilai negatif adalah larangan permanen. bantime = 86400
findtime Jumlah detik setelah penghitung untuk maxretry adalah setel ulang. findtime = 660
maxretry Jumlah maksimum percobaan yang gagal sebelum fail2ban memblokir IP. maxretry = 2
backend Backend, seperti systemd , dapat disetel di sini. Defaultnya adalah auto (disarankan). backend = systemd
usedns Setelan untuk perilaku pencarian terbalik dari fail2ban. Nilai yang memungkinkan adalah yesno dan warn .
Yang terakhir berarti bahwa entri dengan nama host memberikan peringatan di file log, yang dapat menyebabkan entri dalam jumlah besar.
usedns = warn
[myJail] Nama penjara dapat ditetapkan di sini. [ssh]
enabled (De-) mengaktifkan penjara enabled = true
port Definisi port, bisa 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 filternya. logpath = /var/log/auth.log
maxretry, bantime,... Nilai yang berbeda untuk opsi default juga dapat ditentukan. maxretry = 3


Buat file konfigurasi Jail Anda sendiri


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

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

Untuk mengonfigurasi berbagai setelan, edit file jail lokal yang dibuat

sudo nano /etc/fail2ban/jail.local

Beberapa contoh-

Masukkan beberapa alamat IP, rentang IP, atau host ke daftar putih

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

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

Bantime, findtime, dan percobaan ulang maksimal

Dengan cara yang sama, kita juga dapat menambah atau mengurangi waktu pemblokiran 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.

maxretry

Berapa banyak percobaan maksimal yang harus dilakukan alamat IP agar diblokir? Secara default adalah lima dan dideklarasikan menggunakan maxretry pilihan di jail.local mengajukan. 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

waktu mencari

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 akan diblokir. Namun, Anda dapat mengubah findtime nilai untuk menambah atau mengurangi periode waktu ini.

findtime = 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 (MTA) sumber terbuka

sudo apt install sendmail

Sekarang, ada dua pengaturan utama yang harus kita lakukan di jail.local file 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

action = %(action_)s

Dan ubah dengan salah satu dari yang berikut-

action = %(action_)s – Yang ini akan mengirimkan 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 klien email terbaik kami 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 layanan default yang diizinkan atau membuat layanan Anda sendiri.

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

Sebenarnya, di file Fail2ban Jail, Anda akan melihat banyak layanan yang menyertainya. Namun, Anda harus mengaktifkannya untuk digunakan. ATAU Anda dapat membuatnya sendiri.

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

Sebelum menunjukkan cara MENGAKTIFKANnya,  mari kita periksa layanan jails apa saja yang diaktifkan-

sudo fail2ban-client status

Outputnya akan seperti ini-

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

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

Contoh- Mari Aktifkan Fail2ban Apache-auth Service

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

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

Mulai ulang server Fail2ban

sudo systemctl restart fail2ban

Sekarang , sekali lagi gunakan klien Fail2ban untuk memeriksa berapa banyak layanan Penjara yang diaktifkan-

sudo fail2ban-client status

Kali ini hasilnya adalah-

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

Untuk mengetahui informasi lebih lanjut tentang layanan 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:

Kesalahan:

Jika Anda mendapatkan kesalahan berikut, itu berarti layanan 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 kesalahan seperti 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?

Fail2ban Client Usage

Bahkan kita dapat menggunakan alat perintah klien Fail2ban untuk menangani berbagai layanannya- untuk melihat semua perintah yang terkait dengannya, Anda dapat menggunakan tanda Bantuan-

fail2ban-client -h

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

Untuk melarang

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

Untuk membatalkan pemblokiran

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


Ubuntu
  1. Cara Memasang Server Minecraft di Ubuntu 18.04 LTS

  2. Cara Menginstal dan Menggunakan Telnet di Ubuntu 20.04 LTS

  3. Instal dan Konfigurasikan CSF (Config Server Firewall) di Ubuntu 20.04 LTS

  1. Instal dan Konfigurasikan server VSFTPD di Ubuntu 18.04 LTS

  2. Instal dan Konfigurasi Server VNC di Ubuntu 16.04

  3. Cara Menginstal dan Mengonfigurasi Fail2ban di Ubuntu 20.04 LTS

  1. Instal dan Konfigurasi VNC di Ubuntu 20.04

  2. Instal dan Konfigurasi Fail2ban di Ubuntu 20.04

  3. Cara menginstal Ubuntu Server 18.04 LTS