Tổng hợp một số biện pháp bảo mật cho wordpress

sanvu88

Cháu ngoan Bác Hồ
Thành viên BQT
#1
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

4. Protect Your Server
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

Mã:
ErrorDocument 401 default
Đối với nginx thì thêm rule sau vào file vhost

Mã:
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

Mã:
# 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

Mã:
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

Mã:
# 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
Mã:
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

Mã:
# Allow acces to wp-admin/admin-ajax.php
<Files admin-ajax.php>
    Order allow,deny
    Allow from all
    Satisfy any
</Files>
* Nginx

Mã:
location /wp-admin/admin-ajax.php {
    allow all;
}
7. Deny Access to No Referrer Requests
Chống spam

* Apache

Mã:
# 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
Mã:
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

Mã:
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.
 
Sửa lần cuối:

Bluesky012

Học sinh phổ thông
#2
muốn thay url login để tránh bị tấn công. chắc dùng funtion, dùng plugin dễ bị tấn công hơn ^^
 

pibebong

Học sinh phổ thông
#4
Bảo mật như trên thì bố thằng hacker nào mà hacker nỗi, nó chỉ ddos cho sập web thì được
 

Quảng cáo Google