Cách cài đặt và cấu hình Fail2ban trên Alma Linux 8

theanh

Administrator
Nhân viên
Fail2ban là Hệ thống phòng chống xâm nhập mã nguồn mở và miễn phí được viết bằng Python. Hệ thống này được sử dụng để bảo vệ hệ thống của bạn khỏi các cuộc tấn công bằng cách dùng vũ lực. Hệ thống này liên tục giám sát các tệp nhật ký SSH (và các tệp nhật ký khác) để tìm các nỗ lực xác thực, sau một số lần nhập sai mật khẩu nhất định, địa chỉ IP của máy khách sẽ bị Fail2Ban cấm. Nó có thể được sử dụng để bảo mật một số dịch vụ bao gồm SSH, vsftpd, Apache và Webmin.

Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách cài đặt tường lửa Fail2Ban trên Alma Linux 8.

Điều kiện tiên quyết​

  • Máy chủ chạy Alma Linux 8.
  • Mật khẩu gốc được cấu hình trên máy chủ.

Xác minh cài đặt Firewalld​

Theo mặc định, gói Firewalld được cài đặt sẵn trên Alma Linux 8. Trước tiên, bạn sẽ cần kiểm tra xem nó có đang chạy hay không. Bạn có thể kiểm tra bằng lệnh sau:
Mã:
systemctl status firewalld
Nếu firewalld không chạy, bạn sẽ nhận được kết quả sau:
Mã:
? 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)
Bây giờ, hãy khởi động dịch vụ firewalld bằng lệnh sau:
Mã:
systemctl start firewalld
Bạn có thể kiểm tra trạng thái của firewalld bằng lệnh sau:
Mã:
systemctl status firewalld
Bạn sẽ thấy kết quả sau:
Mã:
? firewalld.service - firewalld - daemon tường lửa động Đã tải: đã tải (/usr/lib/systemd/system/firewalld.service; đã tắt; cài đặt trước của nhà cung cấp: đã bật) Đang hoạt động: đang hoạt động (đang chạy) kể từ Thứ bảy 2022-02-19 08:57:14 UTC; 40s trước Tài liệu: man:firewalld(1) PID chính: 7214 (firewalld) Nhiệm vụ: 2 (giới hạn: 23696) Bộ nhớ: 27,9M CGroup: /system.slice/firewalld.service ??7214 /usr/libexec/platform-python -s /usr/sbin/firewalld --nofork --nopid19/02 08:57:14 linux systemd[1]: Đang khởi động firewalld - daemon tường lửa động...19/02 08:57:14 linux systemd[1]: Đã khởi động firewalld - daemon tường lửa động.
Bây giờ, hãy liệt kê tất cả các dịch vụ được firewalld định cấu hình bằng lệnh sau:
Mã:
firewall-cmd --list-all
Bạn sẽ thấy đầu ra sau:
Mã:
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:

Cài đặt Fail2Ban​

Theo mặc định, gói Fail2Ban không có trong repo mặc định của Alma Linux. Vì vậy, bạn sẽ cần cài đặt nó từ repo EPEL. Bạn có thể cài đặt kho lưu trữ EPEL bằng lệnh sau:
Mã:
dnf install epel-release -y
Sau khi kho lưu trữ EPEL được cài đặt, bạn có thể cài đặt tường lửa Fail2Ban bằng lệnh sau:
Mã:
dnf install fail2ban fail2ban-firewalld -y
Sau khi cài đặt hoàn tất, hãy khởi động và kích hoạt dịch vụ Fail2Ban bằng lệnh sau:
Mã:
systemctl start fail2ban
systemctl enable fail2ban
Bạn có thể xác minh trạng thái của dịch vụ fail2ban bằng cách chạy lệnh:
Mã:
systemctl status fail2ban
Bạn sẽ thấy đầu ra sau:
Mã:
? fail2ban.service - Dịch vụ Fail2Ban Đã tải: đã tải (/usr/lib/systemd/system/fail2ban.service; đã tắt; cài đặt trước của nhà cung cấp: đã tắt) Đang hoạt động: đang hoạt động (đang chạy) kể từ Thứ bảy 2022-02-19 08:58:34 UTC; 6 giây trước Tài liệu: man:fail2ban(1) Quy trình: 7838 ExecStartPre=/bin/mkdir -p /run/fail2ban (mã=thoát, trạng thái=0/THÀNH CÔNG) PID chính: 7840 (fail2ban-server) Nhiệm vụ: 3 (giới hạn: 23696) Bộ nhớ: 10,8M CGroup: /system.slice/fail2ban.service ??7840 /usr/bin/python3.6 -s /usr/bin/fail2ban-server -xf start19/02 08:58:34 linux systemd[1]: Đang khởi động dịch vụ Fail2Ban...19/02 08:58:34 linux systemd[1]: Đã khởi động dịch vụ Fail2Ban.19/02 08:58:35 linux fail2ban-server[7840]: Máy chủ đã sẵn sàng

Cấu hình Fail2Ban​

Tệp cấu hình chính của Fail2Ban nằm tại /etc/fail2ban/jail.conf. Tốt nhất là tạo một bản sao của tệp cấu hình chính. Bạn có thể tạo tệp này bằng lệnh sau:
Mã:
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Theo mặc định, Fail2Ban sử dụng tường lửa Iptables. Để bật hỗ trợ tường lửa, hãy chạy lệnh sau:
Mã:
mv /etc/fail2ban/jail.d/00-firewalld.conf /etc/fail2ban/jail.d/00-firewalld.local
Tiếp theo, khởi động lại dịch vụ Fail2Ban để áp dụng các thay đổi:
Mã:
systemctl restart fail2ban

Bảo mật SSH với Fail2Ban​

Theo mặc định, Fail2Ban không được cấu hình để chặn IP từ xa. Bạn sẽ cần cấu hình tệp cấu hình jail Fail2Ban cho từng dịch vụ mà bạn muốn bảo vệ.

Để bảo vệ dịch vụ SSH, hãy tạo tệp cấu hình jail cho SSH bằng lệnh sau:
Mã:
nano /etc/fail2ban/jail.d/sshd.local
Thêm các dòng sau:
Mã:
# Cấu hình này sẽ chặn máy chủ từ xa trong 2 giờ sau 3 lần đăng nhập SSH không thành công.[sshd]enabled = truebantime = 2hmaxretry = 3
Lưu và đóng tệp khi bạn hoàn tất, sau đó khởi động lại dịch vụ SSH để áp dụng các thay đổi:
Mã:
systemctl restart fail2ban
Bây giờ bạn có thể xác minh cấu hình jail bằng lệnh sau:
Mã:
fail2ban-client status
Bạn sẽ nhận được jail đã cấu hình trong đầu ra sau:
Mã:
Trạng thái|- Số lượng jail: 1`- Danh sách Jail: sshd
Để kiểm tra jail SSH xem có IP bị cấm nào không, hãy chạy lệnh sau:
Mã:
fail2ban-client status sshd
Bạn sẽ nhận được tất cả danh sách IP bị cấm trong đầu ra sau:
Mã:
Trạng thái của jail: sshd|- Bộ lọc| |- Hiện không thành công: 6| |- Tổng số lần không thành công: 15| `- Nhật ký khớp: _SYSTEMD_UNIT=sshd.service + _COMM=sshd`- Hành động |- Hiện đang bị cấm: 2 |- Tổng số bị cấm: 2 `- Danh sách IP bị cấm: 96.9.67.48 43.154.142.8
Nếu bạn muốn bỏ cấm địa chỉ IP theo cách thủ công, hãy chạy lệnh sau:
Mã:
fail2ban-client unban remote-ip-address

Kết luận​

Trong hướng dẫn trên, chúng tôi đã giải thích cách cài đặt Fail2Ban trên Alma Linux 8. Chúng tôi cũng giải thích cách sử dụng Fail2Ban để bảo mật dịch vụ SSH. Bây giờ bạn có thể triển khai Fail2Ban trong môi trường sản xuất để bảo vệ hệ thống của mình khỏi các cuộc tấn công bằng vũ lực.
 
Back
Bên trên