Cách cài đặt và cấu hình Fail2ban trên Ubuntu 22.04

theanh

Administrator
Nhân viên
Fail2ban là IPS (Phần mềm phòng chống xâm nhập) miễn phí và mã nguồn mở giúp quản trị viên bảo vệ máy chủ Linux khỏi các cuộc tấn công đăng nhập độc hại và tấn công bằng cách dùng vũ lực. Fail2ban được viết bằng Python và đi kèm với các bộ lọc cho nhiều dịch vụ khác nhau như Apache2, SSH, FTP, v.v. Fail2ban giảm các nỗ lực đăng nhập độc hại bằng cách chặn các địa chỉ IP của các cuộc tấn công nguồn.

Fail2ban hoạt động bằng cách quét các tệp nhật ký của các dịch vụ (ví dụ: /var/log/auth.log) và cấm các địa chỉ IP hiển thị các nỗ lực đăng nhập độc hại như quá nhiều mật khẩu không đúng, tìm kiếm khai thác, v.v. Fail2ban cũng hỗ trợ nhiều tường lửa phụ trợ như iptables, ufw và firewalld. Ngoài ra, cho phép bạn thiết lập thông báo qua email cho mọi nỗ lực đăng nhập bị chặn.

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt và cấu hình Fail2ban để bảo mật máy chủ Ubuntu 22.04. Hướng dẫn này cũng đề cập đến lệnh cơ bản của fail2ban-client để quản lý dịch vụ Fail2ban và jails.

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

  • Máy chủ Ubuntu 22.04
  • Người dùng không phải root có quyền sudo.

Thiết lập Tường lửa UFW​

Trước khi bắt đầu cài đặt Fail2ban, bạn sẽ cần thiết lập Tường lửa trên máy chủ Ubuntu của mình.

Cài đặt máy chủ Ubuntu mặc định đi kèm với Tường lửa UFW, dễ quản lý hơn các tường lửa khác như iptables.

Bây giờ hãy kiểm tra trạng thái tường lửa UFW bằng lệnh sau.
Mã:
sudo ufw status
Nếu bạn nhận được thông báo đầu ra như "Trạng thái: không hoạt động", thì tường lửa UFW của bạn vẫn chưa được khởi động. Nhưng nếu bạn nhận được thông báo đầu ra như "Command ufw not found", thì tường lửa UFW chưa được cài đặt trên máy chủ của bạn.

Để cài đặt gói tường lửa UFW, hãy chạy lệnh apt bên dưới.
Mã:
sudo apt install ufw -y
Sau khi cài đặt UFW hoàn tất, hãy chạy lệnh bên dưới để thêm dịch vụ SSH vào tường lửa UFW.
Mã:
sudo ufw allow ssh
Tiếp theo, hãy chạy lệnh bên dưới để khởi động và bật tường lửa UFW.
Mã:
sudo ufw enable
Nhập y để xác nhận và khởi động tường lửa UFW.

Cuối cùng, hãy kiểm tra lại tường lửa UFW bằng lệnh sau.
Mã:
sudo ufw status
Bên dưới, bạn có thể thấy tường lửa UFW "Trạng thái: hoạt động" với cổng SSH 22 đã được thêm vào các quy tắc tường lửa.


Cài đặt Fail2ban trên Ubuntu 22.04​

Sau khi bạn đã cài đặt và cấu hình tường lửa UFW, bây giờ bạn sẽ cài đặt gói Fail2ban vào máy chủ của mình.

Chạy lệnh sau để cập nhật và làm mới kho lưu trữ Ubuntu của bạn.
Mã:
sudo apt update
Bây giờ hãy cài đặt gói Fail2ban bằng lệnh bên dưới.
Mã:
sudo apt install fail2ban -y
Quá trình cài đặt sẽ bắt đầu.



Sau khi quá trình cài đặt Fail2ban hoàn tất, hãy bật dịch vụ Fail2ban và khởi động dịch vụ bằng lệnh bên dưới.
Mã:
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
Cuối cùng, hãy kiểm tra trạng thái dịch vụ Fail2ban bằng lệnh sau.
Mã:
sudo systemctl status fail2ban
Trong ảnh chụp màn hình bên dưới, bạn sẽ thấy dịch vụ Fail2ban đang chạy trên máy chủ Ubuntu 22.04.


Cấu hình Fail2ban​

Sau khi bạn đã cài đặt Fail2ban, bây giờ là lúc thiết lập và cấu hình Fail2ban.

Tất cả cấu hình Fail2ban được lưu trữ tại thư mục /etc/fail2ban. Dưới đây là cấu hình Fail2ban chi tiết mà bạn phải biết:
  • Cấu hình fail2ban.conf là cấu hình chính của Fail2ban.
  • Cấu hình jail.conf là một ví dụ về cấu hình jail Fail2ban.
  • Thư mục action.d chứa các thiết lập hành động fail2ban như thiết lập thư và thiết lập tường lửa.
  • Thư mục jail.d chứa cấu hình bổ sung cho jail fail2ban.
Để bắt đầu cấu hình Fail2ban, bạn sẽ cần sao chép cấu hình jail mặc địnhjail.conf vào jail.local bằng lệnh sau.
Mã:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Bây giờ hãy chỉnh sửa cấu hình jail.local bằng trình soạn thảo nano.
Mã:
sudo nano /etc/fail2ban/jail.local
Đầu tiên, bỏ ghi chú tùy chọn ignoreip và thêm địa chỉ IP của bạn. Tất cả các địa chỉ IP bên trong tùy chọn ignoreip sẽ không bị Fail2ban chặn.
Mã:
ignoreip = 127.0.0.1/8 ::1 192.168.1.0/24 192.168.10.20
Đối với cài đặt cấm, bạn có thể thay đổi cấu hình theo nhu cầu. Trong ví dụ này, lệnh cấm toàn cục sẽ là 1 ngày, lệnh tìm kiếm sẽ là 10 phút và lệnh thử lại tối đa lên đến 5 lần.

Tùy chọn lệnh bantime là thời gian địa chỉ IP sẽ bị cấm truy cập vào máy chủ. Tùy chọn lệnh findtime là khoảng thời gian giữa số lần không thành công trước khi hành động cấm diễn ra. Và tùy chọn lệnh maxretry là số lần không thành công để địa chỉ IP bị cấm.
Mã:
lệnh bantime = 1d
lệnh tìm kiếm = 10 phút
lệnh maxretry = 5
Hành động mặc định của Fail2ban chỉ là cấm địa chỉ IP. Nhưng bạn cũng có thể thiết lập thông báo qua email bất cứ khi nào một địa chỉ IP bị cấm.

Thay đổi tùy chọn hành động như bên dưới và thay đổi địa chỉ email người gửi và đích mặc định.
Mã:
action = %(action_mw)s
destemail = [emailprotected]
sender = [emailprotected]
Tiếp theo, đối với tích hợp tường lửa UFW, bạn cần thay đổi tùy chọn banaction thành ufw như bên dưới.
Mã:
banaction = ufw
Cuối cùng, đối với cấu hình jails. Phần này là nơi bạn thêm dịch vụ của mình và bảo mật dịch vụ đó bằng fail2ban.

Trong ví dụ này, chúng tôi sẽ bật jail cho dịch vụ SSH, nhưng chúng tôi cũng ghi đè cấu hình mặc định toàn cầu cho sshd jail. Thời gian cấm sẽ là 1 tuần với số lần thử lại lỗi tối đa là 3 lần và thời gian tìm kiếm là 10 phút.
Mã:
[sshd]
enabled = true
maxretry = 3
findtime = 1d
bantime = 1w

port = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s
Lưu và đóng tệp khi bạn hoàn tất.

Bây giờ hãy chạy lệnh sau để khởi động lại dịch vụ Fail2ban và áp dụng các thay đổi mới cho cấu hình jail.local.
Mã:
sudo systemctl restart fail2ban
Bây giờ bạn đã hoàn tất cấu hình Fail2ban với thông báo qua email được bật và sshd jail được bật để bảo mật dịch vụ SSH.

Sử dụng Fail2ban-client để xác minh trạng thái Fail2ban​

Fail2ban cung cấp fail2ban-client dòng lệnh để tương tác với dịch vụ Fail2ban. Điều này cho phép bạn quản lý và cấu hình Fail2ban từ dòng lệnh và cũng cho phép bạn quản lý Fail2ban jail.

Để xác minh cài đặt và cấu hình fail2ban, hãy chạy lệnh fail2ban-client bên dưới.
Mã:
sudo fail2ban-client ping
Nếu bạn nhận được thông báo đầu ra như "Máy chủ trả lời: pong", điều này có nghĩa là Fail2ban đang chạy mà không có lỗi.

Tiếp theo, hãy chạy lệnh fail2ban-client bên dưới để kiểm tra trạng thái của sshd jail.
Mã:
sudo fail2ban-client status sshd
Bên dưới, bạn có thể xem trạng thái chi tiết của sshd jail. Điều này bao gồm tệp nhật ký cho dịch vụ SSH và danh sách các địa chỉ IP bị cấm trên sshd jail.



Bây giờ nếu bạn muốn có cấu hình chi tiết của sshd jail, bạn có thể sử dụng lệnh fail2ban-client như bên dưới.

Kiểm tra cấu hình bantime cho sshd jail. Bạn sẽ nhận được đầu ra của bantime tại đây trong vài giây.
Mã:
sudo fail2ban-client get sshd bantime
Kiểm tra cấu hình maxrtey cho sshd jail. Bạn sẽ thấy maxretry ở đây là 3 vì nó bị ghi đè từ cấu hình toàn cục, là maxrety 5 lần.
Mã:
sudo fail2ban-client get sshd maxretry
Đối với lệnh banaction trong sshd jail, bạn có thể sử dụng lệnh sau. Và bạn sẽ nhận được đầu ra của ufw là lệnh banaction mặc định cho sshd jail.
Mã:
sudo fail2ban-client get sshd actions
Đối với findtime tại đây, bạn cũng sẽ thấy giá trị ghi đè từ sshd jail. Đầu ra tại đây cũng sẽ ở định dạng giây.
Mã:
sudo fail2ban-client get sshd findtime
Cuối cùng, bạn cũng có thể kiểm tra ignoreip mặc định cho sshd jail bằng lệnh bên dưới. Và bạn sẽ thấy ignoreip có cùng giá trị với cấu hình Fail2ban toàn cục.
Mã:
sudo fail2ban-client get sshd ignoreip

Cấm và bỏ cấm IP bằng Fail2ban-client​

Một điều quan trọng khác về Fail2ban ở đây là cách cấm và bỏ cấm địa chỉ IP trên Fail2ban. Để thực hiện điều đó, bạn cũng có thể sử dụng lệnh fail2ban-client.

Để cấm địa chỉ IP thủ công trên sshd jail, bạn có thể sử dụng lệnh fail2ban-client bên dưới. Thay đổi địa chỉ IP bằng địa chỉ IP bạn muốn cấm.
Mã:
sudo fail2ban-client set sshd banip IP-ADDRESS
Để bỏ cấm địa chỉ IP khỏi sshd jail, bạn có thể sử dụng lệnh fail2ban-client bên dưới. Chỉ cần đảm bảo thay đổi địa chỉ IP bằng địa chỉ IP bạn muốn bỏ cấm.
Mã:
sudo fail2ban-client set sshd unbanip IP-ADDRESS
Bây giờ sau khi bạn cấm một địa chỉ IP thủ công hoặc bỏ cấm một địa chỉ IP, bạn có thể xác minh bằng lệnh fail2ban-client bên dưới.
Mã:
sudo fail2ban-client status sshd
Nếu bạn cấm một địa chỉ IP theo cách thủ công, hãy đảm bảo rằng địa chỉ IP đó có trong danh sách các địa chỉ IP bị cấm. Nhưng nếu bạn bỏ cấm một địa chỉ IP, hãy đảm bảo rằng địa chỉ IP đó biến mất khỏi danh sách các địa chỉ IP bị cấm.

Kết luận​

Xin chúc mừng! Bây giờ bạn đã cài đặt và cấu hình Fail2ban thành công để bảo mật Ubuntu 22.04. Bạn cũng đã học cách bật tường lửa UFW và cách tích hợp Fail2ban với tường lửa UFW. Cuối cùng, bạn cũng đã học cách quản lý Fail2ban bằng lệnh fail2ban-client, bao gồm cách cấm và bỏ cấm các địa chỉ IP khỏi Fail2ban.
 
Back
Bên trên