Checklist bảo mật khi dùng panel thay cPanel trên VPS Linux
cPanel mạnh, quen tay, nhưng giá cao. Vì vậy nhiều người chuyển sang CyberPanel, HestiaCP, CloudPanel, aaPanel, ISPConfig, Virtualmin, DirectAdmin thay thế, hoặc panel mã nguồn mở khác. Vấn đề: panel càng tiện, bề mặt tấn công càng lớn. Một lỗi cấu hình nhỏ có thể mở cửa cho bot scan, brute-force, webshell, chiếm mail server, đào coin.
VPS Linux không có “an toàn mặc định”. Panel chỉ là lớp quản trị. Bảo mật vẫn nằm ở người vận hành: cập nhật, phân quyền, firewall, backup, log, hardening. Checklist dưới đây giúp giảm rủi ro khi dùng panel thay cPanel trên VPS Linux.
1. Chọn panel có vòng đời rõ, cộng đồng sống
Không chọn panel chỉ vì giao diện đẹp. Panel chạy quyền cao, quản lý web server, database, DNS, mail, cron, file. Nếu panel bỏ cập nhật, VPS thành mục tiêu dễ.
Checklist chọn panel
– Có cập nhật bảo mật thường xuyên.
– Có changelog công khai.
– Có tài liệu hardening.
– Có cộng đồng hoặc kênh hỗ trợ còn hoạt động.
– Hỗ trợ hệ điều hành LTS như Ubuntu LTS, Debian stable, AlmaLinux, Rocky Linux.
– Không yêu cầu chạy script mờ nguồn từ nguồn lạ.
– Không tự ý tắt firewall, SELinux/AppArmor, hoặc ghi đè cấu hình hệ thống quá mạnh.
Tránh
– Panel fork không rõ nguồn.
– Script cài đặt từ blog lạ.
– Repo không cập nhật nhiều tháng hoặc nhiều năm.
– Panel yêu cầu mở quá nhiều port không cần.
2. Cài VPS nền sạch, tối giản
Bảo mật bắt đầu trước khi cài panel. VPS càng nhiều gói thừa, rủi ro càng lớn.
Việc cần làm sau khi tạo VPS
– Cài OS mới, bản LTS.
– Cập nhật hệ thống:
sudo apt update && sudo apt upgrade -y
hoặc:
sudo dnf update -y
– Đặt hostname đúng.
– Tạo user quản trị riêng, không dùng root hằng ngày.
– Kiểm tra IP, DNS reverse nếu chạy mail.
– Không cài panel trên VPS đã dùng lâu, có cấu hình cũ, gói lạ.
Lý do
Panel thường giả định môi trường sạch. Cài đè lên VPS có Nginx, Apache, MySQL, PHP cũ dễ sinh xung đột quyền, port, config. Xung đột bảo mật khó thấy hơn lỗi chạy dịch vụ.
3. Khóa SSH trước khi mở panel
SSH là cửa chính. Bot brute-force quét liên tục port 22. Trước khi cài website, khóa SSH.
Checklist SSH
– Tạo SSH key, tắt đăng nhập mật khẩu.
– Tắt root login.
– Đổi port SSH nếu cần, nhưng không xem đây là bảo mật chính.
– Bật Fail2ban hoặc công cụ tương đương.
– Chỉ cho IP quản trị truy cập SSH nếu có IP cố định.
Ví dụ cấu hình trong:
/etc/ssh/sshd_config
Khuyến nghị:
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
Reload SSH:
sudo systemctl reload ssh
Cảnh báo
Trước khi đóng session SSH hiện tại, mở terminal mới và thử đăng nhập lại. Nếu cấu hình sai, bạn có thể tự khóa khỏi VPS.
4. Giới hạn port bằng firewall
Panel thường mở nhiều dịch vụ: HTTP, HTTPS, SSH, database, DNS, mail, FTP, panel port. Không phải VPS nào cũng cần tất cả.
Port thường gặp
– 22 hoặc port SSH tùy chỉnh.
– 80, 443 cho web.
– Port panel như 8090, 8083, 8443, tùy panel.
– 25, 465, 587, 993, 995 nếu chạy mail.
– 53 nếu chạy DNS.
– 3306, 5432 không nên mở public nếu không cần.
– FTP nên tránh; nếu cần dùng SFTP.
Checklist firewall
– Chỉ mở port cần.
– Chặn database khỏi Internet.
– Giới hạn port panel theo IP quản trị nếu panel hỗ trợ.
– Bật IPv6 firewall nếu VPS có IPv6.
– Kiểm tra port đang lắng nghe:
sudo ss -tulpn
– Quét ngoài bằng:
nmap your-server-ip
Nguyên tắc
Dịch vụ không phục vụ Internet thì không mở ra Internet. Database, Redis, Memcached, Elasticsearch, phpMyAdmin là mục tiêu bị quét cực nhiều.
5. Bảo vệ trang đăng nhập panel
Panel login là mục tiêu ngon. Kẻ tấn công chỉ cần tìm port, rồi brute-force, khai thác CVE, hoặc đoán mật khẩu.
Checklist panel login
– Đổi URL/port panel nếu panel hỗ trợ.
– Bật 2FA nếu có.
– Dùng mật khẩu dài, duy nhất.
– Không dùng admin/admin, root/password, email phổ biến.
– Giới hạn IP truy cập panel.
– Bật CAPTCHA nếu panel có.
– Bật khóa tài khoản sau nhiều lần sai.
– Cài SSL hợp lệ cho panel.
– Không truy cập panel qua Wi-Fi công cộng không an toàn.
Thực tế
Đổi port không đủ. Nhưng đổi port + IP allowlist + 2FA + mật khẩu mạnh giúp giảm mạnh log rác và brute-force.
6. Cập nhật panel, OS, PHP, database
Nhiều vụ hack xảy ra vì panel hoặc plugin cũ. VPS ít người chăm càng dễ bị chiếm.
Checklist cập nhật
– Bật thông báo cập nhật panel.
– Theo dõi CVE của panel đang dùng.
– Cập nhật OS định kỳ.
– Gỡ phiên bản PHP hết vòng đời.
– Cập nhật MariaDB/MySQL/PostgreSQL.
– Không dùng theme/plugin web cũ.
– Reboot sau cập nhật kernel nếu cần.
Lịch đề xuất
– Hằng tuần: cập nhật OS và panel.
– Hằng ngày: xem cảnh báo bảo mật quan trọng.
– Hằng tháng: rà soát gói cũ, PHP cũ, website không còn dùng.
Lưu ý
Trước khi cập nhật lớn, tạo snapshot hoặc backup. Một bản cập nhật hỏng có thể làm ngừng web, mail, database.
7. Phân quyền website đúng
Panel giúp tạo user, domain, database. Nhưng nếu phân quyền sai, một site bị hack có thể lây sang site khác.
Checklist phân quyền
– Mỗi website dùng user riêng.
– Không cho nhiều site dùng cùng user nếu không cần.
– File không nên có quyền 777.
– Upload directory không được chạy PHP nếu có thể.
– Tách staging và production.
– Không lưu backup .zip, .sql, .tar.gz trong thư mục public.
– Không để file .env, config database lộ trong web root.
– Tắt directory listing.
– Không dùng user admin.
– Bật auto-update cho core nếu phù hợp.
– Gỡ plugin/theme không dùng.
– Chặn XML-RPC nếu không cần.
– Dùng WAF hoặc rule Nginx/Apache hợp lý.
– Giới hạn đăng nhập admin.
8. Hardening PHP, web server, database
Cấu hình mặc định thường ưu tiên chạy được, không phải an toàn nhất.
– Không mở port database public.
– Mỗi ứng dụng dùng database user riêng.
– Không dùng root database cho website.
– Mật khẩu database dài, ngẫu nhiên.
– Backup database mã hóa nếu chứa dữ liệu nhạy cảm.
9. SSL/TLS đúng cách
Panel thường tích hợp Let’s Encrypt. Nhưng vẫn cần kiểm tra.
Checklist SSL
– Bật SSL cho panel.
– Bật SSL cho mọi domain.
– Tự động gia hạn chứng chỉ.
– Kiểm tra cron renew.
– Không dùng self-signed cho public service.
– Tắt TLS cũ nếu có thể.
– Bật HSTS sau khi chắc chắn HTTPS hoạt động ổn.
Kiểm tra nhanh bằng:
curl -I https://yourdomain.com
Hoặc dùng SSL Labs:
https://www.ssllabs.com/ssltest/
10. Backup phải khôi phục được
Backup không khôi phục được = không có backup. Panel nào cũng quảng cáo backup, nhưng cần kiểm chứng.
Checklist backup
– Backup file website.
– Backup database.
– Backup cấu hình panel nếu panel hỗ trợ.
– Backup ra ngoài VPS: S3, Backblaze, Google Drive, server riêng.
– Mã hóa backup nhạy cảm.
– Giữ nhiều phiên bản.
– Test restore định kỳ.
– Không lưu duy nhất backup trên cùng VPS.
Quy tắc 3-2-1
– 3 bản sao dữ liệu.
– 2 loại lưu trữ khác nhau.
– 1 bản ở ngoài máy chủ chính.
Ransomware, lỗi người dùng, xóa nhầm, disk hỏng đều xảy ra. Backup ngoài VPS là tuyến phòng thủ sống còn.
11. Giám sát log, cảnh báo, tài nguyên
Không có log, không biết bị đánh lúc nào. Không có cảnh báo, biết quá muộn.
Cần theo dõi
– SSH login thất bại.
– Panel login thất bại.
– Web server error log.
– PHP error log.
– Mail queue.
– CPU/RAM/disk bất thường.
– Process lạ.
– Port mới mở.
– File mới trong upload directory.
Lệnh hữu ích:
journalctl -xe
last
sudo tail -f /var/log/auth.log
ps aux --sort=-%cpu | head
Công cụ gợi ý
– Fail2ban.
– UFW/firewalld.
– Netdata.
– Uptime Kuma.
– Wazuh.
– rkhunter hoặc chkrootkit, dùng như tín hiệu phụ, không phải bằng chứng tuyệt đối.
12. Bảo mật mail nếu dùng mail server
Chạy mail trên VPS khó hơn chạy web. Nếu cấu hình sai, VPS bị đưa vào blacklist.
Checklist mail
– SPF đúng.
– DKIM bật.
– DMARC cấu hình.
– Reverse DNS khớp.
– Chặn open relay.
– Bật rate limit gửi mail.
– Quét spam/virus nếu panel hỗ trợ.
– Theo dõi mail queue.
– Không cho website gửi mail không giới hạn.
Kiểm tra mail bằng:
https://www.mail-tester.com/
Nếu không có nhu cầu mail nghiêm túc, dùng dịch vụ mail ngoài như Google Workspace, Microsoft 365, Zoho, Amazon SES, Mailgun. Giảm rủi ro lớn.
13. Gỡ thứ không dùng
Mỗi dịch vụ thừa là cửa thừa.
Checklist dọn dẹp
– Gỡ FTP nếu dùng SFTP.
– Tắt DNS nếu domain dùng Cloudflare hoặc DNS ngoài.
– Tắt mail nếu không dùng.
– Gỡ phpMyAdmin nếu không cần.
– Xóa domain test.
– Xóa user cũ.
– Xóa database không dùng.
– Xóa cron lạ.
– Xóa SSH key cũ.
Kiểm tra service:
systemctl --type=service --state=running
14. Lập quy trình ứng cứu sự cố
Không đợi bị hack mới nghĩ. Khi sự cố xảy ra, thao tác vội dễ phá chứng cứ hoặc mất dữ liệu.
Checklist ứng cứu
– Biết cách cô lập VPS khỏi Internet.
– Có snapshot trước khi dọn.
– Lưu log trước khi xóa file.
– Đổi toàn bộ mật khẩu: panel, SSH, database, CMS, email.
– Kiểm tra SSH key lạ.
– Kiểm tra cron lạ.
– Kiểm tra user hệ thống lạ.
– Restore từ backup sạch nếu không chắc.
– Vá lỗ hổng trước khi mở lại dịch vụ.
Nếu bị chiếm root, cách an toàn nhất thường là dựng VPS mới, restore dữ liệu sạch, không “vá tạm” trên máy đã nhiễm.
Kết luận thực tế
Panel thay cPanel giúp tiết kiệm chi phí và tăng linh hoạt, nhưng không tự biến VPS thành hệ thống an toàn. Bảo mật đến từ checklist lặp lại: OS sạch, SSH khóa, firewall chặt, panel login có 2FA, cập nhật đều, phân quyền đúng, backup ngoài VPS, log có cảnh báo.
Nếu chỉ làm vài việc quan trọng nhất, hãy làm ngay: tắt SSH password, bật firewall, giới hạn port panel, bật SSL, cập nhật định kỳ, backup ra ngoài, kiểm tra restore. Những việc này không hào nhoáng, nhưng cứu VPS khi bot, lỗi plugin, hoặc thao tác nhầm xuất hiện.