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

Thanh Hiền Ngày đăng: 18/7/2026 Cập nhật cuối: 22/7/2026 Lượt xem: 165 7 phút đọc 4.9/5Đánh giá118lượt đánh giá

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.

VPSmáy chủ Linux sử dụng địa chỉ IP public thường xuyên bị các công cụ tự động quét cổng SSH, dò tìm tài khoản và thử đăng nhập bằng nhiều mật khẩu khác nhau. Nếu không có biện pháp bảo vệ phù hợp, máy chủ có thể ghi nhận hàng nghìn lần đăng nhập thất bại mỗi ngày.

Fail2Ban là công cụ bảo mật mã nguồn mở có khả năng theo dõi log hệ thống, phát hiện những địa chỉ IP đăng nhập sai quá nhiều lần và tự động tạo quy tắc firewall để chặn các IP đó trong một khoảng thời gian nhất định. Fail2Ban được tích hợp sẵn bộ lọc cho nhiều dịch vụ phổ biến, trong đó có SSH và Apache.

Trong bài viết này, VPSTTT sẽ hướng dẫn bạn cài đặt Fail2Ban trên Linux, bao gồm Ubuntu, Debian, AlmaLinux, Rocky Linux và CentOS. Sau khi hoàn thành, máy chủ có thể tự động phát hiện và chặn những IP đang dò mật khẩu SSH.

1. Fail2Ban là gì?

Fail2Ban là một phần mềm bảo mật dành cho Linux và các hệ điều hành tương tự Unix. Công cụ này đọc log của những dịch vụ như SSH, Apache, Nginx hoặc FTP để phát hiện các hành vi đăng nhập thất bại lặp lại.

Khi số lần đăng nhập sai vượt quá giới hạn đã cấu hình, Fail2Ban sẽ thực hiện hành động chặn IP thông qua tường lửa của hệ thống. Thời gian chặn, số lần thử tối đa và khoảng thời gian theo dõi đều có thể tùy chỉnh.

Ví dụ, bạn có thể cấu hình:

  • Theo dõi đăng nhập SSH trong 10 phút.
  • Cho phép tối đa 5 lần đăng nhập thất bại.
  • Chặn IP vi phạm trong 1 giờ.

Fail2Ban giúp hạn chế đáng kể các cuộc tấn công dò mật khẩu SSH tự động, còn được gọi là tấn công brute force.

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

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

Đố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, Rocky Linux và CentOS:

Đối với AlmaLinux, Rocky Linux và CentOS chạy lệnh:

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

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

Sau khi cài xong, kiểm tra trạng thái dịch vụ:

sudo systemctl status fail2ban

Nếu Fail2Ban chưa hoạt động, bạn có thể thấy trạng thái: Active: inactive (dead)

Đây chưa hẳn là lỗi. Bạn sẽ cấu hình và khởi động dịch vụ ở những bước tiếp theo.

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á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

      <div class="vps-table-block" data-builder-widget="table"><table><thead><tr><th>Thông số</th><th>Giá trị mẫu</th><th>Ý nghĩa</th></tr></thead><tbody><tr><td>ignoreip</td><td>127.0.0.1/8 ::1</td><td>Các địa chỉ IP không bị Fail2Ban chặn</td></tr><tr><td>bantime</td><td>1h</td><td>Thời gian chặn IP là 1 giờ</td></tr><tr><td>findtime</td><td>10m</td><td>Khoảng thời gian Fail2Ban theo dõi lỗi đăng nhập</td></tr><tr><td>maxretry</td><td>5</td><td>Số lần đăng nhập sai tối đa</td></tr><tr><td>enabled</td><td>true</td><td>Kích hoạt jail SSH</td></tr><tr><td>port</td><td>22</td><td>Cổng SSH cần bảo vệ</td></tr><tr><td>filter</td><td>sshd</td><td>Bộ lọc log dành cho SSH</td></tr><tr><td>backend</td><td>systemd</td><td>Đọc sự kiện SSH từ systemd journal</td></tr></tbody></table></div>
    

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

Nếu cấu hình hợp lệ, kết quả sẽ tương tự: OK: configuration test is successful

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

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

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

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:

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

Sau đó kiểm tra lại:

sudo fail2ban-client status sshd

Đị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

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

sudo fail2ban-client status sshd

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 chậm VPS không?

Fail2Ban thường sử dụng ít tài nguyên trên các VPS thông thường. Mức sử dụng thực tế phụ thuộc vào số lượng jail, dung lượng log và lượng kết nối cần xử lý.

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.

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

VPSTTT là nhà cung cấp VPS, Hosting, máy chủ, Proxy và giải pháp lưu trữ dữ liệu tại Việt Nam, phục vụ cá nhân, lập trình viên và doanh nghiệp. Hệ sinh thái dịch vụ của VPSTTT 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 MinIO và Cloud 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

6. Kết Luận

Cài đặt Fail2Ban trên Linux giúp bảo vệ SSH hiệu quả trước các cuộc tấn công brute force và đăng nhập trái phép. Để VPS an toàn hơn, bạn nên kết hợp Fail2Ban với SSH Key, mật khẩu mạnh, tường lửa và cập nhật hệ điều hành thường xuyên.

Nếu cần VPS Linux ổn định, bảo mật và hỗ trợ kỹ thuật nhanh chóng, bạn có thể tham khảo các dịch vụ VPS tại VPSTTT.

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