Fail2ban adalah Sistem Pencegahan Intrusi sumber terbuka dan gratis yang ditulis dengan Python. Ini digunakan untuk melindungi sistem Anda dari serangan brute force. Itu terus memantau file log SSH (dan lainnya) untuk upaya otentikasi, setelah sejumlah upaya kata sandi yang salah, alamat IP klien dilarang oleh Fail2Ban. Ini dapat digunakan untuk mengamankan beberapa layanan termasuk, SSH, vsftpd, Apache, dan Webmin.
Dalam tutorial ini, saya akan menunjukkan cara menginstal firewall Fail2Ban di Alma Linux 8.
Prasyarat
- Server yang menjalankan Alma Linux 8.
- Kata sandi root dikonfigurasi di server.
Verifikasi Instalasi Firewalld
Secara default, paket Firewalld sudah diinstal sebelumnya di Alma Linux 8. Pertama, Anda perlu memeriksa apakah paket tersebut berjalan atau tidak. Anda dapat memeriksanya dengan perintah berikut:
systemctl status firewalld
Jika firewalld tidak berjalan, Anda akan mendapatkan output berikut:
? firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead) Docs: man:firewalld(1)
Sekarang, mulai layanan firewalld dengan perintah berikut:
systemctl start firewalld
Anda dapat memeriksa status firewalld menggunakan perintah berikut:
systemctl status firewalld
Anda akan melihat output berikut:
? firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: active (running) since Sat 2022-02-19 08:57:14 UTC; 40s ago Docs: man:firewalld(1) Main PID: 7214 (firewalld) Tasks: 2 (limit: 23696) Memory: 27.9M CGroup: /system.slice/firewalld.service ??7214 /usr/libexec/platform-python -s /usr/sbin/firewalld --nofork --nopid Feb 19 08:57:14 linux systemd[1]: Starting firewalld - dynamic firewall daemon... Feb 19 08:57:14 linux systemd[1]: Started firewalld - dynamic firewall daemon.
Sekarang, daftar semua layanan yang dikonfigurasi oleh firewalld menggunakan perintah berikut:
firewall-cmd --list-all
Anda akan melihat output berikut:
public (active) target: default icmp-block-inversion: no interfaces: eth0 eth1 sources: services: cockpit dhcpv6-client ssh ports: protocols: forward: no masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
Instal Fail2Ban
Secara default, paket Fail2Ban tidak tersedia di repo default Alma Linux. Jadi, Anda perlu menginstalnya dari repo EPEL. Anda dapat menginstal repo EPEL dengan perintah berikut:
dnf install epel-release -y
Setelah repo EPEL diinstal, Anda dapat menginstal firewall Fail2Ban dengan perintah berikut:
dnf install fail2ban fail2ban-firewalld -y
Setelah instalasi selesai, mulai dan aktifkan layanan Fail2Ban dengan perintah berikut:
systemctl start fail2ban
systemctl enable fail2ban
Anda dapat memverifikasi status layanan fail2ban dengan menjalankan perintah:
systemctl status fail2ban
Anda akan melihat output berikut:
? fail2ban.service - Fail2Ban Service Loaded: loaded (/usr/lib/systemd/system/fail2ban.service; disabled; vendor preset: disabled) Active: active (running) since Sat 2022-02-19 08:58:34 UTC; 6s ago Docs: man:fail2ban(1) Process: 7838 ExecStartPre=/bin/mkdir -p /run/fail2ban (code=exited, status=0/SUCCESS) Main PID: 7840 (fail2ban-server) Tasks: 3 (limit: 23696) Memory: 10.8M CGroup: /system.slice/fail2ban.service ??7840 /usr/bin/python3.6 -s /usr/bin/fail2ban-server -xf start Feb 19 08:58:34 linux systemd[1]: Starting Fail2Ban Service... Feb 19 08:58:34 linux systemd[1]: Started Fail2Ban Service. Feb 19 08:58:35 linux fail2ban-server[7840]: Server ready
Konfigurasikan Fail2Ban
File konfigurasi utama Fail2Ban terletak di /etc/fail2ban/jail.conf . Sebaiknya buat salinan file konfigurasi utama. Anda dapat membuatnya dengan perintah berikut:
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Secara default, Fail2Ban menggunakan firewall Iptables. Untuk mengaktifkan dukungan firewalld, jalankan perintah berikut:
mv /etc/fail2ban/jail.d/00-firewalld.conf /etc/fail2ban/jail.d/00-firewalld.local
Selanjutnya, restart layanan Fail2Ban untuk menerapkan perubahan:
systemctl restart fail2ban
SSH aman dengan Fail2Ban
Secara default, Fail2Ban tidak dikonfigurasi untuk memblokir IP jarak jauh. Anda perlu mengonfigurasi file konfigurasi jail Fail2Ban untuk setiap layanan yang ingin Anda lindungi.
Untuk melindungi layanan SSH, buat file konfigurasi jail untuk SSH dengan perintah berikut:
nano /etc/fail2ban/jail.d/sshd.local
Tambahkan baris berikut:
# This configuration will block the remote host for 2 hours after 3 failed SSH login attempts. [sshd] enabled = true bantime = 2h maxretry = 3
Simpan dan tutup file ketika Anda selesai kemudian restart layanan SSH untuk menerapkan perubahan:
systemctl restart fail2ban
Anda sekarang dapat memverifikasi konfigurasi jail dengan perintah berikut:
fail2ban-client status
Anda akan mendapatkan jail yang dikonfigurasi dalam output berikut:
Status |- Number of jail: 1 `- Jail list: sshd
Untuk memeriksa jail SSH apakah ada IP yang dilarang, jalankan perintah berikut:
fail2ban-client status sshd
Anda akan mendapatkan semua daftar IP yang dilarang di output berikut:
Status for the jail: sshd |- Filter | |- Currently failed: 6 | |- Total failed: 15 | `- Journal matches: _SYSTEMD_UNIT=sshd.service + _COMM=sshd `- Actions |- Currently banned: 2 |- Total banned: 2 `- Banned IP list: 96.9.67.48 43.154.142.8
Jika Anda ingin membatalkan pemblokiran alamat IP secara manual, jalankan perintah berikut:
fail2ban-client unban remote-ip-address
Kesimpulan
Dalam panduan di atas, kami menjelaskan cara menginstal Fail2Ban di Alma Linux 8. Kami juga menjelaskan cara menggunakan Fail2Ban untuk mengamankan layanan SSH. Sekarang Anda dapat menerapkan Fail2Ban di lingkungan produksi untuk melindungi sistem Anda dari serangan brute force.