Nội dung
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:
- CUSTOM1: Xuất hiện ngay ở đầu của template, trước khi thiết lập các biến.
- CUSTOM2: Nằm trong phần
scripthandler{}
. - CUSTOM3: Được đặt trong các phần
context{}
. - CUSTOM4: Xuất hiện trong phần
phpIniOverride{}
. - CUSTOM5: Đặt trong phần
rewrite{}
. - CUSTOM6: Nằm trong phần
vhssl{}
. - CUSTOM7: Xuất hiện cuối cùng của
virtualHost
. - 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:
- Hotline 247: 028 888 24768
- Ticket/Email: Bạn dùng email đăng ký dịch vụ gửi trực tiếp về: support@azdigi.com.