📢 Bài viết có chứa link affiliate. Bạn không trả thêm phí khi mua qua link của mình.
Mỗi ngày có hàng nghìn VPS bị tấn công brute-force, khai thác lỗ hổng và bị chiếm quyền điều khiển — và phần lớn là do cấu hình mặc định không được hardening. Checklist này tổng hợp 22 bước bảo mật VPS thiết yếu trước khi đưa vào production, áp dụng cho Ubuntu/Debian/CentOS 2026.
👉 Cần VPS giá tốt để triển khai? Xem Vultr High Performance VPS từ $6/tháng →
Nhóm A — Trước Khi Deploy (Bước 1-8)
1. Đổi SSH port mặc định
Đổi từ port 22 sang port ngẫu nhiên (ví dụ: 2222 hoặc 49xxx). Giảm 99% brute-force attack tự động nhắm vào port 22. Sửa trong /etc/ssh/sshd_config: Port 2222.
2. Tắt đăng nhập SSH bằng mật khẩu — chỉ dùng SSH key
Đây là bước quan trọng nhất. Set PasswordAuthentication no trong sshd_config sau khi đã thêm public key vào ~/.ssh/authorized_keys.
3. Tắt đăng nhập root qua SSH
Set PermitRootLogin no. Tạo user mới với sudo privileges, đăng nhập bằng user đó thay vì root.
4. Bật UFW firewall và chỉ mở port cần thiếtufw default deny incoming; ufw allow 2222/tcp; ufw allow 80/tcp; ufw allow 443/tcp; ufw enable. Đóng tất cả các port không dùng đến.
5. Cài Fail2banapt install fail2ban. Cấu hình để ban IP sau 3-5 lần thất bại. Bảo vệ SSH, Nginx, WordPress login khỏi brute-force.
6. Cập nhật hệ thống và bật auto-update security patchesapt update && apt upgrade -y. Bật unattended-upgrades để tự động cài security patches quan trọng.
7. Disable các service không cần thiết
Kiểm tra systemctl list-units --type=service --state=running. Disable service không dùng: sendmail, avahi-daemon, cups, bluetooth.
8. Cài rkhunter hoặc chkrootkit
Scan rootkit lần đầu sau khi setup clean. Lưu baseline để so sánh sau này: rkhunter --check --skip-keypress.
Nhóm B — Sau Khi Deploy Application (Bước 9-16)
9. Chạy ứng dụng với user non-root riêng biệt
Ví dụ: Nginx chạy với user www-data, Node.js app chạy với user nodeapp. Hạn chế damage nếu bị compromise.
10. Cấu hình Nginx security headers
Thêm vào nginx.conf: X-Frame-Options DENY; X-Content-Type-Options nosniff; X-XSS-Protection "1; mode=block"; Strict-Transport-Security "max-age=31536000".
11. Tắt Nginx server version disclosure
Set server_tokens off trong nginx.conf. Ẩn phiên bản Nginx khỏi response headers.
12. Cài SSL/TLS và chỉ dùng TLS 1.2+
Dùng Let’s Encrypt (Certbot). Trong nginx.conf: ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5;.
13. Cấu hình PHP với security settings
Trong php.ini: expose_php = Off; allow_url_fopen = Off; disable_functions = exec,passthru,shell_exec,system.
14. Đặt file/folder permissions đúng cho web root
WordPress: find /var/www/html -type f -exec chmod 644 {} ; find /var/www/html -type d -exec chmod 755 {} ; chmod 600 wp-config.php.
15. Cài ModSecurity hoặc Nginx WAF
WAF lọc các request độc hại (SQL injection, XSS, RCE) trước khi vào application. Đặc biệt quan trọng nếu chạy WordPress.
16. Cấu hình database chỉ lắng nghe localhost
Trong MySQL/MariaDB: bind-address = 127.0.0.1. Không bao giờ expose database port ra internet.
Nhóm C — Giám Sát Định Kỳ (Bước 17-22)
17. Setup backup tự động hàng ngày
Backup database và file web lên S3/Backblaze B2 mỗi đêm. Dùng borgbackup hoặc script rsync đơn giản. Test restore ít nhất 1 lần/tháng.
18. Bật monitoring uptime và alert
Dùng UptimeRobot (free) hoặc Betterstack để nhận SMS/email khi server down. Mục tiêu: biết server có vấn đề trong vòng 1 phút.
19. Kiểm tra log thường xuyên
Xem /var/log/auth.log để phát hiện đăng nhập bất thường. Dùng grep "Failed password" /var/log/auth.log | tail -50 để xem các lần thất bại gần đây.
20. Scan port mở định kỳ với nmapnmap -sT -O localhost. Đảm bảo không có port nào mở ngoài danh sách đã phê duyệt.
21. Review sudo privileges định kỳcat /etc/sudoers và kiểm tra /etc/sudoers.d/. Chỉ user cần thiết mới có sudo access.
22. Lập lịch penetration test hàng quý
Dùng Lynis (apt install lynis && lynis audit system) để tự audit bảo mật. Điểm Lynis tốt: trên 70/100.
Kết Luận
Checklist 22 bước này bao gồm từ hardening cơ bản đến monitoring nâng cao. Ưu tiên làm ngay bước 1-8 trước khi deploy bất kỳ ứng dụng nào. Bước 9-16 làm ngay sau khi cài ứng dụng. Bước 17-22 thiết lập một lần và duy trì định kỳ.
VPS không bảo mật là cửa mở cho hacker. 30 phút setup đúng cách hôm nay có thể tránh hàng ngày đau đầu sau này.
Đánh giá độ quan trọng: ⭐⭐⭐⭐⭐ (5/5) — Bắt buộc với mọi VPS production
👉 Cần VPS để thực hành? Deploy Vultr VPS trong 60 giây và bắt đầu hardening ngay →