Các cuộc tấn công brute force là cách phổ biến nhất để hack vào một khu vực bảo vệ mật khẩu. Mục tiêu phổ biến mà các hacker nhắm vào là hệ thống quản lý nội dung như WordPress bởi vì chúng được cài đặt khắp nơi trên web. Tấn công Brute Force là gì? Một cuộc tấn công brute force là một cuộc tấn công mà một hệ thống cố gắng đăng nhập vào trang web của bạn sử dụng tên đăng nhập và mật khẩu khác nhau kết hợp. Họ thường không biết thông tin truy cập của bạn, nhưng họ cố gắng dò tìm giống như khi ta tra cứu từ điển. Đôi khi, thiết lập một mật khẩu mạnh là đủ, nhưng đôi khi nó không phải tốt nhất. Nếu trang WordPress của bạn bị tấn công thành công,những kẻ xâm nhập có thể sử dụng nền tảng WordPress hiện tại của bạn để gửi email hoặc gắn một trang web lừa đảo, mà có thể gây ra vấn đề lớn. Một vấn đề khác từ các cuộc tấn công brute force nằm trong việc sử dụng các nguồn tài nguyên. Load một trang đăng nhập WordPress 1.000 lần sẽ sử dụng rất nhiều tài nguyên từ máy chủ http và php. Giống như một cuộc tấn công DOS, nó có thể làm cho máy chủ web của bạn bị crash một cách dễ dàng. Hãy xem cách chúng tôi có thể bảo vệ chống lại các cuộc tấn công brute force WordPress trên máy chủ web Nginx. Chặn sử dụng Nginx Limit Req Module Nginx có thể được cấu hình như một reverse proxy để giảm thiểu loại tấn công này. Điều này đòi hỏi hai bước đơn giản: 1) tạo ra một req limit zone và 2), kích hoạt giới hạn ở trang wp-login.php. Đây là một trang mà WordPress sử dụng để chào đón người dùng đã đăng ký. 1) Chỉnh sửa tập tin chính nginx.conf, và tạo ra một zone (có tên là one). Thêm mã sau đây: Mã: limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; 10m là kích thước của zone. Ý tưởng ở đây là một zone như thế này có thể chứa đến 16.000 địa chỉ IP duy nhất. Nếu bạn đang lưu trữ một trang web lớn hơn rất nhiều, bạn có thể tăng giá trị đó 20m, 50m hoặc 100m. Các biến quan trọng khác là tỷ lệ = 1r/s, có nghĩa là chỉ có một yêu cầu mỗi giây được cho phép. 2) Kích hoạt giới hạn tốc độ kết nối sử dụng cấu hình Nginx proxy: Chỉnh sửa tập tin virtual host của bạn và thiết lập nó như là: Mã: location /wp-login.php { limit_req zone=one burst=5; proxy_pass http://backend.server.com; proxy_redirect off; } Cho phép các IP tin cậy để đăng nhập vào WordPress Admin Access (wp-admin / wp-login.php) - Chặn các phần còn lại Quy tắc này là cũ, nhưng nó vẫn là tốt nhất nếu bạn có một địa chỉ IP tĩnh (địa chỉ không bao giờ thay đổi). Bạn có thể nhận được đầy đủ lợi thế về điều đó bằng cách hạn chế tất cả các truy cập vào các tập tin thư mục wp-admin và tập tin wp-login.php. Bằng cách này, nó chỉ hoạt động với địa chỉ IP cho phép của bạn. Bất kỳ địa chỉ IP khác sẽ bị chặn. Với giải pháp này, bạn sẽ không phải đối mặt với bất kỳ cuộc tấn công brute force bởi vì những kẻ tấn công sẽ không thể đạt được các máy chủ để khởi động các cuộc tấn công. Chỉnh sửa file cấu hình chính nginx.conf: Mã: nano -w /etc/nginx/nginx.conf Thêm đoạn mã này để cấu hình khối server của bạn: Mã: location ~ ^/(wp-admin|wp-login.php) { allow 11.22.33.44; deny all; } Nếu blog của bạn được cấu hình ở /blog/path, hãy thử đoạn mã này: Mã: location ~ ^/blog/(wp-admin|wp-login.php) { allow 11.22.33.44; deny all; } 11.22.33.44 chỉ là một ví dụ của một địa chỉ IP. Bạn phải thay thế bằng IP thực sự của bạn. Reload lại nginx để áp dụng những thay đổi: Mã: service nginx reload Kiểm tra việc bảo vệ WordPress Curl sẽ cho bạn biết nếu nó làm việc hay không. Mộtthông báo 403 có nghĩa là nó làm việc nếu bạn kiểm tra nó từ một địa chỉ IP khác so với địa chỉ IP mà bạn cho phép. Một thông báo 200 là ổn thôi nếu bạn kiểm tra từ IP cho phép. Mã: curl -I http://www.yoursite.com/wp-admin/