Hướng dẫn cấu hình Fail2ban để bảo vệ máy chủ Linux của bạn

Cập nhật lần cuối: 3 tháng 9 của 2026

Một chuyên gia CNTT làm việc với máy tính xách tay trong trung tâm dữ liệu hiện đại, lý tưởng để giới thiệu về bảo mật máy chủ.

Việc để máy chủ Linux tiếp xúc trực tiếp với mạng về cơ bản giống như việc đặt một thỏi nam châm thu hút bot. Nếu bạn chưa cấu hình bất kỳ biện pháp bảo mật nào, rất có thể bạn đã có hàng nghìn lần đăng nhập thất bại trong nhật ký của mình; có những máy tự động liên tục thử các tổ hợp tên người dùng và mật khẩu để cố gắng chiếm quyền kiểm soát máy của bạn. tấn công vũ phu.

Đây là lúc Fail2ban phát huy tác dụng, một công cụ hoạt động như một người giám sát không ngừng nghỉ. Nó không phải là tường lửa theo đúng nghĩa đen, mà đúng hơn là... phân tích nhật ký hệ thống Và khi phát hiện ai đó đang cố gắng xâm nhập trái phép, nó sẽ đóng sầm cửa trước mặt họ bằng cách chặn địa chỉ IP bằng các công cụ như iptables hoặc nftables. Hãy cùng xem cách tinh chỉnh để biến máy chủ của bạn thành một "thần rừng" thực sự khó bị xâm nhập.

Fail2ban là gì và hoạt động như thế nào?

Nói một cách đơn giản, Fail2ban là một tiến trình nền liên tục giám sát các tệp nhật ký của các dịch vụ của bạn. Khi phát hiện các mẫu đáng ngờ phù hợp với các quy tắc được định sẵn, nó sẽ thực hiện các cuộc gọi. bộ lọcChương trình bắt đầu đếm số lần đăng nhập thất bại. Nếu một địa chỉ IP đạt đến giới hạn số lần đăng nhập cho phép trong một khoảng thời gian nhất định, chương trình sẽ thực thi một lệnh. hoạt độngĐiều này thường bao gồm việc thêm địa chỉ IP đó vào danh sách đen của tường lửa.

Các cấu hình này được sắp xếp thành những gì được gọi là nhà tù hoặc trại giamVề cơ bản, "jail" là một tập hợp các quy tắc được áp dụng cho một dịch vụ cụ thể (như SSH, Apache hoặc MySQL). Bằng cách này, bạn có thể thiết lập chính sách rất nghiêm ngặt cho việc truy cập từ xa và chính sách dễ dãi hơn cho máy chủ web, đảm bảo rằng... Những kẻ xâm nhập bị chặn Tự động mà không cần bạn phải kiểm tra nhật ký thủ công mỗi năm phút.

  Tài nguyên web tốt nhất cho Linux: Hướng dẫn đầy đủ

Hình ảnh tượng trưng cho một cuộc tấn công mạng với một người đeo mặt nạ hacker đứng cạnh các giá đỡ máy chủ Linux.

Cài đặt theo bản phân phối Linux của bạn

Tùy thuộc vào hệ điều hành bạn đang sử dụng, lệnh cài đặt sẽ có đôi chút khác biệt, nhưng nhìn chung nó có sẵn trong hầu hết các kho lưu trữ chính thức.

  • Trên Ubuntu và Debian: Rất đơn giản, bạn chỉ cần chạy thôi. sudo apt update tiếp theo là sudo apt install fail2ban.
  • Trên hệ điều hành Rocky Linux hoặc AlmaLinux: Vì đây là các bản phân phối dành cho doanh nghiệp, trước tiên bạn phải kích hoạt kho lưu trữ EPEL bằng cách sử dụng lệnh sau: sudo dnf install epel-release và sau đó cài đặt gói bằng sudo dnf install fail2ban fail2ban-firewalld.
  • Trong Alpine Linux: Sử dụng trình quản lý APK với sudo apk add fail2ban Và vì nó sử dụng OpenRC, bạn phải kích hoạt nó bằng lệnh sau: sudo rc-update add fail2ban default và bắt đầu bằng sudo rc-service fail2ban start.

Hình ảnh chi tiết chuyên nghiệp về các giá đỡ máy chủ trong trung tâm dữ liệu với ánh sáng xanh lam, thể hiện cơ sở hạ tầng máy chủ.

Cấu hình chính: Bí mật của tệp .local

Một lỗi rất phổ biến là chỉnh sửa trực tiếp tệp tin. jail.confĐừng làm vậy! Tập tin đó có thể bị ghi đè khi bạn cập nhật hệ thống. Nguyên tắc vàng là tạo một bản sao có tên là... tù.localBất kỳ tham số nào bạn thêm vào tệp thứ hai này sẽ được ưu tiên hơn so với tệp gốc, và các thay đổi của bạn sẽ bị ghi đè. an toàn khỏi các bản cập nhật.

Đầu tiên, bạn có thể sao chép tệp gốc bằng cách sử dụng sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local Sau đó, mở nó bằng trình soạn thảo yêu thích của bạn, chẳng hạn như nano hoặc vim. Trong phần [MẶC ĐỊNH] Đây là nơi bạn xác định hành vi tổng thể của hệ thống:

  • giờ cấm: El tiempo que la IP maliciosa se quedará en el congelador. Puede ser en segundos o usando ‘m’ para minutos (ej. 10m).
  • tìm thời gian: Khoảng thời gian mà Fail2ban kiểm tra lỗi. Nếu ai đó vi phạm 5 lần trong một giờ nhưng thời gian tìm lỗi là 10 phút, họ sẽ không bị cấm.
  • tối đa: Số lần thử thất bại được cho phép trước khi hệ thống thông báo Đủ rồi, hãy chặn địa chỉ IP đó..
  • bỏ qua: Điều này rất cần thiết để tránh tự cấm bản thân. Tại đây bạn phải nhập thông tin của mình. địa chỉ IP công cộng hoặc phạm vi VPN của bạn.
  Bằng cấp và chứng chỉ: hướng dẫn đầy đủ để nâng cao hồ sơ cá nhân của bạn

Hình ảnh cận cảnh các cáp mạng quang được kết nối với máy chủ doanh nghiệp, minh họa khả năng kết nối và bảo mật mạng.

Bảo vệ các dịch vụ cụ thể từng bước một

Sau khi cấu hình các cài đặt chung, đã đến lúc kích hoạt các jail cho các dịch vụ mà bạn quan tâm nhất. Để chế độ bảo vệ hoạt động, bạn phải thiết lập... enabled = true trong phần tương ứng của nó jail.local.

Truy cập SSH (Điểm quan trọng nhất)

Cổng 22 là mục tiêu hàng đầu. Một cấu hình mạnh mẽ sẽ xác định maxretry = 3 và một bantime = 3600 (một giờ). Fail2ban sẽ đọc tập tin. /var/log/auth.log (trên Debian/Ubuntu) hoặc / var / log / secure (trên CentOS/RHEL) để phát hiện các lỗi xác thực và chặn quyền truy cập của kẻ tấn công.

Máy chủ web (Apache và Nginx)

Nếu bạn có trang web hoặc cửa hàng trực tuyến, các bot sẽ cố gắng truy cập vào các đường dẫn nhạy cảm như... /wp-admin o /login.phpBạn có thể tạo bộ lọc tùy chỉnh trong /etc/fail2ban/filter.d/ để phát hiện ra những mẫu này. Ví dụ, để Bảo vệ WordPressCác lỗi 403 hoặc các lần thử không thành công được theo dõi trong wp-login.phpChặn địa chỉ IP nếu nó vượt quá giới hạn được thiết lập trong môi trường ảo Apache hoặc Nginx.

Cơ sở dữ liệu và FTP

Đối với MySQL, bạn có thể theo dõi nhật ký lỗi để tìm cụm từ đó. Người dùng bị từ chối truy cập.Trong trường hợp FTP (chẳng hạn như ProFTPD), điều quan trọng là phải đảm bảo rằng... logpath Hãy đảm bảo đường dẫn chính xác đến tệp nhật ký của bạn, vì nếu Fail2ban không tìm thấy tệp nhật ký, tính năng bảo vệ sẽ không hoạt động.

Quản lý nâng cao với fail2ban-client

Bạn không nhất thiết phải chỉnh sửa tệp và khởi động lại dịch vụ để thực hiện các thay đổi nhanh chóng. Lệnh fail2ban-client Nó cho phép bạn quản lý hệ thống ngay lập tức từ bảng điều khiển.

Để xem những nhà tù nào đang hoạt động và có bao nhiêu địa chỉ IP bị chặn, hãy sử dụng... sudo fail2ban-client statusNếu bạn muốn tìm hiểu sâu hơn về một dịch vụ nào đó, chẳng hạn như SSH, hãy chạy lệnh sau: sudo fail2ban-client status sshdHơn nữa, nếu do nhầm lẫn Bạn đã chặn một đồng nghiệp Hoặc bạn có thể nhanh chóng giải phóng địa chỉ IP bằng lệnh sau: sudo fail2ban-client set sshd unbanip IP_A_DESBLOQUEAR.

Bảo trì và xử lý sự cố

Nếu bạn nhận thấy Fail2ban không chặn như mong đợi, điều đầu tiên cần kiểm tra là tệp nhật ký của chính công cụ này. /var/log/fail2ban.log. Sử dụng tail -f Bạn có thể xem trực tiếp ai bị cấm và lý do tại sao.

  Chrome Remote Desktop: Sự kết thúc của máy tính cá nhân?

Hãy nhớ rằng Fail2ban lưu trữ trạng thái khóa trong cơ sở dữ liệu SQLite. /var/lib/fail2ban/fail2ban.sqlite3Do đó, nếu bạn khởi động lại máy chủ, các địa chỉ IP đã bị cấm sẽ được bỏ cấm. sẽ vẫn bị chặn cho đến khi thời gian phạt của bạn hết hạn. Bất cứ khi nào bạn thực hiện thay đổi đối với các tệp cấu hình, đừng quên áp dụng các thay đổi bằng lệnh `apply`. sudo systemctl restart fail2ban.

Việc triển khai công cụ này biến máy chủ của bạn từ một mục tiêu dễ bị tấn công thành một pháo đài tự động, giảm tải CPU bằng cách loại bỏ lưu lượng truy cập độc hại ở lớp mạng và cho phép bạn ngủ ngon giấc vì biết rằng bot sẽ không thể tấn công brute-force để xâm nhập. Bằng cách kết hợp việc sử dụng các tệp .local, quản lý các jail cụ thể và giám sát nhật ký liên tục, bạn đạt được một... phòng ngự có chiều sâu Cần thiết cho bất kỳ quản trị viên hệ thống Linux nào.