Xử lí spam Brute Force wp-login.php bằng Cloudflare và .htaccess nginx

1. Cách nhận biết Brute Force wp-login.php

Nếu bạn đang sử dụng một website wordpress, sau một thời gian khi bạn kiểm tra file access log website của mình. Các bạn sẽ thấy rất nhiều request tới file wp-login.php. Thì website của bạn đang bị tin tặc Brute Force dò password admin.

Brute Force wp-login.php và cách phòng chống

Brute Force wp-login.php và cách phòng chống

2. Phòng chống Brute Force wp-login.php

– Bạn có thể lọc IP cụ thể có quyền truy cập file wp-login.php hoặc lọc IP theo quốc gia Việt Nam. Vì các bot Brute Force này mình check được có nguồn gốc từ nước ngoài.

– Bạn có thể cài thêm tính năng nhập mã captcha để ngăn chạn các auto bot.

– Bạn không nên đặt tên username của quyền quản trị cao nhất là admin, vì bot spam sẽ dễ dàng dò mật khẩu của bạn hơn.

– Các bạn có thể sử dụng plugin Brute Force Login Protection để phòng chống Brute Force admin, và chỉ dùng nó nếu bạn không sử dụng đám mây của cloudflare.

a. Chặn spam Brute Force trên Apache với Cloudflare

Làm thế nào để chặn spam Brute Force admin bằng Cloudflare & .htaccess?

– Việc sử dụng Cloudflare giúp bạn khá nhiều trong việc tối ưu website, Cache, SSL, Minify,.. Tuy nhiên điểm hạn chế của nó lớn nhất là bạn không biết IP thật của khách để phục vụ việc lọc ip.

– Tuy nhiên Cloudflare vẫn hỗ trợ chúng ta truy ngược lại thông tin của khách.

– Phần hướng dẫn dưới đây sẽ hỗ trợ bạn chặn các lượt truy cập đến wp-login.php mà không phải truy cập của Việt nam bằng .htaccess

code .htaccess chặn truy cập wp-login cho website sử dụng cloudflare

<FilesMatch "wp-login.php">
 RewriteEngine on
 RewriteCond %{HTTP:CF-IPCOUNTRY} !^(VN)$
 RewriteRule ^ - [F,L]
</FilesMatch>

Các bạn có thể thay mã quốc gia để cho phép thêm 1 số quốc gia có quyền truy cập. Lưu ý rằng, điều này sẽ gia tăng tính bảo mật cho website của bạn, tuy nhiên nếu bạn sử dụng vpn nước ngoài, hay các dịch vụ đổi IP thì sẽ không truy cập được.

b. Chặn spam Brute Force trên Nginx với Cloudflare

# chi cho phep VN
location = /wp-login.php
{     
    if ($http_cf_ipcountry !~ "^(VN)$")
    {
        return 403;
    }
    include /etc/nginx/fastcgi_params;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /home/kienthuc24h.com/public_html$fastcgi_script_name;
}

ở mục SCRIPT_FILENAME bạn cần thay đường dẫn chứa thư mục public của website mình.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *