Nhật ký Ngày... Tháng.. Năm...
Trang chủ » Hệ thống » Cấu hình Nginx để bảo mật cho WordPress

Cấu hình Nginx để bảo mật cho WordPress

Chủ đề về bảo mật WordPress là một trong những vấn đề quan trọng cho mọi nhà quản trị website. Mỗi tuần, Google đều liệu kê một blacklists khoảng 20.000 website có chứa malware và khoảng 50.000  phishing (những website lừa đảo). Nếu bạn thật sự đầu tư nghiêm túc với website của mình, thì hãy quan tâm đến vấn đề bảo mật.

Mặc dù source code của WordPress rất an toàn, và thường xuyên được kiểm tra bởi hàng trăm nhà phát triển, có rất nhiều thứ bạn phải làm để nâng cao tính bảo mật cho website của mình. Nhưng vì nhiều lý do khác nhau, như dùng theme lậu, plugin lậu có sẵn mã độc, hay quản trị viên bị hack mật khẩu và bị chiếm quyền quản trị để upload mã độc lên website mà WordPress rất dễ bị hack. Với những website đã được SEO lên top, ảnh hưởng của nó quả là không thể tưởng tượng được.

Mình đã từng 1 lần bị hack mà không hẳn lỗi ở mình, cho nên vấn đề bảo mật được mình cực kỳ quan trọng. Ở đây bảo mật không chỉ là loại bỏ những rủi ro đã mắc phải mà là giảm thiểu rủi ro sẽ gặp phải trong trương lai. Với tư cách là một nhà quản trị website, có rất nhiều điều bạn nên làm để cải thiện bảo mật WordPress website ( kể cả bạn không phải dân công nghệ).

Đầu tiên bạn chú ý đến phân quyền, hạn chế cấp quyền quản trị cao nhất cho user, nên đặt những mật khẩu dài có thêm kí tự đặc biệt tránh bị dò qua scan mật khẩu.

Cấu hình cho WP Config

# Tắt chế độ này nếu có
//define('FS_METHOD', 'direct');
# Bật chế độ cấm sửa file trong trang quản trị
define('DISALLOW_FILE_EDIT', true);
define('DISALLOW_FILE_MODS',true);

Cấu hình cho Server

Mình sử dụng nginx cho các hệ thống của mình. Ở bài Cài đặt PHP Web Server hoàn hảo trên Centos 7 mình cũng đã cấu hình đầy đủ các thủ thuật bảo mật cho WordPress. Gồm có đặt thêm 1 mật khẩu cho trang quản trị, chặn scan login wordpress, chặn thực thi trực tiếp file php.

# Yêu cầu xác thực đăng nhập từ server
location /wp-admin/ { auth_basic "Restricted Content"; auth_basic_user_file /etc/nginx/.htpasswd;
}
# Không cho thực thi php ở thư mục wp-content và wp-includes
location ~* /wp-content/.*.php$ { deny all; access_log off; log_not_found off;
}
location ~* /wp-includes/.*.php$ { deny all; access_log off; log_not_found off;
}
# Cấm chạy file ở thư mục upload
location ~* /(?:uploads|files)/.*.php$ { deny all; access_log off; log_not_found off;
}

Bạn cần tạo file /etc/nginx/.htpasswd với cấu trúc bên dưới, mật khẩu các bạn có thể tạo bằng cách truy cập vào https://www.htaccesstools.com/htpasswd-generator/ và làm theo hướng dẫn.

tài khoản 1 : mật khẩu 1
tài khoản 2 : mật khẩu 2

Như vậy website của bạn cũng tạm được coi là có bảo mật. Nhưng để an toàn hơn, bạn nên backup code thường xuyên, và liên tục cập nhật những bản vá mới nhất của wordpress. Các hệ thống của mình đều tự động backup lên OneDrive hằng ngày nên có vấn đề gì tiện khôi phục lại phiên bản cũ.

 

Cương Phạm

Thêm bình luận