1. Không sử dụng tên đăng nhập wp-admin là admin
Phần lớn các webmaster đều sử dụng tên người dùng "admin" do thực tế WordPress đặt mặc định username này. Nếu bạn vẫn đang sử dụng tên người dùng này, hãy tạo một tài khoản mới, chuyển tất cả các bài viết sang tài khoản đó, và thay đổi 'admin' thành tên khác (hoặc xóa nó hoàn toàn).
Bạn có thể dùng plugin: WordPress › Admin renamer extended « WordPress Plugins để thay đổi tên admin
2. Mật khẩu
Sử dụng một mật khẩu đủ mạnh. Một mật khẩu mạnh bao gồm chữ cái viết thường, viết hoa ; chữ số và ký tự đặc biệt.
Bạn có thể sử dụng plugin: WordPress › Enforce Strong Password « WordPress Plugins để tạo mật khẩu mạnh cho mình
3. Plugins
Có thể sử dụng các plugin sau để tăng cường bảo mật
- BruteProtect
- Limit Login Attempts
- Lockdown WP Admin
- WP Fail2Ban
- Admin Renamed Extended
- Enforce Strong Password
- Wordfence Security
- 3WP Activity Monitor
- All in one WP Security
- Rename wp-login.php
Nếu bạn khóa truy cập wp-login.php hoặc wp-admin bạn có thể nhận được thông báo lỗi 404 hoặc 401 khi truy cập vào những trang đó. Để tránh điều này bạn có thể thêm dòng sau vào htaccess
ErrorDocument 401 default
Đối với nginx thì thêm rule sau vào file vhost
error_page 401 http://example.com/forbidden.html;
sau đó tạo 1 trang thông báo lỗi cho riêng bạn.
5. Password Protect wp-login.php
Tạo thêm lớp đăng nhập thứ 2 cho wp-admin. Để tạo lớp đăng nhập thứ 2 bạn cần tạo file htpasswd, sau đó
* Với apache thêm rule sau vào htaccess
# Stop Apache from serving .ht* files
<Files ~ "^\.ht"> Order allow,deny Deny from all </Files>
# Protect wp-login
<Files wp-admin>
AuthUserFile ~/.htpasswd
AuthName “Private access”
AuthType Basic
require user mysecretuser
</Files>
* Với nginx thêm rule sau vào file vhost
location /wp-admin {
auth_basic "Administrator Login";
auth_basic_user_file .htpasswd;
}
6. Giới hạn IP truy cập vào wp-admin
* Apache
Thêm rule sau vào htaccess
# Block access to wp-admin.
order deny,allow
allow from x.x.x.x
deny from all
* Nginx
Thêm rule sau vào file vhost
error_page 403 http://example.com/forbidden.html;
location /wp-admin {
deny 192.168.1.1;
allow 192.168.1.0/24;
allow 10.1.1.0/16;
deny all;
}
Thay đổi IP cho phù hợp
Chú ý: Nếu theme của bạn sử dụng ajax bạn có thể phải thêm rule sau:
* Apache
# Allow acces to wp-admin/admin-ajax.php* Nginx
<Files admin-ajax.php>
Order allow,deny
Allow from all
Satisfy any
</Files>
location /wp-admin/admin-ajax.php {7. Deny Access to No Referrer Requests
allow all;
}
Chống spam
* Apache
# Stop spam attack logins and comments
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .(wp-comments-post|wp-login)\.php*
RewriteCond %{HTTP_REFERER} !.*example.com.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) http://%{REMOTE_ADDR}/$ [R=301,L]
</ifModule>
*Nginx
location ~* (wp-comments-posts|wp-login)\.php$ {
if ($http_referer !~ ^(http://example.com) ) {
return 405;
}
}
8. ModSecurity
Sử dụng modsecurity nếu bạn dùng VPS or server
9. Fail2Ban
Fail2ban là một daemon Python chạy ở chế độ nền. Nó sẽ kiểm tra log file được tạo ra bij Apache (hoặc SSH ví dụ), và các sự kiện nhất định có thể thêm một quy tắc tường lửa. Nó sử dụng một bộ lọc để gọi với một biểu thức chính quy. Nếu đó là biểu hiện thường xuyên xảy ra ví dụ như 5 lần trong 5 phút, nó có thể chặn mà địa chỉ IP trong 60 phút (hoặc bất kỳ thiết lập khác của các số). Lắp đặt và vận Fail2ban yêu cầu truy cập root.
10. Cloud/Proxy Services
Các dịch vụ như CloudFlare và Sucuri CloudProxy cũng có thể giúp giảm thiểu các cuộc tấn công bằng cách chặn các IP trước khi chúng đến máy chủ của bạn.
11. Không dùng prefix mặc định
Rất nhiều webmaster trong quá trình cài đặt thường để prefix mặc định là wp, điều này là không nên chính vì vậy trong quá trình cài đặt các bạn nên chọn một prefix khác.
12. Authentication Unique Keys and Salts
Nhiều người thường bỏ qua dòng này trong file config.php điều này cũng có thể bị attacker lợi dụng vì thế khuyến cáo các bạn không nên bỏ qua dòng này.
Mở file config.php và tìm dòng
define('AUTH_KEY', 'put your unique phrase here');
define('SECURE_AUTH_KEY', 'put your unique phrase here');
define('LOGGED_IN_KEY', 'put your unique phrase here');
define('NONCE_KEY', 'put your unique phrase here');
define('AUTH_SALT', 'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT', 'put your unique phrase here');
define('NONCE_SALT', 'put your unique phrase here');
Sau đó các bạn truy cập vào địa chỉ: https://api.wordpress.org/secret-key/1.1/salt/ copy toàn bộ nội dung lấy được thay thế các dòng trên.
Đăng nhận xét Blogger Facebook