SSD Nodes Learn Hosting plans →
Panduan Matt ConnorOleh Matt Connor

Instal Fail2ban di Ubuntu 24.04 untuk Blokir Bot SSH

Di Ubuntu 24.04, perintah apt install biasa sudah memblokir brute force SSH. Verifikasi dengan fail2ban-client status sshd dan atasi Total failed tetap 0.

Apa yang sebenarnya dilakukan Fail2ban

Fail2ban adalah daemon yang membaca log. Fail2ban memantau pesan autentikasi SSH Anda. Setelah mendeteksi beberapa kegagalan dari satu alamat dalam jangka waktu singkat, Fail2ban menjalankan perintah firewall yang memblokir alamat tersebut selama beberapa waktu. Itulah seluruh konsepnya. Konfigurasinya hanya sekitar tiga puluh baris dalam satu file. Di Ubuntu 24.04, instalasinya hanya memerlukan satu perintah apt dan sistem Anda sudah terlindungi sebelum Anda mengubah konfigurasi apa pun.

Pahami fungsi dan batasannya. Fail2ban tidak mengautentikasi siapa pun, tidak mengenkripsi apa pun, dan tidak menghentikan satu upaya login yang dilakukan secara terarah. Fail2ban hanya menghentikan upaya berulang dari sumber yang sama. Fail2ban adalah penyaring gangguan dan pembatas laju, bukan pengunci. Tugasnya adalah menghentikan pemindaian latar belakang yang terus-menerus pada port 22 agar tidak terus membebani CPU, bandwidth, dan ruang log Anda, serta memperlambat penyerang yang harus datang dari satu alamat setiap kali.

Hal yang tidak digantikan oleh Fail2ban

Fail2ban adalah lapisan ketiga, bukan lapisan pertama. Jika server Anda masih menerima kata sandi SSH, botnet yang tersebar di ribuan alamat dapat terus mencoba, karena setiap alamat tetap berada di bawah ambang batas pemblokiran dan tidak pernah memicunya. Pertahanan yang tepat terhadap hal itu adalah autentikasi yang hanya menggunakan kunci, sehingga upaya menebak kata sandi menjadi mustahil, berapa pun jumlah percobaan yang dilakukan. Fail2ban yang diterapkan di atas autentikasi berbasis kunci memiliki dua manfaat: mengurangi derau brute force dari log Anda dan mengeluarkan pemindai sejak awal agar berhenti membombardir port. Perlakukan ini sebagai pertahanan berlapis. Fail2ban berada di belakang autentikasi berbasis kunci dan firewall, bukan di depan keduanya.

Prasyarat dan realitas Ubuntu 24.04

Anda memerlukan VPS yang menjalankan Ubuntu 24.04 dengan akses root atau sudo serta SSH yang sudah berfungsi, idealnya menggunakan autentikasi berbasis key. Fail2ban hemat sumber daya: hanya memerlukan RAM beberapa puluh megabyte dan tidak memerlukan penyesuaian batas resource.

Sekarang, bagian yang sering keliru dalam panduan lama. Selama bertahun-tahun, saran standarnya adalah “instal Fail2ban, lalu tambahkan backend = systemd, karena Ubuntu berhenti menulis /var/log/auth.log.” Saran tersebut hanya berlaku pada sebagian image. Server Ubuntu 24.04 standar atau cloud image masih memasang rsyslog. Aturan default-nya menulis auth,authpriv.* ke /var/log/auth.log. Karena itu, pada sebagian besar VPS, kegagalan SSH juga tercatat dalam file tersebut selain systemd journal. Minimal image—Ubuntu 24.04 minimal cloud image tidak menyertakan rsyslog—dan sebagian besar container hanya mencatat log SSH ke journal. Dalam kondisi tersebut, file teks itu memang tidak ada. Apa pun kondisinya, pada Ubuntu 24.04 paket Fail2ban sudah menangani hal ini. Paket tersebut memasang /etc/fail2ban/jail.d/defaults-debian.conf. File itu, bukan konfigurasi default upstream, yang benar-benar dijalankan server Anda:

[DEFAULT]
banaction = nftables
banaction_allports = nftables[type=allports]
backend = systemd

[sshd]
enabled = true

Baca bagian tersebut dengan saksama karena isinya menjawab dua pertanyaan sebelum Anda mengubah apa pun. backend = systemd berarti SSH jail membaca journal, sehingga ada atau tidaknya image Anda menulis auth.log tidak berpengaruh. banaction = nftables berarti pemblokiran diterapkan melalui nftables, yaitu firewall yang benar-benar digunakan Ubuntu 24.04, bukan iptables lama. [sshd] enabled = true berarti jail aktif sejak boot pertama. Kesimpulannya, apt install fail2ban standar pada Ubuntu 24.04 langsung memblokir brute-force SSH tanpa konfigurasi tambahan. Sebagian besar pekerjaan Anda adalah memastikan kondisi tersebut, menyesuaikan kebijakan, dan memastikan Anda tidak mengunci akses sendiri.

Masalah auth.log lama masih muncul dalam tiga situasi. Anda menginstal Fail2ban dengan pip, bukan apt, sehingga defaults-debian.conf tidak ada. Anda berada di dalam container tanpa hak istimewa yang tidak memiliki systemd journal untuk dibaca. Atau, Anda mengikuti tutorial lama dan menempelkan backend = auto ke dalam jail.local milik Anda sendiri sehingga konfigurasi default yang berfungsi tertimpa. Situasi pertama dan ketiga hanya menyebabkan pemblokiran SSH gagal pada image yang tidak memiliki rsyslog, seperti minimal image. Jika rsyslog dijalankan, file backend menemukan /var/log/auth.log dan berfungsi. Bagian tentang mode kegagalan menjelaskan secara tepat tampilan masing-masing kondisi.

Langkah 1: Instal dan pastikan pemblokiran sudah berjalan

sudo apt update
sudo apt install -y fail2ban

Ubuntu 24.04 menyediakan Fail2ban 1.0.2, dan paket tersebut menarik python3-systemd sebagai dependensi wajib. Karena itu, backend journal memiliki semua yang diperlukan. Layanan mengaktifkan dan memulai dirinya sendiri:

sudo systemctl status fail2ban

Anda ingin melihat active (running). Selanjutnya, lihat jail yang sudah menjalankan tugasnya:

sudo fail2ban-client status sshd

Pada VPS publik yang telah dapat diakses selama beberapa menit, Anda sering sudah dapat melihat kegagalan yang dihitung dan alamat yang diblokir. Internet terus-menerus memindai port 22. Ini membuktikan bahwa konfigurasi bawaan berfungsi. Mulai dari sini, Anda hanya menyempurnakannya, bukan membangunnya dari awal.

Langkah 2: Edit jail.local, bukan jail.conf

Fail2ban menyimpan default dari upstream di /etc/fail2ban/jail.conf. Jangan edit file tersebut. Upgrade paket dapat menggantinya, seperti diperingatkan pada header file itu sendiri, sehingga perubahan Anda dapat hilang. Fail2ban membaca file dalam urutan tetap: jail.conf terlebih dahulu, lalu jail.d/*.conf berdasarkan urutan alfabet, kemudian jail.local, lalu jail.d/*.local berdasarkan urutan alfabet. Nilai yang dibaca terakhir akan berlaku. Jadi, jail.local menimpa defaults-debian.conf yang disediakan paket, tetapi file *.local apa pun yang Anda letakkan di jail.d/ akan dibaca setelahnya dan menimpanya. Simpan override di satu tempat agar Anda mengetahui nilai yang sedang berlaku. File .local adalah milik Anda, dan upgrade paket tidak pernah mengubahnya. Aturan yang sama berlaku untuk filter: file *.local menimpa filter.d/*.conf yang disertakan oleh paket.

Buat jail.local kecil yang hanya menimpa beberapa pengaturan yang diperlukan. Biarkan jail.conf dan jail.d/defaults-debian.conf yang disediakan paket tetap utuh sebagai referensi.

Langkah 3: Tulis /etc/fail2ban/jail.local

sudo nano /etc/fail2ban/jail.local

Masukkan konfigurasi berikut. Ubah alamat pada baris ignoreip menjadi alamat IP publik Anda sendiri:

[DEFAULT]
# Ubuntu 24.04 already sets these two in jail.d/defaults-debian.conf.
# Pinning them here documents the dependency and survives if that
# file is ever removed or changed by an upgrade.
backend   = systemd
banaction = nftables

# Ban for one hour ...
bantime  = 1h
# ... if an address fails ...
maxretry = 5
# ... 5 times within 10 minutes.
findtime = 10m

# Never ban these. PUT YOUR OWN IP HERE.
ignoreip = 127.0.0.1/8 ::1 10.0.0.24

# Longer bans for repeat offenders: 1h, 2h, 4h ... up to a week.
bantime.increment = true
bantime.maxtime   = 1w

[sshd]
enabled = true

Setiap baris memiliki fungsi:

  • bantime, findtime, dan maxretry adalah kebijakan pemblokiran. Nilai bawaan yang disertakan, bantime, hanya sepuluh menit; satu jam merupakan batas minimum yang lebih wajar. Lima kegagalan dari satu alamat dalam sepuluh menit akan menyebabkan pemblokiran. Pengguna biasanya salah mengetik kata sandi satu atau dua kali; lima kegagalan dalam sepuluh menit menunjukkan adanya skrip.
  • ignoreip adalah pengaman Anda. Masukkan alamat publik yang Anda gunakan untuk terhubung from di sini agar Fail2ban tidak pernah mengunci akses Anda ke server sendiri. Koneksi rumah dengan IP yang berubah-ubah merupakan alasan untuk memilih pendekatan VPN di bagian akhir, bukan alasan untuk melewati baris ini.
  • bantime.increment = true membuat setiap pemblokiran berulang berlangsung lebih lama daripada sebelumnya: satu jam, lalu dua jam, kemudian empat jam, hingga bantime.maxtime. Alamat yang terus mencoba kembali akan dikunci secara bertahap.

Cari alamat yang akan diizinkan dari mesin yang Anda gunakan untuk SSH from, bukan dari server:

curl -s ifconfig.me

Anda dapat membuat jail.local yang disesuaikan dengan port dan kebijakan pemblokiran Anda di sini, lalu menempelkannya ke file:

ToolFail2ban jail generator

Langkah 4: Mulai ulang dan verifikasi bahwa log dibaca dari journal

sudo fail2ban-client -t
sudo systemctl restart fail2ban
sudo fail2ban-client status sshd

-t terlebih dahulu menjalankan pengujian konfigurasi, sehingga kesalahan pengetikan dalam jail.local akan langsung menimbulkan error di sini dan tidak membuat service berhenti tanpa pesan. Status jail yang sehat terlihat seperti ini:

Status for the jail: sshd
|- Filter
|  |- Currently failed: 0
|  |- Total failed:     14
|  `- Journal matches:  _SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions
   |- Currently banned: 1
   |- Total banned:     3
   `- Banned IP list:   203.0.113.66

Angka yang membuktikan bahwa Fail2ban benar-benar membaca login Anda adalah Total failed. Jika nilainya lebih dari 0, atau meningkat ketika Anda sengaja menggagalkan login dari mesin lain, berarti journal sedang dibaca dan konfigurasi sudah selesai. Jika nilainya tetap 0 setelah Anda menggagalkan login berkali-kali, dan Anda yakin tidak sedang menguji dari alamat dalam ignoreip, lanjutkan ke bagian mode kegagalan di bawah.

Perhatikan bahwa baris Journal matches masih menyebut sshd.service. Di Ubuntu, unit SSH sebenarnya adalah ssh.service, tetapi filter bawaan juga mencocokkan _COMM=sshd, dan OpenSSH pada 24.04 mencatat kegagalannya dari proses bernama sshd, sehingga pencocokan tersebut berfungsi. Detail ini hanya penting jika Anda menggunakan OpenSSH yang lebih baru (9.8 atau setelahnya, ketika worker per koneksi adalah sshd-session); mode kegagalan mencakup kasus tersebut.

Langkah 5: Pantau ban yang benar-benar diterapkan, atau paksa satu ban untuk pengujian

Ban yang sebenarnya muncul sendiri dalam beberapa menit pada VPS publik mana pun. Untuk memantaunya, tampilkan bagian akhir log secara terus-menerus:

sudo tail -f /var/log/fail2ban.log

Ban akan terlihat seperti ini:

2026-07-15 10:31:40,502 fail2ban.filter  [812]: INFO    [sshd] Found 203.0.113.66 - 2026-07-15 10:31:40
2026-07-15 10:31:44,118 fail2ban.actions [812]: NOTICE  [sshd] Ban 203.0.113.66

Untuk menguji seluruh mekanisme tanpa menunggu, ban alamat dokumentasi secara manual. Jangan pernah menggunakan alamat Anda sendiri. 203.0.113.66 berada di TEST-NET-3, yaitu blok yang dicadangkan untuk dokumentasi. Karena itu, alamat tersebut tidak mungkin merupakan host nyata atau alamat privat pada jaringan provider Anda:

sudo fail2ban-client set sshd banip 203.0.113.66

Perintah tersebut menampilkan 1, dan alamat itu muncul di bawah Banned IP list dalam fail2ban-client status sshd. Sekarang, pastikan blok tersebut benar-benar ada di firewall. Pada Ubuntu 24.04, firewall yang digunakan adalah nftables, bukan iptables:

sudo nft list table inet f2b-table

Anda akan melihat set bernama addr-set-sshd yang berisi 203.0.113.66, serta chain f2b-chain yang menolak setiap sumber dalam set tersebut. Jika fail2ban-client menyatakan bahwa sebuah alamat diblokir tetapi alamat itu tidak muncul dalam nft list, berarti ban action Anda tidak sesuai dengan firewall. Lihat catatan nftables/iptables pada bagian mode kegagalan.

Langkah 6: Batalkan pemblokiran alamat Anda dan pulihkan akses jika terkunci

Jika Anda memblokir alamat yang seharusnya tidak diblokir, termasuk alamat Anda sendiri, hapus pemblokiran tersebut:

sudo fail2ban-client set sshd unbanip 203.0.113.66

Perintah tersebut mengembalikan 1 jika berhasil. Untuk menghapus semua pemblokiran pada semua jail:

sudo fail2ban-client unban --all

Jangan mengandalkan sesi SSH yang sudah terbuka untuk menyelamatkan Anda. Pemblokiran nftables menolak setiap paket dari alamat yang diblokir ke port 22, termasuk koneksi yang sudah terbentuk. Akibatnya, sesi yang sudah ada akan berhenti merespons segera setelah pemblokiran diterapkan. Jika Anda memblokir alamat sendiri dan tidak memiliki entri ignoreip, Anda akan terkunci hingga pemblokiran berakhir. Pulihkan akses melalui konsol web dari provider Anda, seperti VNC atau serial, yang tidak menggunakan SSH. Setelah itu, tunggu hingga bantime berakhir atau jalankan perintah pembatalan pemblokiran dari konsol tersebut.

Langkah 7: Buat pemblokiran tetap berlaku dan meningkat

Fail2ban menyimpan pemblokiran aktif dalam database SQLite kecil di /var/lib/fail2ban/fail2ban.sqlite3, sehingga pemblokiran tersebut tetap berlaku setelah layanan dimulai ulang atau sistem di-reboot; pemblokiran tidak hilang. Baris bantime.increment yang telah Anda tambahkan membuat setiap pelanggar berulang menghadapi durasi pemblokiran yang makin lama, kira-kira meningkat dua kali lipat dari satu jam hingga sekitar satu minggu.

Untuk menerapkan kebijakan "tiga pelanggaran" di seluruh sistem, Fail2ban menyediakan jail recidive yang memantau /var/log/fail2ban.log miliknya sendiri dan memberikan pemblokiran jangka panjang kepada alamat apa pun yang telah diblokir berulang kali di semua jail. Karena [DEFAULT] kini menggunakan backend systemd, arahkan jail ini kembali ke file log yang memang dirancang untuk dibaca:

[recidive]
enabled  = true
backend  = auto
logpath  = /var/log/fail2ban.log
bantime  = 1w
findtime = 1d
maxretry = 5

backend = auto dengan logpath eksplisit membuat recidive membaca fail2ban.log biasa. Di situlah baris Ban yang dihitung benar-benar muncul. Jika menggunakan default systemd yang Anda tetapkan secara global, recidive akan diarahkan ke journal, yang tidak berisi baris tersebut.

Langkah 8: Padukan dengan SSH yang hanya menggunakan kunci, dan lebih baik lagi dengan VPN

Fail2ban hanya benar-benar efektif jika digunakan bersama autentikasi berbasis kunci. Dalam file drop-in di bawah /etc/ssh/sshd_config.d/, misalnya /etc/ssh/sshd_config.d/00-hardening.conf, tetapkan:

PasswordAuthentication no
KbdInteractiveAuthentication no

Kemudian sudo systemctl restart ssh. Jika autentikasi kata sandi dinonaktifkan, brute force sama sekali tidak dapat berhasil. Fail2ban kemudian berfungsi untuk mengurangi kebisingan pada log dan mengeluarkan pemindai sejak awal. Perlindungan yang lebih kuat adalah menonaktifkan akses SSH dari internet publik sepenuhnya: tempatkan SSH di balik VPN WireGuard yang di-host sendiri dan firewall port 22 agar hanya merespons melalui tunnel. Tidak ada pihak yang dapat melakukan brute force terhadap port yang tidak dapat dijangkaunya. Fail2ban pun menjadi lapisan cadangan, bukan pertahanan utama.

Fail2ban tidak hanya digunakan untuk SSH. Layanan apa pun yang mencatat upaya login yang gagal dapat diberi jail, termasuk server email, situs nginx, atau pengelola kata sandi Vaultwarden yang di-host sendiri yang login web-nya sebaiknya tidak dibiarkan terbuka terhadap credential stuffing. Setelah aplikasi web ditempatkan di belakang situs nginx dengan sertifikat Let's Encrypt, arahkan filter Fail2ban ke access log-nya dengan cara yang sama seperti jail SSH diarahkan ke journal.

Mode kegagalan, dengan string persis yang akan Anda lihat

"Have not found any log file for sshd jail", dan Fail2ban tidak akan berjalan. Ini adalah masalah auth.log lama. Di Ubuntu 24.04, masalah ini hanya terjadi jika /var/log/auth.log tidak ada (image tanpa rsyslog, seperti minimal image atau container) dan journal tidak dibaca: instalasi pip tanpa defaults-debian.conf, container tanpa journal, atau backend = auto yang tidak sengaja Anda tempelkan ke jail.local. Pada backend berbasis file tanpa /var/log/auth.log, jail sshd tidak dapat menemukan log-nya dan seluruh daemon berhenti. fail2ban.log menampilkan:

ERROR   Failed during configuration: Have not found any log file for sshd jail

Karena error tersebut bersifat fatal, service tidak pernah berjalan. Selanjutnya, fail2ban-client status melaporkan gejala turunannya:

ERROR  Failed to access socket path: /var/run/fail2ban/fail2ban.sock. Is fail2ban running?

Baris "socket path" tersebut bukan berarti Fail2ban rusak. Artinya, Fail2ban tidak pernah berjalan karena salah satu jail tidak dapat menemukan log-nya. Menetapkan backend = systemd di [DEFAULT], yang sudah dilakukan oleh paket Ubuntu, memperbaiki kedua pesan tersebut sekaligus.

Jail aktif, tetapi Total failed tidak pernah berubah. Daemon berjalan dan journal sedang dibaca, tetapi kegagalan nyata terus bertambah di journalctl -u ssh, sementara penghitung tetap pada 0. Singkirkan kemungkinan yang paling jelas terlebih dahulu: Anda sedang menguji dari alamat yang tercantum di ignoreip, sehingga kegagalan Anda sendiri memang dikecualikan. Jika bukan itu penyebabnya, Anda menggunakan build OpenSSH dengan worker per koneksi yang merupakan sshd-session (9.8 dan yang lebih baru). Journal _COMM untuk worker tersebut adalah sshd-session, bukan sshd, sehingga pencocokan bawaan tidak mengenalinya. Perluas pencocokan pada blok [sshd]:

[sshd]
enabled      = true
backend      = systemd
journalmatch = _SYSTEMD_UNIT=ssh.service + _COMM=sshd + _COMM=sshd-session

Restart, sengaja lakukan kegagalan login dari alamat yang tidak tercantum di ignoreip, lalu pastikan Total failed akhirnya bertambah.

Anda memblokir alamat sendiri: Connection refused. Anda tidak memasukkan alamat sendiri ke ignoreip, menguji beberapa login yang gagal, dan sekarang:

ssh: connect to host 10.0.0.10 port 22: Connection refused

Penolakan koneksi, bukan timeout tanpa respons, terjadi karena verdict default reject dari action nftables memang memblokir koneksi Anda. Perbaiki seperti pada Langkah 6: batalkan pemblokiran dari session pada alamat lain yang tidak diblokir, atau gunakan console provider. Session yang sudah terbuka dari alamat yang diblokir juga akan membeku. Setelah itu, tambahkan alamat Anda ke ignoreip agar masalah ini tidak terjadi lagi.

Fail2ban menyatakan sebuah alamat diblokir, tetapi alamat tersebut masih dapat terhubung. Penghitung di status sshd bertambah, tetapi alamat tersebut masih dapat mencapai port 22. Ini adalah ketidaksesuaian antara ban action dan firewall. Di Ubuntu 24.04, penyebabnya hampir selalu karena Anda mengganti banaction = nftables yang berfungsi dengan banaction = iptables-multiport dari panduan lama, pada server yang tidak memiliki lapisan iptables. fail2ban.log menampilkan:

fail2ban.actions [812]: ERROR  Failed to execute ban jail 'sshd' action 'iptables-multiport'

Hapus override tersebut dan gunakan action nftables yang disediakan oleh paket. Atau, jika Anda mengelola firewall sepenuhnya melalui ufw dan ingin pemblokiran terlihat di sana, tetapkan banaction = ufw di [DEFAULT]. Restart, lalu pastikan aturan tersebut muncul dengan sudo nft list ruleset | grep f2b.

Fail2ban tidak mau berjalan setelah jail.local diedit. Typo, heading yang tidak sengaja tertinggal, atau nilai waktu yang tidak valid dapat membuat service menolak untuk berjalan. Minta Fail2ban memeriksa konfigurasi sebelum dijalankan:

sudo fail2ban-client -t

Perintah tersebut menyebutkan file dan jail yang bermasalah, misalnya Errors in jail 'sshd'. Skipping.... Dengan demikian, Anda dapat memperbaiki sumber masalah tanpa menebak-nebak.

FAQ

Apakah instalasi Fail2ban bawaan pada Ubuntu 24.04 benar-benar memblokir serangan SSH?

Ya. Paket tersebut menyertakan /etc/fail2ban/jail.d/defaults-debian.conf, yang mengaktifkan jail sshd, menetapkan backend = systemd agar membaca journal systemd, terlepas dari apakah image Anda menulis /var/log/auth.log, serta menetapkan banaction = nftables agar pemblokiran diterapkan melalui firewall Ubuntu yang sebenarnya. apt install fail2ban biasa melindungi SSH sejak boot pertama. Konfirmasikan dengan sudo fail2ban-client status sshd dan cari nilai Total failed yang bukan nol.

Mengapa Fail2ban tidak memblokir apa pun pada server saya?

Singkirkan tiga penyebab umum berikut secara berurutan. Anda mungkin sedang menguji dari alamat dalam ignoreip, yang memang dikecualikan. Anda mungkin telah menimpa default yang berfungsi dengan menempelkan backend = auto ke jail.local dari panduan lama. Hal ini merusak pemblokiran SSH pada image yang tidak memiliki rsyslog, sehingga tidak memiliki auth.log. Atau, Anda mungkin berada di dalam container yang sama sekali tidak memiliki journal systemd untuk dibaca. Periksa Total failed di fail2ban-client status sshd. Jika nilainya tidak pernah meningkat sementara journalctl -u ssh menampilkan kegagalan nyata, jail membaca sumber yang salah.

Bagaimana cara membatalkan pemblokiran alamat IP saya sendiri?

Jalankan sudo fail2ban-client set sshd unbanip YOUR.IP.HERE. Perintah ini mengembalikan 1 jika berhasil. Anda juga dapat menjalankan sudo fail2ban-client unban --all untuk menghapus semua pemblokiran. Jika Anda terkunci dari SSH, gunakan konsol web atau VNC dari provider Anda untuk menjalankan perintah yang sama. Pemblokiran menolak setiap paket dari alamat Anda ke port 22, sehingga sesi yang sudah terbuka pun berhenti bekerja. Setelah itu, tambahkan alamat Anda ke ignoreip agar pemblokiran tersebut tidak terjadi lagi.

Apa perbedaan antara jail.conf dan jail.local?

jail.conf berisi default upstream Fail2ban dan dapat digantikan oleh pembaruan paket, sehingga setiap perubahan di dalamnya berisiko hilang. Paket Debian/Ubuntu menerapkan pengaturannya sendiri di atasnya melalui jail.d/defaults-debian.conf. Simpan perubahan Anda di jail.local. File ini dibaca setelah kedua file tersebut dan memiliki prioritas lebih tinggi, serta tidak pernah diubah oleh pembaruan. Hanya file *.local di dalam jail.d/ yang dibaca setelahnya, jadi jangan meninggalkan file tambahan di sana. Biarkan jail.conf sebagai referensi baca saja.

Apakah Fail2ban menggantikan autentikasi SSH berbasis key?

Tidak. Fail2ban membatasi laju kegagalan berulang dari satu alamat. Fail2ban tidak dapat mencegah upaya tebak-tebakan yang lambat dan terdistribusi jika setiap alamat tetap berada di bawah ambang batas. Autentikasi hanya dengan key (PasswordAuthentication no) membuat upaya menebak password tidak mungkin dilakukan. Fail2ban kemudian mengurangi noise pada log dan mengeluarkan scanner lebih awal. Gunakan keduanya, dan sebaiknya nonaktifkan akses SSH dari Internet publik sepenuhnya.