Hướng dẫn cài  đặt và sử dụng Fail2ban trên Ubuntu 22.04

Hướng dẫn chi tiết cách cài đặt và cấu hình Fail2ban trên máy chủ Ubuntu 22.04, giúp ngăn chặn các cuộc tấn công, đảm bảo an ninh mạng cho hệ thống.

Fail2ban là một công cụ bảo mật mạnh mẽ và linh hoạt được sử dụng để bảo vệ máy chủ khỏi các cuộc tấn công brute-force. Bằng cách theo dõi các tệp nhật ký (log files) để phát hiện các hành vi đáng ngờ, Fail2ban sẽ tự động chặn các địa chỉ IP có dấu hiệu tấn công. Trong hướng dẫn này, chúng ta sẽ cùng tìm hiểu cách cài đặt và cấu hình Fail2ban trên hệ điều hành Ubuntu 22.04.

1. Fail2ban là gì?

Fail2ban là một công cụ bảo mật mã nguồn mở, được sử dụng chủ yếu để bảo vệ máy chủ khỏi các cuộc tấn công brute-force và các hành vi đáng ngờ khác. Công cụ này hoạt động bằng cách theo dõi các tệp nhật ký (log files) của hệ thống và dịch vụ (như SSH, Apache, Nginx, v.v.). 

Khi phát hiện các dấu hiệu của một cuộc tấn công, như nhiều lần thử đăng nhập thất bại trong một khoảng thời gian ngắn, Fail2ban sẽ tự động chặn địa chỉ IP liên quan bằng cách cập nhật tường lửa (firewall) hoặc thực hiện các hành động bảo vệ khác.

Bảo mật Linux với Fail2ban

>>> Xem thêm: Ubuntu Firewall là gì? Mối quan hệ giữa Ubuntu Firewall và IPTABLES

2. Hướng dẫn cài đặt và sử dụng Fail2ban trên Ubuntu 22.04

2.1. Cài đặt

Cập nhật hệ thống và cài đặt Fail2Ban

apt -y update

apt -y install fail2ban

Start dịch vụ và bật khởi động cùng hệ thống

systemctl start fail2ban

systemctl enable fail2ban

Cấu hình mặc định được đặt tại file: /etc/fail2ban/jail.conf

Để thay đổi cài đặt,chúng ta sẽ tạo file /etc/fail2ban/jail.local và chỉnh sửa cấu hình từ file này

cat << EOF >> /etc/fail2ban/jail.local

[DEFAULT]

ignoreip = 127.0.0.1/8 ::1

bantime  = 1d

findtime  = 5m

maxretry = 5

EOF

Một số cấu hình cần chú ý:

  • ignoreip: danh sách white ip
  • bantime: Thời gian block (mặc định tính bằng giây)

1m ⇒ 1 minutes

1h ⇒ 1 houer

1d ⇒ 1 day

1mo ⇒ 1 month

1y ⇒ 1 year

  • findtime: Thời gian 1 IP login thành công
  • maxretry: số lần login fail tối đa trước khi bị block

Các action default:

# - %(action_)s ⇒ ban only

# - %(action_mw)s ⇒ band and email notification (includes Whois info)

# - %(action_mwl)s ⇒ band and email notification (includes Whois info and logs)

2.2. Cấu hình Fail2ban cho dịch vụ ssh

Mặc định, chỉ có dịch vụ ssh được bật và giám sát

~# fail2ban-client status

Status

|- Number of jail:      1

`- Jail list:   sshd

Chỉnh sửa file cấu hình

vi /etc/fail2ban/jail.d/defaults-debian.conf

Thêm các dòng sau, bạn có thể thay đổi các giá trị này theo ý muốn:

[sshd]

enabled = true

bantime  = 1d

findtime  = 3m

maxretry = 5

action = %(action_)s

Reload lại fail2ban để áp dụng cấu hình

systemctl reload fail2ban

Kiểm tra trạng thái

fail2ban-client status sshd

Xem một số dịch vụ khác mà bạn có thể giám sát

grep '^\\[' /etc/fail2ban/jail.conf | tail -n +3

Để thêm 1 dịch vụ khác, chúng ta có thể tạo 1 file trong /etc/fail2ban/jail.d/

Ví dụ:

  • Thiết lập dịch vụ Apache2 basic authentication

cat << EOF >> /etc/fail2ban/jail.d/apache-auth.conf

[apache-auth]

enabled = true

bantime  = 3600

findtime  = 5m

maxretry = 5

action = %(action_)s

EOF

  • Không quên reload lại cấu hình

systemctl reload fail2ban

2.3 Thêm hoặc xoá IP block thủ công

Xoá IP

fail2ban-client set sshd unbanip 192.168.1.10

Thêm ip block

fail2ban-client set sshd banip 192.168.10.0/24

Xoá tất cả ip block

fail2ban-client unban --all

Lưu ý: có thể xem lại list các phiên ssh fail vào máy chủ ubuntu

cat /var/log/auth.log | grep 'Failed password' | sort | uniq -c

Lời kết

Fail2ban là một công cụ không thể thiếu cho bất kỳ quản trị viên hệ thống nào muốn bảo vệ máy chủ khỏi các cuộc tấn công brute-force. Với hướng dẫn này, hy vọng bạn đã có thể cài đặt và cấu hình thành công Fail2ban trên hệ điều hành Ubuntu 22.04 của mình. Nếu có bất kỳ thắc mắc nào, đừng ngần ngại liên hệ với chúng tôi để được hỗ trợ ngay nhé!

Tác giả:
author avatar
Mình là Huy, hiện mình đang là kỹ sư hệ thống tại SunCloud. Mình có nhiều năm kinh nghiệm, kiến thức chuyên môn về mạng, hệ thống, điện toán mây và an ninh bảo mật. Mình đã triển khai và vận hành rất nhiều dự án thực tế cho doanh nghiệp, cơ quan. Mình đã đạt được một số chứng chỉ quốc tế như CCNP, LPI, VCP, đồng thời mình vẫn đang tiếp tục học tập để trau dồi kiến thức mỗi ngày. Mình rất yêu thích công nghệ, đam mê chia sẻ những kiến thức, thông tin hữu ích cho mọi người.

Tin tức nổi bật
Tin tức khác