EQVPS

Cách thiết lập fail2ban để chặn tấn công brute-force

Chặn đứng việc dò mật khẩu liên tục trên máy chủ của bạn: fail2ban theo dõi log và tự động ban các IP đăng nhập thất bại quá nhiều lần. Cài đặt, bật jail cho SSH, và tinh chỉnh quy tắc ban — chỉ trong vài lệnh.

Dù mọi thứ khác đã được khóa chặt, các bot vẫn không ngừng dò mật khẩu vào cổng 22 — đó là tiếng ồn nền và tải liên tục. fail2ban theo dõi log của bạn và tự động ban bất kỳ IP nào đăng nhập thất bại quá nhiều lần, khiến kẻ tấn công bị chặn ngay sau vài lần thử thay vì đoán mãi mãi. Đây là một cài đặt nhỏ nhưng giúp giảm mạnh rác trong log.

1. Cài đặt fail2ban

sudo apt update && sudo apt install -y fail2ban

2. Tạo một cấu hình cục bộ

Đừng bao giờ sửa trực tiếp jail.conf có sẵn — hãy ghi đè nó trong jail.local:

sudo tee /etc/fail2ban/jail.local > /dev/null <<'EOF'
[DEFAULT]
# don't ban yourself — add your home/office IP
ignoreip = 127.0.0.1/8 ::1
bantime  = 1h
findtime = 10m
maxretry = 5

[sshd]
enabled = true
EOF

Cấu hình này sẽ ban một IP trong một giờ sau 5 lần đăng nhập thất bại trong vòng 10 phút. Hãy thêm IP của chính bạn vào ignoreip để một lần gõ nhầm mật khẩu không bao giờ khóa bạn ngoài.

3. Khởi động và bật khi boot

sudo systemctl enable --now fail2ban

4. Kiểm tra jail cho SSH

sudo fail2ban-client status sshd

Bạn sẽ thấy có bao nhiêu IP đang bị ban — thường là một con số đáng ngạc nhiên chỉ sau vài phút.

Quản lý các lệnh cấm

sudo fail2ban-client set sshd unbanip 1.2.3.4   # lift a ban
sudo fail2ban-client status                     # list all jails
sudo systemctl reload fail2ban                  # apply config changes

Cảnh báo thành thật

Bước tiếp theo

fail2ban là một lớp trong một máy chủ được gia cố bảo mật. Hãy kết hợp nó với xác thực bằng SSH keytường lửa UFW, rồi thực hiện toàn bộ danh sách kiểm tra bảo mật cho VPS mới trước khi phơi bày bất cứ điều gì ra internet.

FAQ

fail2ban thực sự làm gì?

Nó theo dõi các tệp log (như log xác thực của SSH) để tìm các lần thất bại lặp lại từ cùng một IP, và khi một IP vượt ngưỡng, nó thêm một lệnh cấm tường lửa tạm thời. Các bot dội bom cổng 22 suốt ngày sẽ bị chặn chỉ sau vài lần thử, thay vì đoán mãi mãi. Đây là một lớp bảo vệ tự động, liên tục.

Tôi vẫn cần fail2ban nếu đã dùng SSH key chứ?

Chúng giải quyết hai vấn đề khác nhau. SSH key khiến việc đoán mật khẩu gần như bất khả thi; fail2ban ngăn tiếng ồn và tải từ vô số nỗ lực đăng nhập, đồng thời bảo vệ mọi dịch vụ khác bạn để lộ ra (mail, đăng nhập web). Với SSH chỉ dùng key, rủi ro đã thấp sẵn, nhưng fail2ban là một lớp phòng thủ giá rẻ và giúp giảm rác trong log.

fail2ban có ban nhầm tôi không?

Có thể, nếu bạn gõ nhầm mật khẩu của chính mình vài lần liên tiếp — bạn sẽ bị cấm trong khoảng bantime, sau đó tự động được gỡ cấm. Để không bao giờ tự khóa mình ngoài, hãy thêm IP của chính bạn vào 'ignoreip' trong cấu hình, và nhớ rằng console của nhà cung cấp (EQVPS có sẵn) luôn giúp bạn quay lại được.

Làm sao xem ai đang bị ban, hoặc gỡ ban một IP?

Dùng 'sudo fail2ban-client status sshd' để xem jail và các IP đang bị ban. Để gỡ ban: 'sudo fail2ban-client set sshd unbanip 1.2.3.4'. Để thêm vĩnh viễn một IP tin cậy, đặt nó vào ignoreip rồi reload.

bantime, findtime và maxretry là gì?

maxretry là số lần thất bại được phép, findtime là khoảng thời gian mà chúng được tính, còn bantime là thời gian lệnh cấm kéo dài. Ví dụ, 5 lần thất bại trong 10 phút sẽ kích hoạt lệnh cấm 1 giờ. Hãy tăng bantime (hoặc đặt giá trị dài hơn) cho những kẻ tấn công dai dẳng hơn.

Bình luận

Chưa có bình luận nào. Hãy là người đầu tiên.

Để lại bình luận

Bình luận được kiểm duyệt trước khi hiển thị.