Owncloud + Fail2Ban

Tôi chỉ nhận ra rằng ngày nay Owncloud không ngăn chặn các cuộc tấn công brute-force. Tuy nhiên, có vẻ như các nhà phát triển đã nhận thức được điều này và sẽ đề xuất một hệ thống captcha trong bản phát hành tiếp theo. Trong thời gian chờ đợi, tôi khuyên bạn nên thiết lập một bản vá tại nhà để phiên bản Owncloud của chúng tôi hoạt động với Fail2Ban.

Tạo một tệp nhật ký cụ thể

Đã sửa đổi mã nguồn để ghi lỗi kết nối. Chúng tôi chỉnh sửa /owncloud/lib/user/database.php.
Trong dòng 202, trong hàm checkPassword, ngay trước "return false", chúng tôi thêm mã sau

Sửa đổi này liên quan đến lỗi mật khẩu đối với thông tin đăng nhập cơ sở dữ liệu hiện có. Nếu bạn cũng muốn ghi lại lỗi cho tất cả các lần đăng nhập, bạn phải thêm cùng một mã trước dấu “trả về sai” cuối cùng trong phần “khác” của hàm. Chúng tôi chỉ sửa đổi nhận xét.

Chỉnh sửa: Kể từ phiên bản 6 của Owncloud, tệp được đặt trong /var/www/owncloud/lib/private/user/database.php. Trong if ($ row) là 2 giá trị trả về false thay vì một. Hoàn thành cả hai theo cùng một cách. 

Bây giờ chúng ta chuyển sang tạo nhà tù Fail2ban trong /etc/fail2ban/filter.d/owncloud.conf

Chúng tôi kiểm tra rằng regex khớp tốt. (Thực hiện một lỗi đăng nhập trên giao diện phía trước)

Chúng tôi thêm nhà tù này vào conf trong /etc/fail2ban/jail.conf

Khởi động lại fail2ban để tính đến

Bạn phải ghi nhớ rằng các dòng trong php sẽ phải được viết lại mỗi khi Owncloud được cập nhật.