❤️ 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.
phpMyAdmin là mục tiêu tấn công phổ biến trên server vì cho phép truy cập trực tiếp database. Mặc định phpMyAdmin trên DirectAdmin ai cũng truy cập được nếu biết URL. Bài viết này hướng dẫn cách hạn chế quyền truy cập phpMyAdmin để tăng bảo mật.
⚠️ Theo thống kê, phpMyAdmin là 1 trong 3 target phổ biến nhất của bot tấn công web. Không bảo vệ phpMyAdmin = để lộ toàn bộ database.
Cách 1: Giới hạn IP truy cập
Chỉ cho phép IP cụ thể truy cập phpMyAdmin qua cấu hình web server:
# Tạo file custom config cho phpMyAdmin
vi /usr/local/directadmin/data/templates/custom/phpmyadmin.conf
# Thêm (Apache):
<Directory /var/www/html/phpMyAdmin>
Require ip YOUR_IP
Require ip 127.0.0.1
</Directory>
# Cho Nginx:
location /phpmyadmin {
allow YOUR_IP;
allow 127.0.0.1;
deny all;
}
# Áp dụng
cd /usr/local/directadmin/custombuild
./build rewrite_confs
💡 Thay YOUR_IP bằng IP thực của bạn. Kiểm tra IP hiện tại: curl ifconfig.me
Cách 2: Đổi URL phpMyAdmin
Thay vì URL mặc định /phpmyadmin (dễ đoán), đổi sang URL khác:
# Đổi URL phpMyAdmin
echo "phpmyadmin_url=/my-secret-db-admin" >> /usr/local/directadmin/conf/directadmin.conf
service directadmin restart
# Kiểm tra config đã áp dụng
grep phpmyadmin_url /usr/local/directadmin/conf/directadmin.conf
Giờ chỉ truy cập được phpMyAdmin qua /my-secret-db-admin. URL cũ /phpmyadmin sẽ trả về 404.
Cách 3: Tắt phpMyAdmin khi không dùng
Cách an toàn tuyệt đối – chỉ bật phpMyAdmin khi cần thiết:
# Tắt phpMyAdmin
cd /usr/local/directadmin/custombuild
./build set phpmyadmin no
./build rewrite_confs
# Bật lại khi cần
./build set phpmyadmin yes
./build phpmyadmin
./build rewrite_confs
# Kiểm tra trạng thái
./build options | grep phpmyadmin
Cách 4: HTTPS và certificate validation
Bắt buộc HTTPS cho phpMyAdmin để mã hoá dữ liệu truyền:
# Force HTTPS redirect
vi /usr/local/directadmin/data/templates/custom/phpmyadmin.conf
# Thêm:
<Directory /var/www/html/phpMyAdmin>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</Directory>
Monitoring và log
Theo dõi access log để phát hiện attempt tấn công:
# Check phpMyAdmin access attempts
grep -i phpmyadmin /var/log/httpd/access_log | tail -20
# Monitor real-time
tail -f /var/log/httpd/access_log | grep -i phpmyadmin
# Count unique IPs trying to access
grep -i phpmyadmin /var/log/httpd/access_log | awk '{print $1}' | sort | uniq -c | sort -nr
⚠️ Nếu thấy nhiều IP lạ cố gắng truy cập /phpmyadmin, server đang bị scan. Cần áp dụng ngay các biện pháp bảo vệ.
💡 Cách an toàn nhất là kết hợp: đổi URL + giới hạn IP + bật 2FA cho DirectAdmin + HTTPS only. Bot tấn công thường quét URL mặc định /phpmyadmin nên đổi URL đã chặn được phần lớn.
Tổng kết
phpMyAdmin là cửa ngõ vào database, cần bảo vệ kỹ càng. Bốn cách trên có thể áp dụng riêng lẻ hoặc kết hợp tăng cường bảo mật. Mức độ ưu tiên: đổi URL (dễ nhất) → giới hạn IP → HTTPS → monitoring log → tắt khi không dùng (an toàn nhất).
Nhớ backup database trước khi thay đổi cấu hình phpMyAdmin. Nếu bị khóa truy cập, có thể dùng command line MySQL hoặc khôi phục cấu hình qua SSH.
Có thể bạn cần xem thêm
- Chuyển MPM prefork sang MPM event Apache DirectAdmin
- Chặn truy cập xmlrpc.php trên DirectAdmin
- Hướng dẫn cài đặt webserver Nginx DirectAdmin
- Hướng dẫn cấu hình Giới hạn quyền user Directadmin 1.6
- Tăng giới hạn upload/import phpMyadmin Directadmin chỉ với 3 bước
- Tăng giới hạn import database trong phpMyAdmin
Về tác giả
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.