❤️ AZDIGI chính thức cập nhật hệ thống blog mới hoàn chỉnh. Tuy nhiên có thể một số bài viết bị sai lệch hình ảnh, hãy ấn nút Báo cáo bài viết ở cuối bài để AZDIGI cập nhật trong thời gian nhanh nhất. Chân thành cám ơn.

I. GIỚI THIỆU

1. XML-RPC là gì

XML-RPC trong WordPress là một giao diện lập trình ứng dụng (API) cho phép các ứng dụng và dịch vụ bên ngoài truy cập và tương tác với trang web WordPress của bạn từ xa. Được xây dựng dựa trên giao thức XML-RPC, nó cung cấp các phương thức và chức năng để thực hiện các hoạt động như đăng bài viết, chỉnh sửa bài, xóa bài, tải lên hình ảnh, quản lý bình luận và nhiều chức năng khác mà người dùng thông thường thực hiện khi đăng nhập trực tiếp vào WordPress qua giao diện web.

API XML-RPC trong WordPress rất hữu ích cho các nhà phát triển và người dùng khi họ muốn tích hợp WordPress với các ứng dụng di động, ứng dụng desktop, dịch vụ trực tuyến hoặc các hệ thống khác, cho phép họ thực hiện các tác vụ từ xa mà không cần truy cập trực tiếp vào trang web WordPress.

Tuy nhiên, do tính năng mở rộng và khả năng tương tác từ xa, XML-RPC cũng có thể trở thành một điểm yếu nếu không được bảo mật cẩn thận, vì nó có thể mở cửa cho các cuộc tấn công ngỗng (brute-force attacks) và các mối đe dọa khác đối với trang web WordPress của bạn.

2. Mục Đích Cần Phải Chặn xmlrpc.php

Các cuộc tấn công nhắm vào XML-RPC của WordPress ngày nay đã trở thành một vấn đề đáng chú ý. Khi kẻ tấn công gửi một lượng lớn yêu cầu POST liên tục đến tập tin xmlrpc.php, điều này có thể tạo ra một áp lực đáng kể lên máy chủ, dẫn đến hiện tượng quá tải và ảnh hưởng đến trải nghiệm duyệt web của người dùng.
Trong những cuộc tấn công này, kẻ tấn công thường sử dụng xmlrpc.php để thực hiện các cuộc đoán mật khẩu đối với tài khoản WordPress.

Ở Bài Hướng Dẫn này sẽ chặn truy cập xmlrpc.php gồm các webserver: Apache, NGINX,OpenLitespeed.

  • DirectAdmin, một hệ thống quản lý hosting, đóng vai trò quan trọng trong việc quản lý và giám sát các trang web.
  • Apache, NGINX,OpenLitespeed, hoặc cả hai (kết hợp Nginx và Apache) đều có thể được cấu hình để xử lý yêu cầu và bảo vệ các trang WordPress khỏi các cuộc tấn công.
  • Trong trường hợp có từ nhiều website trở lên đang bị tấn công thông qua xmlrpc.php, việc bảo vệ trở nên khó khăn hơn và đòi hỏi sự can thiệp tức, để giảm tải tài nguyên khi bị tấn công.

Đối với các trang web có số lượng ít quản lý 1, 2 website , việc cập nhật và điều chỉnh .htaccess cho từng website có thể được thực hiện một cách linh hoạt.
Tuy nhiên, với số lượng website nhiều, xử lý và căn thiệp vào file từng website để chặn không khả quan.

3. Các thông số điều chỉnh điều thông templates hỗ trợ sẵn DirectAdmin

Chỉnh sửa templates cần thao tác qua các CUSTOM, vì CUSTOM này sẽ được áp dụng cấu hình không bị mất sau khi thực hiện lệnh rewrite_confs.

Các CUSTOM được liệt kê dưới đây chỉ ra vị trí cụ thể trong một template:

  1. CUSTOM1: Xuất hiện ngay ở đầu của template, trước khi thiết lập các biến.
  2. CUSTOM2: Nằm trong phần scripthandler{}.
  3. CUSTOM3: Được đặt trong các phần context{}.
  4. CUSTOM4: Xuất hiện trong phần phpIniOverride{}.
  5. CUSTOM5: Đặt trong phần rewrite{}.
  6. CUSTOM6: Nằm trong phần vhssl{}.
  7. CUSTOM7: Xuất hiện cuối cùng của virtualHost.
  8. CUSTOM8: Là mục cuối cùng trong template thường để trống.

II. Cách Thực Hiện Chặn xmlrpc.php

1. Thực Hiện Chặn xmlrpc.php Trên Apache

Để ngăn chặn truy cập vào xmlrpc.php, việc sử dụng và điều chỉnh các templates cho các webserver như Apache, Nginx, và OpenLitespeed là rất quan trọng. Các templates này đã được thiết kế sẵn để giúp bạn dễ dàng thực hiện các cấu hình lệnh bên dưới.

  • Tạo các file CUSTOM với lệnh bên dưới.
cd /usr/local/directadmin/data/templates/custom/
touch virtual_host2.conf.CUSTOM.4.post virtual_host2_secure.conf.CUSTOM.4.post 
touch virtual_host2_secure_sub.conf.CUSTOM.4.post virtual_host2_sub.conf.CUSTOM.4.post
chmod 644 virtual_host2.conf.CUSTOM.4.post virtual_host2_secure.conf.CUSTOM.4.post 
chmod 644 virtual_host2_secure_sub.conf.CUSTOM.4.post virtual_host2_sub.conf.CUSTOM.4.post

cp -p virtual_host2.conf.CUSTOM.4.post virtual_host2_secure.conf.CUSTOM.4.post cp -p virtual_host2.conf.CUSTOM.4.post virtual_host2_secure_sub.conf.CUSTOM.4.post cp -p virtual_host2.conf.CUSTOM.4.post virtual_host2_sub.conf.CUSTOM.4.post

chown diradmin:diradmin -R /usr/local/directadmin/data/templates/custom
  • Tạo file xmlrpc.txt có nội dung chặn xmlrpc cho apache
<Location ~ "/xmlrpc.php">
    Order allow,deny
    Deny from all
    ErrorDocument 403 "Sorry, you are not allowed to view this page!"
</Location>
  • Tiến hành thêm nội dung của file xmlrpc.txt vào 4 file CUSTOM
cat xmlrpc.txt > virtual_host2.conf.CUSTOM.4.post virtual_host2_secure.conf.CUSTOM.4.post virtual_host2_secure_sub.conf.CUSTOM.4.post virtual_host2_sub.conf.CUSTOM.4.post
chown diradmin:diradmin -R /usr/local/directadmin/data/templates/custom
  • Bước tiến theo cần thực lệnh áp dụng cấu hình từ các file CUSTOM cho Apache
cd /usr/local/directadmin/custombuild/
./build rewrite_confs

2 Thực Hiện Chặn xmlrpc.php Trên Nginx.

  • Tạo các file CUSTOM với lệnh bên dưới.
cd /usr/local/directadmin/data/templates/custom/
touch nginx_server.conf.CUSTOM.4.post nginx_server_secure.conf.CUSTOM.4.post 
touch nginx_server_secure_sub.conf.CUSTOM.4.post nginx_server_sub.conf.CUSTOM.4.post
chmod 644 nginx_server.conf.CUSTOM.4.post nginx_server_secure.conf.CUSTOM.4.post
chmod 644 nginx_server_secure_sub.conf.CUSTOM.4.post nginx_server_sub.conf.CUSTOM.4.post

cp -p nginx_server.conf.CUSTOM.4.post nginx_server_secure.conf.CUSTOM.4.post cp -p nginx_server_secure.conf.CUSTOM.4.post nginx_server_secure_sub.conf.CUSTOM.4.post cp -p nginx_server_secure_sub.conf.CUSTOM.4.post nginx_server_sub.conf.CUSTOM.4.post

chown diradmin:diradmin -R /usr/local/directadmin/data/templates/custom
  • Tạo file xmlrpc.txt có nội dung chặn xmlrpc cho nginx
  • Tiến hành thêm nội dung của file xmlrpc.txt vào 4 file CUSTOM
cat xmlrpc.txt > nginx_server.conf.CUSTOM.4.post nginx_server_secure.conf.CUSTOM.4.post  nginx_server_secure_sub.conf.CUSTOM.4.post nginx_server_sub.conf.CUSTOM.4.post
  • Bước tiến theo cần thực lệnh áp dụng cấu hình từ các file CUSTOM cho nginx.
cd /usr/local/directadmin/custombuild/
./build rewrite_confs

3 Thực Hiện Chặn xmlrpc.php Trên OpenLitespeed

  • Tạo các file CUSTOM với lệnh bên dưới.
cd /usr/local/directadmin/data/templates/custom/
touch openlitespeed_vhost.conf.CUSTOM.5.post
chown diradmin:diradmin openlitespeed_vhost.conf.CUSTOM.5.post
  • Tạo file xmlrpc.txt có nội dung chặn xmlrpc cho OpenLitespeed
RewriteRule ^/(xmlrpc|wp-trackback).php - [F,L,NC]

#Bạn muốn chặn thêm các file bên dưới thì thêm vào.

RewriteCond %{REQUEST_URI} ^(.*)?readme.html(.*)$ [OR] RewriteCond %{REQUEST_URI} ^(.*)?readme.txt(.*)$ [OR] RewriteCond %{REQUEST_URI} ^(.*)?license.txt(.*)$ [OR] RewriteCond %{REQUEST_URI} ^(.*)?wp-config.php(.*)$ RewriteRule ^/.*.(htaccess|htpasswd|ini|log|sh|txt)$ - [F,L,NC] RewriteRule ^(.*)$ - [F,L,NC]
  • Tiến hành thêm nội dung của file xmlrpc.txt vào file CUSTOM
cat xmlrpc.txt > openlitespeed_vhost.conf.CUSTOM.5.post

  • Bước tiến theo cần thực lệnh áp dụng cấu hình từ các file CUSTOM cho nginx.
cd /usr/local/directadmin/custombuild/
./build rewrite_confs

III. Lời Kết

Nhìn chung, với sự chú trọng và sự thấu hiểu đúng đắng, XML-RPC có thể trở thành một công cụ mạnh mẽ và hiệu quả, góp phần nâng cao trải nghiệm và chất lượng dịch vụ trên nền tảng WordPress.

Nếu các bạn cần hỗ trợ các bạn có thể liên hệ bộ phận hỗ trợ theo các cách bên dưới:

Chia sẻ:
Bài viết đã được kiểm duyệt bởi AZDIGI Team

Về tác giả

Thạch Phạm

Thạch Phạm

Đồng sáng lập và Giám đốc điều hành của AZDIGI. Có hơn 15 năm kinh nghiệm trong phổ biến kiến thức liên quan đến WordPress tại thachpham.com, phát triển website và phát triển hệ thống.

Hơn 10 năm phục vụ 80.000+ khách hàng

Bắt đầu dự án web của bạn với AZDIGI