Checklist 20 Bước Tối Ưu VPS Ubuntu Trước Khi Deploy Production 2026

Share Article

20 bước thiết yếu cần làm ngay sau khi tạo VPS Ubuntu mới: SSH hardening, firewall, backup, SSL, monitoring. Bảo mật server đúng cách trước khi deploy production.

📢 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.

Bạn vừa spin up một VPS mới và đang chuẩn bị deploy ứng dụng production? Đừng vội. Hầu hết các vấn đề bảo mật nghiêm trọng xảy ra không phải do lỗi code — mà do server chưa được cấu hình đúng từ đầu. Checklist dưới đây là những gì mình thực hiện cho mỗi VPS mới trước khi deploy bất kỳ thứ gì.

👉 Cần VPS tốt để bắt đầu? Vultr — $100 credit cho người dùng mới →

GIAI ĐOẠN 1: Cấu Hình Cơ Bản (Ngay Khi Tạo Server)

1. Đổi SSH Port Mặc Định

Port 22 bị brute-force liên tục bởi bot tự động. Đổi sang port ngẫu nhiên (ví dụ: 2299) trong /etc/ssh/sshd_config. Đừng quên mở port mới trong firewall trước khi restart SSH.

2. Tắt Đăng Nhập SSH Bằng Password

Chỉ dùng SSH key. Trong /etc/ssh/sshd_config: set PasswordAuthentication noPubkeyAuthentication yes. Đây là bước bảo mật quan trọng nhất cho SSH.

3. Tắt Đăng Nhập Root Trực Tiếp

Set PermitRootLogin no. Tạo user riêng với sudo quyền. Dùng user đó cho mọi thao tác, sudo khi cần root.

4. Update Toàn Bộ Package

Chạy ngay: apt update && apt upgrade -y && apt autoremove -y. Nhiều lỗ hổng bảo mật nghiêm trọng được vá qua update thông thường.

5. Cài Fail2ban

Tự động block IP sau N lần đăng nhập thất bại. Cài: apt install fail2ban, cấu hình /etc/fail2ban/jail.local với maxretry=5, bantime=3600.

6. Cấu Hình UFW Firewall

Chỉ mở port cần thiết: SSH port mới, 80, 443. Block tất cả còn lại: ufw default deny incoming && ufw allow 2299/tcp && ufw allow 80 && ufw allow 443 && ufw enable.

7. Cài Unattended-Upgrades

Tự động apply security patches: apt install unattended-upgrades && dpkg-reconfigure unattended-upgrades. Chọn “Yes” để kích hoạt auto-update security.

GIAI ĐOẠN 2: Cấu Hình Web Server & Database

8. Cài Nginx Thay Apache

Nginx xử lý concurrent connections tốt hơn Apache với RAM ít hơn. Cấu hình worker_processes = auto, worker_connections = 1024 cho VPS nhỏ.

9. Tắt Server Signature

Trong Nginx: server_tokens off;. Trong PHP: expose_php = Off. Không để lộ version software cho attacker.

10. Cấu Hình PHP-FPM Đúng Pool

Tạo pool riêng cho mỗi app: pm = dynamic, pm.max_children = 20 (tùy RAM). Tránh dùng pool www mặc định cho production.

11. MySQL/MariaDB: Chạy mysql_secure_installation

Remove anonymous users, disable remote root login, remove test database. Tạo user riêng cho từng database, không dùng root cho app.

12. Bind Database Về Localhost

Trong my.cnf: bind-address = 127.0.0.1. Database không cần expose ra internet trừ khi bạn dùng managed DB riêng.

13. Giới Hạn File Upload Size & Execution

PHP: upload_max_filesize = 10M, max_execution_time = 30. Nginx: client_max_body_size 10M. Tránh DoS qua file upload lớn.

GIAI ĐOẠN 3: Monitoring & Backup

14. Cài Netdata Hoặc Prometheus

Netdata cài nhanh (bash <(curl -Ss https://my-netdata.io/kickstart.sh)), dashboard real-time CPU/RAM/disk/network. Thiết yếu để phát hiện vấn đề sớm.

15. Thiết Lập Cron Backup Database

Script backup MySQL hàng ngày, gzip, upload lên S3/R2/B2. Retention 7 ngày. Test restore ít nhất 1 lần/tháng — backup chưa test restore là backup vô nghĩa.

16. Backup Files Quan Trọng

Ngoài database, backup /etc/nginx, /etc/php, user home directory. Dùng rsync + rclone để sync lên cloud storage tự động.

17. Cài Logrotate Cho Custom Logs

Nếu app của bạn ghi log, đảm bảo logrotate được cấu hình. Log không rotate sẽ làm đầy disk âm thầm cho đến khi server die.

GIAI ĐOẠN 4: SSL & Network

18. Cài Certbot SSL Miễn Phí

Let’s Encrypt: apt install certbot python3-certbot-nginx && certbot --nginx -d yourdomain.com. Auto-renew được setup sẵn qua systemd timer.

19. Force HTTPS & Cấu Hình HSTS

Nginx redirect 301 từ HTTP sang HTTPS. Thêm header: add_header Strict-Transport-Security "max-age=31536000". Ngăn downgrade attack.

20. Kiểm Tra Mở Ports Cuối Cùng

Chạy ss -tlnp để xem tất cả port đang listen. Chạy nmap localhost để kiểm tra. Đảm bảo chỉ port 2299 (SSH), 80, 443 mở ra ngoài. Mọi thứ khác phải closed.

Recommended Stack Cho VPS Production 2026

  • OS: Ubuntu 24.04 LTS
  • Web: Nginx 1.24+
  • PHP: 8.3 + PHP-FPM
  • Cache: Redis 7.x
  • DB: MariaDB 11.x
  • SSL: Certbot (Let’s Encrypt)
  • Firewall: UFW + Fail2ban
  • Monitoring: Netdata
  • Backup: rclone + Cloudflare R2

Kết Luận

20 bước này không phải “nice to have” — chúng là baseline tối thiểu để server của bạn không bị hack trong tuần đầu. Mình đã mắc sai lầm bỏ qua một số bước và trả giá bằng server bị compromise. Dành 2-3 giờ setup đúng từ đầu sẽ tiết kiệm hàng chục giờ xử lý sự cố sau này.

👉 Cần VPS chất lượng để bắt đầu? Vultr — $100 credit, hủy bất cứ lúc nào →

A data center with rows of servers in racks, featuring various network and power connections. Orange and black cables are visible, alongside multiple server units with indicator lights. The environment appears organized with subdued lighting.

Đăng Kí Máy Ảo Miễn Phí

Nhận ngay 300 Đô miễn phí khi đăng kí VPS

Mã giảm giá Hostinger

ƯU ĐÃI ĐỘC QUYỀN 2026

You might also like