Mọi dịch vụ lộ ra đều nhận cùng một lời khuyên: đặt fail2ban lên nó. Với một cổng VPN, lời khuyên đó không sai và cũng không đủ, và chính việc coi nó như một ô đánh dấu trong gia cố là cách người ta kết thúc với một nhà tù (jail) không chặn được gì hữu ích. Fail2ban đọc các bản ghi thất bại mà bạn trỏ nó tới và yêu cầu một backend thực thi chặn các nguồn khớp. Toàn bộ giá trị của nó phụ thuộc vào việc bề mặt xác thực nào đã tạo ra bản ghi, địa chỉ trong đó có phải là khách hàng thật hay không, và điều gì xảy ra với tất cả những người khác phía sau địa chỉ đó.

Fail2ban là gì về mặt cơ chế

Một bộ lọc khớp các dòng trong nhật ký, một nhà tù đếm số khớp theo nguồn, và một hành động áp dụng lệnh chặn qua một backend tường lửa. Ba bộ phận chuyển động, và mỗi bộ phận có thể sai một cách độc lập.

Không bộ phận nào trong ba chạm vào đường xác thực: fail2ban phản ứng với bằng chứng sau khi sự việc xảy ra và không bao giờ tự xác thực một thông tin đăng nhập. Vì vậy một nhà tù có thể chạy sạch trong khi bề mặt mà nó đặt tên vẫn lộ ra đúng như trước.

Trình lắng nghe đường hầm không phải biểu mẫu đăng nhập

Một trình lắng nghe OpenVPN được bảo vệ bằng tls-auth hoặc tls-crypt sẽ bỏ các gói thiếu bảo vệ kênh điều khiển trước khi quá trình xử lý TLS thông thường bắt đầu. Một máy quét không bao giờ có khóa sẽ không tạo ra gì mà bộ lọc của bạn có thể đếm. Xác thực bằng chứng chỉ thêm một cổng nữa, vì không có mật khẩu để đoán. Dự án Fail2ban ghi lại một mô hình tổng quát dựa trên nhật ký, và một bộ lọc VPN chung không biến một gói chưa xác thực thành một sự kiện thất bại có ý nghĩa.

Nếu cổng chỉ chấp nhận chứng chỉ, câu chuyện brute-force mà bạn đang phòng thủ có thể hoàn toàn không tồn tại trên cổng đó.

Vậy bạn đang bảo vệ bề mặt nào?

Cùng một máy chủ thường lộ ra ba thứ khác nhau: trình lắng nghe đường hầm, một cổng hồ sơ khách hàng hoặc tự phục vụ, và một trang quản trị. Cổng và trang quản trị có biểu mẫu mật khẩu và tạo ra các dòng nhật ký mà bộ lọc có thể đếm. Đường hầm có thể chỉ tạo ra lỗi bắt tay mang ý nghĩa hoàn toàn khác. Khớp nhà tù với bề mặt, không phải với tên sản phẩm.

Một nhà tù canh nhật ký sai còn tệ hơn không có, vì nó tạo ra sự tự tin mà không có độ phủ. Hướng bộ lọc đăng nhập vào lỗi bắt tay của đường hầm và bộ đếm sẽ kích hoạt trên những máy quét chưa từng có khóa, trong khi cuộc tấn công mật khẩu vào cổng không được đếm. Đọc dòng nhật ký mà bộ lọc khớp trước khi tin vào con số của nhà tù.

Quy gán nguồn là mắt xích yếu

Một lệnh chặn chỉ tốt bằng địa chỉ mà nó nhắm tới. Khi dịch vụ nằm sau một proxy đảo ngược cục bộ, địa chỉ khách hàng trong nhật ký có thể là proxy, và chặn nó sẽ loại bỏ tất cả mọi người. Tin vào một tiêu đề được chuyển tiếp từ nguồn không đáng tin sẽ cho kẻ tấn công khả năng chặn các địa chỉ tùy ý. Trên UDP, địa chỉ nguồn có thể bị giả mạo, nên việc đếm chúng cần cẩn thận hơn việc đếm một lần đăng nhập TCP đã hoàn tất.

Ghi lại phương pháp quy gán nguồn trong README của nhà tù, vì một tiêu đề được chuyển tiếp từ bước nhảy không đáng tin biến lệnh chặn thành vũ khí.

Chi phí đi kèm là những người khác

Nhiều nhân viên sau một NAT văn phòng chia sẻ một địa chỉ, nên một mật khẩu đã lưu cũ có thể khóa toàn bộ văn phòng khi vượt ngưỡng. Nhật ký cho thấy một nguồn và một tài khoản đã thất bại, không phải một sự cố toàn văn phòng.

Các lệnh chặn ngắn và ngưỡng vừa phải làm giảm điều đó, và một đường bỏ chặn được ghi lại làm giảm tải hỗ trợ khi nó vẫn xảy ra. Địa chỉ là một tín hiệu thô chứ không phải danh tính, và người mở phiếu sẽ mô tả sự cố, không phải ngưỡng.

Khi nào nên áp dụng, và khi nào nên sửa thứ khác

Hãy áp dụng khi có một lỗi đăng nhập trực tuyến thật, có thể quy gán và lặp lại trên một bề mặt bạn kiểm soát, và khi backend thực thi thực sự bao phủ bề mặt đó. Hãy sửa thứ khác khi vấn đề là chính sách thông tin đăng nhập yếu, một trang quản trị lộ ra internet, hoặc một tài khoản đăng nhập thành công vì đã bị xâm phạm. Một lệnh chặn không thể sửa chữa bất kỳ điều nào trong số đó và không thể hấp thụ lưu lượng đã làm bão hòa đường lên của bạn. Vấn đề cuối cùng đó thuộc về thượng nguồn, về ai đó có thể lọc trước khi các gói tin đến bạn.

Giữ mỗi nhà tù gắn với một bề mặt, xem lại các dương tính giả, và đo công việc xác thực được tránh thay vì số địa chỉ bị chặn.

Bài viết liên quan