Hướng Dẫn Cài Đặt Fail2Ban Trên Linux Bảo Vệ SSH

Thanh Hiền Nội dung đã được kiểm duyệt
Ngày đăng: 18/7/2026 Cập nhật: 24/7/2026 Lượt xem: 165 Đánh giá: 4.9/5118lượt đánh giá
VPSTTT trên

Hướng dẫn cài đặt Fail2Ban trên Ubuntu, Debian, AlmaLinux, Rocky Linux và CentOS. Cấu hình Fail2Ban giúp tự động phát hiện, chặn IP dò mật khẩu và bảo vệ SSH khỏi tấn công brute force.

Kiến thức fail2banssh

Trong quá trình kiểm tra log SSH trên VPS Linux, bạn phát hiện nhiều địa chỉ IP lạ liên tục đăng nhập vào tài khoản root. Như hình minh họa bên dưới, chỉ trong thời gian ngắn đã xuất hiện hàng loạt dòng Failed password từ nhiều địa chỉ IP khác nhau. Đây là dấu hiệu phổ biến của các bot Internet đang thực hiện Brute Force SSH nhằm dò mật khẩu máy chủ.

Việc cài đặt Fail2Ban trên Linux giúp VPS tự động phát hiện và chặn các địa chỉ IP liên tục thử đăng nhập SSH bằng mật khẩu sai.

Cài Đặt Fail2Ban Trên Linux
Hình ảnh nhiều IP spam đến VPS

Hôm nay, VPSTTT sẽ hướng dẫn bạn cách cài đặt Fail2Ban trên Linux để tự động phát hiện và chặn những địa chỉ IP đang spam kết nối hoặc đăng nhập SSH sai quá nhiều lần. Bài viết sẽ hướng dẫn cài đặt Fail2Ban trên hai nhóm hệ điều hành Linux phổ biến gồm Ubuntu/Debian và CentOS Stream/RHEL/AlmaLinux/Rocky Linux. Các bước được trình bày chi tiết để người mới cũng có thể kiểm tra hệ điều hành, cài đặt đúng gói phần mềm và cấu hình Fail2Ban bảo vệ SSH.

1. Fail2Ban là gì?

Fail2Ban là công cụ bảo mật mã nguồn mở dành cho Linux, có nhiệm vụ theo dõi nhật ký hệ thống và tự động chặn các địa chỉ IP có hành vi đăng nhập sai quá nhiều lần. Công cụ này hoạt động bằng cách quét các file log như /var/log/auth.log hoặc nhật ký systemd, sau đó tạo quy tắc chặn IP thông qua firewall của máy chủ.

Fail2Ban thường được sử dụng để bảo vệ SSH trước các cuộc tấn công Brute Force, đồng thời cũng có thể cấu hình cho nhiều dịch vụ khác như Nginx, Apache, FTP và Postfix. Khi một địa chỉ IP vượt quá số lần đăng nhập thất bại cho phép trong khoảng thời gian đã đặt, Fail2Ban sẽ tạm thời đưa IP đó vào danh sách cấm.

Tuy nhiên, Fail2Ban không thay thế hoàn toàn cho mật khẩu mạnh, SSH Key hoặc firewall. Để bảo vệ VPS Linux tốt hơn, bạn nên kết hợp Fail2Ban với xác thực bằng SSH Key, hạn chế đăng nhập tài khoản root và cập nhật hệ điều hành thường xuyên.

Trước khi cài đặt Fail2Ban trên Linux, bạn nên xác định cổng SSH đang sử dụng và địa chỉ IP quản trị cần đưa vào danh sách bỏ qua.

2. Cài đặt Fail2Ban trên Linux nhanh

Các bước cài đặt Fail2Ban trên Linux sẽ khác nhau đôi chút giữa Ubuntu, Debian, AlmaLinux, Rocky Linux và CentOS.

2.1. Đối với Ubuntu và CentOS:

Đối với Ubuntu và Debian, chạy lần lượt các lệnh sau:

sudo apt update sudo apt install fail2ban -y

2.2. Đối với AlmaLinux 8

Bước 1: Cài đặt công cụ quản lý repository

sudo dnf install -y dnf-plugins-core

Bước 2: Kích hoạt kho PowerTools

sudo dnf config-manager --set-enabled powertools

Bước 3: Cài đặt kho EPEL

sudo dnf install -y epel-release sudo dnf makecache

Bước 4: Cài đặt Fail2Ban

sudo dnf install -y fail2ban fail2ban-firewalld

AlmaLinux 8 sử dụng tên repository powertools; AlmaLinux 9 chuyển sang tên crb. Gói Fail2Ban dành cho Enterprise Linux được cung cấp thông qua EPEL.

2.3. Đối với CentOS

Bước 1: Cài công cụ quản lý repository

sudo dnf install -y dnf-plugins-core

Bước 2: Kích hoạt kho CRB

sudo dnf config-manager --set-enabled crb

Bước 3: Cài EPEL và EPEL Next

sudo dnf install -y epel-release epel-next-release sudo dnf makecache

Bước 4: Cài đặt Fail2Ban

sudo dnf install -y fail2ban fail2ban-firewalld

2.4. Kiểm tra dịch vụ Fail2Ban

Sau khi cài đặt xong, bạn hãy kiểm tra xem dịch vụ Fail2Ban đã hoạt động hay chưa bằng lệnh:

sudo systemctl status fail2ban
Cài Đặt Fail2Ban Trên Linux

Nếu kết quả hiển thị Active: active (running), điều đó có nghĩa là Fail2Ban đã được cài đặt và đang chạy bình thường trên máy chủ.

3. Cấu hình Fail2Ban bảo vệ SSH

3.1. Tạo file cấu hình bảo vệ SSH

Mở file cấu hình bằng trình soạn thảo Nano:

sudo nano /etc/fail2ban/jail.d/sshd.local

Nếu máy chủ sử dụng cổng SSH mặc định 22, dán toàn bộ nội dung sau:

[DEFAULT] ignoreip = 127.0.0.1/8 ::1 bantime = 1h findtime = 10m maxretry = 5 [sshd] enabled = true port = 22 filter = sshd backend = systemd
Cài Đặt Fail2Ban Trên Linux

Cách lưu file trong Nano

Sau khi dán nội dung vào Nano, thực hiện lần lượt:

  • Nhấn Ctrl + O.
  • Nano sẽ hỏi tên file, giữ nguyên và nhấn Enter.
  • Nhấn Ctrl + X để thoát.

3.2. Ý nghĩa các thông số Fail2Ban

Thông sốGiá trị mẫuÝ nghĩa
ignoreip127.0.0.1/8 ::1Các địa chỉ IP không bị Fail2Ban chặn
bantime1hThời gian chặn IP là 1 giờ
findtime10mKhoảng thời gian Fail2Ban theo dõi lỗi đăng nhập
maxretry5Số lần đăng nhập sai tối đa
enabledtrueKích hoạt jail SSH
port22Cổng SSH cần bảo vệ
filtersshdBộ lọc log dành cho SSH
backendsystemdĐọc sự kiện SSH từ systemd journal

3.3. Kiểm tra file cấu hình Fail2Ban

Trước khi khởi động Fail2Ban, chạy lệnh:

sudo fail2ban-client -t
Cài Đặt Fail2Ban Trên Linux

Nếu xuất hiện lỗi, không nên khởi động lại Fail2Ban ngay. Hãy kiểm tra các nguyên nhân thường gặp:

  • Thiếu tên section [sshd].
  • Viết sai enabled = true.
  • Nhập sai đơn vị thời gian.
  • Dùng ký tự lạ khi sao chép nội dung.
  • Cấu hình hai thông số trên cùng một dòng.
  • Nhập sai tên file hoặc sai thư mục.

Bạn có thể mở lại file bằng lệnh:

sudo nano /etc/fail2ban/jail.d/sshd.local

3.4. Khởi động và bật Fail2Ban cùng hệ thống

Sau khi cấu hình hợp lệ, kích hoạt Fail2Ban:

sudo systemctl enable --now fail2ban
VPSTTT

Lệnh này thực hiện đồng thời hai việc:

  • Khởi động dịch vụ Fail2Ban ngay lập tức.
  • Cho phép Fail2Ban tự chạy sau mỗi lần khởi động máy chủ.

Khởi động lại dịch vụ để nạp cấu hình:

sudo systemctl restart fail2ban

Kiểm tra trạng thái:

sudo systemctl status fail2ban --no-pager -l
VPSTTT

Nếu hoạt động bình thường, kết quả sẽ có dòng: Active: active (running)

3.5. Kiểm tra Fail2Ban đã bảo vệ SSH chưa

Để xác nhận quá trình cài đặt Fail2Ban trên Linux thành công, hãy kiểm tra danh sách jail và trạng thái của jail sshd.

Chạy lệnh:

sudo fail2ban-client status

Kết quả đúng sẽ tương tự:

Status

|- Number of jail: 1

`- Jail list: sshd

Nếu dòng Jail list có chữ sshd, Fail2Ban đã kích hoạt chức năng bảo vệ SSH.

Tiếp tục chạy:

sudo fail2ban-client status sshd

Kết quả có thể hiển thị:

Status for the jail: sshd

|- Filter

| |- Currently failed: 0

| `- Total failed: 0

`- Actions

|- Currently banned: 0

|- Total banned: 0

`- Banned IP list:

Cài Đặt Fail2Ban Trên Linux

4. Cách chặn và bỏ chặn IP bằng Fail2Ban

4.1. Chặn thủ công một địa chỉ IP

Cú pháp:

sudo fail2ban-client set sshd banip DIA_CHI_IP
VPSTTT

Sau đó kiểm tra lại:

sudo fail2ban-client status sshd
VPSTTT

Địa chỉ IP sẽ xuất hiện trong phần Banned IP list.

4.2. Bỏ chặn một địa chỉ IP

Cú pháp:

sudo fail2ban-client set sshd unbanip DIA_CHI_IP
VPSTTT

Kiểm tra lại danh sách:

sudo fail2ban-client status sshd
VPSTTT

Kiểm tra log SSH

Lệnh kiểm tra log SSH:

sudo grep "Failed password" /var/log/auth.log | tail -n 20

Nếu xuất hiện nhiều dòng Failed password từ cùng một hoặc nhiều địa chỉ IP, rất có thể VPS của bạn đang bị bot thực hiện tấn công Brute Force vào dịch vụ SSH. Đây là lúc Fail2Ban sẽ phát huy tác dụng bằng cách tự động chặn các IP có hành vi đăng nhập bất thường.

Hoàn tất cài đặt Fail2Ban trên Linux mới chỉ là bước đầu, bạn vẫn nên kết hợp SSH Key, mật khẩu mạnh và hạn chế đăng nhập tài khoản root.

Câu hỏi thường gặp về Fail2Ban

Fail2Ban có phải là tường lửa không?

Không. Fail2Ban là công cụ theo dõi log và phát hiện hành vi bất thường. Khi phát hiện IP vi phạm, Fail2Ban yêu cầu tường lửa của hệ thống thực hiện việc chặn IP.

Fail2Ban có làm ảnh hưởng đến kết nối SSH bình thường không?

Thông thường là không. Fail2Ban chỉ chặn những địa chỉ IP vượt quá số lần đăng nhập sai đã cấu hình. Tuy nhiên, bạn nên thêm IP quản trị đáng tin cậy vào mục ignoreip để tránh tự khóa mình.

Fail2Ban có bảo vệ được cổng SSH tùy chỉnh không?

Có. Bạn chỉ cần đặt đúng số cổng tại thông số port.

6. Kết Luận

Qua bài viết này, VPSTTT đã hướng dẫn bạn cách cài đặt Fail2Ban trên Linux để bảo vệ SSH khỏi các cuộc tấn công Brute Force. Sau khi hoàn tất cấu hình, Fail2Ban sẽ tự động theo dõi log đăng nhập, phát hiện những địa chỉ IP có hành vi bất thường và tạm thời chặn chúng bằng firewall.

Bên cạnh Fail2Ban, bạn nên kết hợp thêm SSH Key, mật khẩu mạnh, tắt đăng nhập root và thường xuyên cập nhật hệ điều hành để tăng mức độ an toàn cho VPS hoặc máy chủ Linux.

Nhập đoạn mô tả cho bài viết tại đây.

VPSTTT – Nhà Cung Cấp Giải Pháp Hạ Tầng Số Toàn Diện

VPSTTT là nhà cung cấp giải pháp hạ tầng số tại Việt Nam, phục vụ nhu cầu triển khai, vận hành và lưu trữ dữ liệu của cá nhân, lập trình viên và doanh nghiệp. Hệ sinh thái dịch vụ gồm VPS Việt Nam, VPS quốc tế, VPS Anti DDoS, Hosting cPanel, máy chủ riêng, thuê Rack, Proxy IPv4/IPv6, S3 MinIOCloud Storage.

Bên cạnh việc cung cấp tài nguyên hạ tầng, VPSTTT còn tập trung hỗ trợ khách hàng trong quá trình triển khai, cấu hình và xử lý các sự cố thực tế. Nội dung trên Blog VPSTTT được xây dựng từ những tình huống thường gặp khi vận hành VPS, máy chủ và hệ thống trực tuyến, giúp người đọc có thể hiểu nguyên nhân và áp dụng giải pháp rõ ràng hơn.

VPSTTT – Hạ tầng ổn định, giải pháp linh hoạt và đồng hành trong suốt quá trình vận hành.

Thông Tin Liên Hệ Đội Ngũ VPSTTT