Quay lại danh sách
Tin tức công nghệ

Bảo mật VPS cho người mới: 10 bước thiết yếu để bảo vệ máy chủ ảo của bạn

17 tháng 5, 2026

Giới thiệu: Tại sao bảo mật VPS là ưu tiên hàng đầu?

Khi bạn thuê một VPS (Virtual Private Server), bạn không chỉ mua không gian lưu trữ; bạn đang thuê một máy tính ảo hoàn chỉnh kết nối trực tiếp với internet. Không giống như shared hosting, nơi nhà cung cấp quản lý phần lớn bảo mật, với VPS, trách nhiệm bảo mật phần lớn thuộc về bạn. Một máy chủ không được bảo mật có thể trở thành mục tiêu cho tin tặc, bị lợi dụng để tấn công từ chối dịch vụ (DDoS), khai thác tiền điện tử trái phép, hoặc lưu trữ mã độc. Bài viết này sẽ dẫn dắt bạn qua 10 bước thiết yếu, được sắp xếp theo trình tự logic, để khóa chặt VPS của bạn ngay từ đầu.

1. Cập nhật Hệ thống ngay lập tức

Bước đầu tiên và quan trọng nhất là đảm bảo hệ điều hành của bạn hoàn toàn mới nhất. Các bản cập nhật (updates và upgrades) thường chứa các bản vá lỗ hổng bảo mật nghiêm trọng.

  • Đối với Ubuntu/Debian: Chạy sudo apt update && sudo apt upgrade -y.
  • Đối với CentOS/RHEL/AlmaLinux: Chạy sudo yum update -y hoặc sudo dnf update -y.
  • Thiết lập cập nhật tự động (unattended-upgrades cho Ubuntu) để không bỏ lỡ bản vá quan trọng.

2. Cấu hình SSH an toàn

SSH là cổng chính để bạn quản lý VPS. Cấu hình sai có thể mở cửa cho các cuộc tấn công brute-force.

Thay đổi cổng mặc định (Port 22)

Đổi cổng SSH sang một số ngẫu nhiên (ví dụ: 2222, 45678) trong file /etc/ssh/sshd_config. Điều này giảm đáng kể lượng quét tự động.

Vô hiệu hóa đăng nhập bằng mật khẩu Root

Luôn sử dụng xác thực bằng khóa SSH. Thêm khóa công khai (public key) của bạn vào ~/.ssh/authorized_keys và trong sshd_config, đặt:

  • PasswordAuthentication no
  • PermitRootLogin prohibit-password hoặc no

Sử dụng Fail2Ban

Cài đặt Fail2Ban để tự động chặn các địa chỉ IP có nhiều lần đăng nhập SSH thất bại, chống lại tấn công brute-force.

3. Thiết lập Tường lửa (Firewall)

Tường lửa kiểm soát lưu lượng mạng ra/vào. Chỉ mở các cổng thực sự cần thiết.

  • UFW (Uncomplicated Firewall) cho Ubuntu: Dễ sử dụng. sudo ufw allow [cổng_SSH_mới], sau đó kích hoạt.
  • FirewallD cho CentOS/RHEL: Linh hoạt với zones. sudo firewall-cmd --permanent --add-port=[cổng]/tcp.
  • iptables/nftables: Cung cấp kiểm soát chi tiết nhất cho người dùng nâng cao.

Ví dụ cơ bản: chỉ cho phép cổng SSH (đã đổi), HTTP (80), HTTPS (443), và đóng mọi thứ khác.

4. Tạo Người dùng Không có đặc quyền (Non-root User)

Không bao giờ sử dụng tài khoản root cho các tác vụ hàng ngày. Tạo một người dùng mới với quyền sudo.

Nguyên tắc đặc quyền tối thiểu: Chỉ cấp quyền cần thiết tối thiểu để hoàn thành công việc. Điều này giới hạn thiệt hại nếu tài khoản bị xâm phạm.

5. Cài đặt và Cấu hình Mã hóa SSL/TLS (Let's Encrypt)

Bảo vệ mọi lưu lượng web bằng HTTPS. Let's Encrypt cung cấp chứng chỉ SSL miễn phí, tự động gia hạn.

  1. Cài đặt Certbot: công cụ chính thức của Let's Encrypt.
  2. Chạy Certbot cho web server của bạn (Nginx/Apache): sudo certbot --nginx.
  3. Thiết lập tự động gia hạn: Certbot tự tạo một cron job hoặc systemd timer.

Điều này không chỉ bảo mật dữ liệu người dùng mà còn là yếu tố xếp hạng SEO của Google.

6. Cấu hình Bảo mật cho Cơ sở dữ liệu

Nếu bạn chạy MySQL, MariaDB, hoặc PostgreSQL:

  • Thay đổi mật khẩu root mặc định của cơ sở dữ liệu ngay sau khi cài đặt.
  • Xóa người dùng ẩn danh (anonymous users) và cơ sở dữ liệu mẫu.
  • Chỉ cho phép kết nối từ localhost (127.0.0.1) trừ khi ứng dụng của bạn yêu cầu kết nối từ xa. Nếu cần kết nối từ xa, hãy hạn chế bằng tường lửa và sử dụng VPN.

7. Thiết lập Giám sát và Cảnh báo cơ bản

Bạn không thể bảo vệ thứ bạn không thể thấy. Thiết lập giám sát đơn giản:

  • Theo dõi tài nguyên: Sử dụng công cụ như htop, nmon hoặc dịch vụ như Netdata để xem CPU, RAM, dung lượng ổ đĩa, băng thông mạng.
  • Kiểm tra nhật ký (Logs): Thường xuyên xem /var/log/auth.log (đăng nhập), /var/log/syslog, và nhật ký ứng dụng để phát hiện hoạt động đáng ngờ.
  • Cảnh báo đơn giản: Cấu hình cảnh báo qua email khi dung lượng ổ đĩa vượt quá 80% hoặc khi có quá nhiều lần đăng nhập thất bại.

8. Vô hiệu hóa các Dịch vụ không cần thiết

Mỗi dịch vụ mạng đang chạy là một "bề mặt tấn công" tiềm năng. Sử dụng lệnh sudo ss -tulpn hoặc netstat để xem các cổng nào đang lắng nghe. Gỡ cài đặt hoặc dừng các dịch vụ bạn không sử dụng (ví dụ: dịch vụ máy in CUPS trên máy chủ web).

9. Sao lưu Dữ liệu Định kỳ (Backup)

Bảo mật không chỉ là ngăn chặn xâm nhập; đó còn là khả năng phục hồi. Một kế hoạch sao lưu vững chắc là tuyến phòng thủ cuối cùng.

  • 3-2-1 Rule: Giữ ít nhất 3 bản sao dữ liệu, trên 2 loại phương tiện khác nhau, với 1 bản sao lưu ngoài site (off-site).
  • Tự động hóa: Sử dụng cron jobs để chạy script sao lưu hàng ngày/tuần.
  • Kiểm tra phục hồi: Định kỳ thử nghiệm khôi phục từ bản sao lưu để đảm bảo chúng hoạt động.

10. Sử dụng Mật khẩu mạnh và Quản lý Khóa

Ngay cả với cấu hình hoàn hảo, yếu tố con người vẫn là mắt xích yếu.

  • Mật khẩu: Sử dụng trình quản lý mật khẩu để tạo và lưu trữ mật khẩu phức tạp, duy nhất cho mọi tài khoản.
  • Khóa SSH: Bảo vệ khóa riêng tư (private key) của bạn bằng mật khẩu. Không chia sẻ nó.
  • Xác thực hai yếu tố (2FA): Nếu nhà cung cấp VPS hoặc bảng điều khiển hỗ trợ, hãy bật 2FA cho tài khoản quản trị.

Kết luận: Bảo mật là một Hành trình, không phải Điểm đến

Bảo mật VPS không phải là một nhiệm vụ bạn hoàn thành một lần và quên đi. Đó là một quy trình liên tục bao gồm cập nhật, giám sát và thích ứng. 10 bước trên tạo thành nền tảng vững chắc cho bất kỳ VPS mới nào. Khi bạn trở nên thành thạo hơn, bạn có thể khám phá các biện pháp nâng cao như phân vùng, kiểm soát truy cập bắt buộc (SELinux/AppArmor), hoặc thiết lập mạng riêng ảo (VPN) để quản lý. Hãy bắt đầu với những điều cơ bản, thực hiện nhất quán, và bạn sẽ giảm đáng kể rủi ro, cho phép bạn tập trung vào việc phát triển và vận hành ứng dụng của mình một cách tự tin.