Bảo mật VPS: checklist đầy đủ cho Linux và Windows Server, làm ngay từ ngày đầu

Một chiếc VPS vừa lên mạng với IP công khai sẽ bị quét cổng và dò mật khẩu gần như ngay lập tức. Nếu dùng VPS không quản trị (unmanaged), nhà cung cấp chỉ lo phần cứng và mạng; hệ điều hành, phần mềm và dữ liệu là trách nhiệm của bạn. Dưới đây là checklist bảo mật VPS cho cả Linux và Windows Server.

Checklist bảo mật VPS tổng quan

Các bộ hướng dẫn như NIST SP 800-123 hay CIS Controls đều chung vài nguyên tắc: chỉ chạy dịch vụ cần thiết, quyền tối thiểu, vá lỗi thường xuyên, ghi log đầy đủ:

  • Cập nhật hệ điều hành và bật cập nhật tự động.
  • Đăng nhập an toàn: SSH key, tắt mật khẩu và root (Linux); mật khẩu mạnh, bật NLA, khóa tài khoản khi nhập sai (Windows).
  • Tường lửa: chỉ mở cổng đang dùng, giới hạn IP vào cổng quản trị.
  • Chặn dò mật khẩu: Fail2ban trên Linux, chính sách khóa tài khoản trên Windows.
  • Đóng dịch vụ thừa: database chỉ nghe localhost, không mở ra Internet.
  • Sao lưu ra ngoài VPS, thử khôi phục định kỳ và theo dõi log, tài nguyên.

Bảo mật VPS: checklist đầy đủ cho Linux và Windows Server, làm ngay từ ngày đầu

Bảo mật VPS Linux (Ubuntu) từng bước

Thứ tự rất quan trọng: cập nhật, tạo user và SSH key, kiểm tra đăng nhập bằng key thành công — rồi mới tắt mật khẩu và bật tường lửa. Làm ngược thứ tự dễ khiến bạn tự khóa mình khỏi VPS.

1. Cập nhật hệ thống, bật cập nhật tự động

Dùng bản Ubuntu LTS còn hỗ trợ (24.04 ở thời điểm viết). Gói unattended-upgrades có sẵn và mặc định tự cài bản vá bảo mật:

sudo apt update && sudo apt upgrade -y
sudo unattended-upgrade -v --dry-run

2. Tạo user sudo và đăng nhập bằng SSH key

Ubuntu khuyến nghị khóa ed25519. Lưu ý: tạo key trên máy tính của bạn, không tạo trên VPS.

# Trên VPS: tạo user, cấp quyền sudo
adduser tenban
usermod -aG sudo tenban

# Trên máy của bạn: tạo key, chép lên VPS, thử đăng nhập
ssh-keygen -t ed25519
ssh-copy-id tenban@IP_VPS
ssh tenban@IP_VPS

3. Tắt đăng nhập bằng mật khẩu và root

Chỉ làm bước này khi đã đăng nhập được bằng key ở cửa sổ khác:

sudo tee /etc/ssh/sshd_config.d/01-bao-mat.conf > /dev/null <<'EOF'
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin no
EOF
sudo sshd -t && sudo systemctl restart ssh

Giữ nguyên phiên SSH đang mở tới khi phiên mới vào được. Một số bản cài có file 50-cloud-init.conf bật lại mật khẩu — kiểm tra giá trị thực tế bằng sudo sshd -T.

4. Bật tường lửa UFW đúng thứ tự

Chặn mặc định mọi kết nối đến, mở SSH trước rồi mới bật tường lửa; chỉ mở thêm 80/443 nếu chạy website:

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

Nếu IP nhà cố định, hãy giới hạn chỉ IP đó vào cổng 22. Riêng Docker: cổng do Docker publish không đi qua UFW, nên hãy bind vào 127.0.0.1 rồi đưa ra ngoài qua reverse proxy.

5. Chặn dò mật khẩu bằng Fail2ban

Fail2ban đọc log và tạm khóa IP nhập sai nhiều lần — vẫn đáng cài dù đã tắt mật khẩu:

sudo apt install fail2ban -y
sudo systemctl restart fail2ban
sudo fail2ban-client status sshd

6. Đóng dịch vụ thừa, không mở database ra Internet

Mỗi cổng mở là một đường vào. Kiểm tra bằng sudo ss -tulpn và tắt dịch vụ không dùng. MySQL, PostgreSQL, Redis chỉ nên nghe trên 127.0.0.1; cần quản trị từ xa thì dùng đường hầm SSH thay vì mở cổng 3306.

7. Sao lưu ra ngoài VPS và theo dõi log

Bản sao lưu phải nằm ngoài VPS (ransomware sẽ mã hóa cả bản sao để cùng máy) và cần thử khôi phục định kỳ. Đồng thời theo dõi log bằng last, journalctl -u ssh — VPS bị chiếm quyền thường lộ qua CPU tăng bất thường trước tiên.

Bảo mật VPS Windows Server: trọng tâm là RDP

Với Windows, cửa vào bị nhắm nhiều nhất là Remote Desktop (cổng 3389) khi mở cho mọi IP kèm mật khẩu yếu:

  • Bật Network Level Authentication (NLA) để bắt buộc xác thực trước khi phiên RDP được tạo.
  • Giới hạn IP vào RDP: trong Windows Defender Firewall, tab Scope của quy tắc Remote Desktop, chỉ cho phép IP của bạn hoặc VPN.
  • Khóa tài khoản khi nhập sai nhiều lần (Account lockout threshold) để chặn dò mật khẩu.
  • Tài khoản: mật khẩu dài, không dùng lại; mỗi người một tài khoản quản trị riêng, xóa tài khoản thừa.
  • Windows Update đều đặn và gỡ role/feature không dùng như FTP, SMB mở ra Internet.

Dấu hiệu VPS bị xâm nhập và việc cần làm

Dấu hiệu thường gặp: CPU tăng cao bởi tiến trình lạ (thường là đào tiền ảo), đăng nhập từ IP lạ, cổng/dịch vụ lạ đang mở, cron hoặc SSH key lạ, lưu lượng gửi ra tăng vọt. Trên Windows, lọc sự kiện 4625 trong Event Viewer — hàng loạt đăng nhập thất bại từ nhiều IP lạ là dấu hiệu bị dò mật khẩu RDP.

Khi nghi bị xâm nhập, làm theo thứ tự sau

  1. Cô lập VPS: chặn truy cập công khai, thao tác qua console của nhà cung cấp.
  2. Lưu bằng chứng: snapshot và log phục vụ điều tra.
  3. Đổi toàn bộ mật khẩu, SSH key và khóa API liên quan.
  4. Cài lại hệ điều hành từ bản sạch, khôi phục dữ liệu từ bản sao lưu trước thời điểm bị xâm nhập.
  5. Vá lỗ hổng rồi mới mở lại dịch vụ.

Chỉ xóa file lạ rồi dùng tiếp là chưa đủ, vì kẻ tấn công có thể đã để lại đường vào khác.

Chọn nhà cung cấp VPS uy tín cũng là một lớp bảo mật

Khi chọn nhà cung cấp, hãy ưu tiên đơn vị có Web Console để vào lại VPS qua trình duyệt khi lỡ khóa SSH, có sao lưu tự động và hỗ trợ 24/7. Chẳng hạn, các gói VPS tại Tino có Web Console (noVNC) kèm sao lưu tự động theo gói — hữu ích cho người mới tự quản trị VPS.

Kết luận

Phần "ngày đầu" của checklist bảo mật VPS chỉ mất một buổi: SSH key, tường lửa, Fail2ban cho Linux; NLA, giới hạn IP RDP cho Windows. Giá trị lâu dài nằm ở khâu duy trì — cập nhật đều, đọc log, kiểm tra bản sao lưu. Nếu chưa quen dòng lệnh, đừng vội đổi cổng SSH hay bật tường lửa khi chưa biết cách vào lại VPS qua console của nhà cung cấp.

👉 Cần VPS để thực hành? Đăng ký VPS Tino tại đây

  • 🏢 Chuyên thiết kế web cho doanh nghiệp và cá nhân
  • 🤖 Giải pháp tự động hóa cho Doanh nghiệp và cá nhân
  • 📞 0925045760
  • 🌐 thietkewebdian.com
5/5 - (76 bình chọn)
Đăng ký
Thông báo về
guest
0 Bình Luận
Oldest
Newest Most Voted
Inline Feedbacks
Xem tất cả
0
Rất thích suy nghĩ của bạn, hãy bình luận.x
()
x