NỘI DUNG
XML-RPC trên WordPress thực chất là một API hay còn gọi là “giao diện lập trình ứng dụng”. Nó cho phép các nhà phát triển tạo ra các ứng dụng di động, ứng dụng máy tính và các dịch vụ khác có khả năng tương tác với trang WordPress của bạn. Nó được sử dụng để trao đổi dữ liệu giữa các ứng dụng web khác nhau, chẳng hạn như WordPress và Joomla. Tuy nhiên, XML-RPC cũng có thể được sử dụng để thực hiện các cuộc tấn công, chẳng hạn như tấn công brute force hoặc tấn công DoS.
API XML-RPC mà WordPress cung cấp mang đến cho các nhà phát triển một phương thức để viết các ứng dụng (dành cho bạn) có thể thực hiện nhiều tác vụ mà bạn có thể làm khi đăng nhập vào WordPress thông qua giao diện web. Những tác vụ này bao gồm:
- Xuất bản bài viết
- Chỉnh sửa bài viết
- Xóa bài viết
- Tải lên tệp mới (ví dụ: hình ảnh cho bài viết)
- Lấy danh sách bình luận
- Chỉnh sửa bình luận
Để ngăn chặn các cuộc tấn công này, bạn có thể chặn file xmlrpc.php trên toàn server DirectAdmin. Và trong bài viết này, chúng ta sẽ cùng nhau tìm hiểu cách chặn file xmlrpc.php trên toàn server DirectAdmin.
Bước 1: SSH vào máy chủ
Việc đầu tiên bạn cần SSH vào máy chủ Linux, nếu bạn chưa biết cách SSH hãy xem bài viết tại đây
Bước 2: Chặn xmlrpc.php
1. Chặn tấn công trên DirectAdmin Apache
Bạn hãy SSH vào máy chủ sau đó copy và chạy các lệnh sau
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
Ở đây, chúng ta đã thay đổi thư mục và tạo 4 tệp trống, cần mở bằng trình chỉnh sửa (từng tệp một) và điền vào các chỉ thị sau:
<Location ~ "/xmlrpc.php">
Order allow,deny
Deny from all
ErrorDocument 403 "Sorry, you are not allowed to view this page!"
</Location>
Ngay khi hoàn thành với 1 mẫu, giả sử đó là tệp virtual_host2.conf.CUSTOM.4.post, chúng ta có thể sao chép nội dung của nó sang các tệp khác bằng các lệnh sau:
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
Bây giờ chúng ta cần áp dụng các thay đổi và tạo lại cấu hình cho tất cả các máy chủ ảo hiện có. Hãy chạy lệnh sau:
cd /usr/local/directadmin/custombuild/
./build rewrite_confs
Sau khi tất cả các cấu hình được tạo lại, hãy đảm bảo Apache đã khởi động và thử mở tập lệnh trong trình duyệt: http://www.domain.com/xmlrpc.php
Nếu mọi thứ được thực hiện đúng, bạn sẽ thấy thông báo “Sorry, you are not allowed to view this page!”.
2. Chặn tấn công trên DirectAdmin NGINX
Trên NGINX bạn tạo các file sau
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
Ở đây, chúng ta đã thay đổi thư mục và tạo 4 tệp trống, cần mở bằng trình chỉnh sửa (từng tệp một) và điền vào các chỉ thị sau:
location =/xmlrpc.php
{
deny all;
}
Ngay sau khi hoàn tất chỉnh sửa một mẫu, giả sử đó là tệp nginx_server.conf.CUSTOM.4.post, chúng ta có thể sao chép nội dung của nó sang các tệp khác.
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
Bây giờ chúng ta cần áp dụng các thay đổi và tạo lại cấu hình cho tất cả các máy chủ ảo hiện có. Hãy chạy lệnh sau:
cd /usr/local/directadmin/custombuild/
./build rewrite_confs
Sau khi tất cả các cấu hình được tạo lại, hãy đảm bảo Nginx đã khởi động và thử mở tập lệnh trong trình duyệt: http://www.domain.com/xmlrpc.php
Nếu mọi thứ được thực hiện đúng, bạn sẽ thấy lỗi 403: “403 Forbidden”.
3. Chặn tấn công trên DirectAdmin OpenLiteSpeed
Trên OpenLiteSpeed bạn tạo các file sau
cd /usr/local/directadmin/data/templates/custom/
touch openlitespeed_vhost.conf.CUSTOM.5.post
chown diradmin:diradmin openlitespeed_vhost.conf.CUSTOM.5.post
Ở đây, chúng ta đã thay đổi thư mục và tạo 1 tệp trống. Cần mở tệp này bằng trình chỉnh sửa và điền các chỉ thị sau đây:
RewriteRule ^/(xmlrpc|wp-trackback)\.php - [F,L,NC]
Bây giờ chúng ta cần áp dụng các thay đổi và tạo lại cấu hình cho tất cả các máy chủ ảo hiện có. Hãy chạy lệnh sau:
cd /usr/local/directadmin/custombuild/
./build rewrite_confs
Sau khi tất cả các cấu hình được tạo lại, hãy đảm bảo OpenLiteSpeed đã khởi động và thử mở tập lệnh trong trình duyệt: http://www.domain.com/xmlrpc.php
Nếu mọi thứ được thực hiện đúng, bạn sẽ thấy lỗi 403: “403 Forbidden”.
Tổng kết
Trong bài viết này, chúng ta đã tìm hiểu về cách chặn tệp xmlrpc.php trên toàn bộ server sử dụng hệ thống quản lý hosting DirectAdmin. Việc này không chỉ giúp tăng cường bảo mật cho website của bạn mà còn giảm nguy cơ bị tấn công từ các kẻ xâm nhập.
Nhìn chung, việc chặn xmlrpc.php trên toàn server DirectAdmin không chỉ là một biện pháp phòng ngừa mà còn là một phương tiện hiệu quả để bảo vệ dữ liệu và tài nguyên của bạn. Chúng ta hy vọng rằng với hướng dẫn chi tiết này, độc giả có thể thực hiện thành công quy trình bảo mật này trên hệ thống hosting của mình.
Đồng thời, luôn lưu ý rằng bảo mật là một quá trình liên tục. Hãy duy trì cập nhật hệ thống, theo dõi các xu hướng an ninh mới, và thực hiện các biện pháp bảo mật bổ sung khi cần thiết để đảm bảo sự an toàn và ổn định cho website của bạn.