Home WebServer PanelDirectAdmin Chặn truy cập xmlrpc.php trên DirectAdmin

Chặn truy cập xmlrpc.php trên DirectAdmin

by Hoàng Nam
A+A-
Reset

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
CleanShot 2024 01 10 at 10.24.17@2x
  • 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>
CleanShot 2024 01 10 at 10.26.06@2x
  • 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
CleanShot 2024 01 10 at 10.28.54@2x
  • 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
CleanShot 2024 01 10 at 10.35.06@2x
  • Tạo file xmlrpc.txt có nội dung chặn xmlrpc cho nginx
CleanShot 2024 01 10 at 10.39.41@2x
  • 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
CleanShot 2024 01 10 at 10.44.15@2x
  • 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
CleanShot 2024 01 10 at 10.48.30@2x
  • 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]
CleanShot 2024 01 10 at 10.52.12@2x
  • 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:

Đánh giá

Tham gia nhóm hỗ trợ Server - Hosting

Tham gia nhóm Hỗ trợ Server - Hosting & WordPress để cùng nhau hỏi đáp và hỗ trợ các vấn đề về WordPress, tối ưu máy chủ/server.

Tham gia ngay

Bài viết cùng chuyên mục

AZDIGI – Không chỉ là đơn vị hàng đầu trong lĩnh vực Web Hosting và Máy chủ, chúng tôi mong muốn mang lại những kiến thức bổ ích nhất và luôn cập nhật thường xuyên cho cộng đồng người đam mê thiết kế website, công nghệ,…

Vui lòng không sao chép nội dung nếu chưa xin phép. Designed and Developed by PenciDesign