15+ cách bảo mật VPS Windows & Linux, Chống hack VPS hiệu quả

Thái Duy Khang

Thái Duy Khang

Đăng ngày: 13/05/2026
thumbnail 15+ cách bảo mật vps chống hack hiệu quả

VPS (Virtual Private Server) là nơi lưu trữ website, mã nguồn, database, email, hệ thống quản trị và nhiều dữ liệu quan trọng khác. Tuy nhiên, nếu không được cấu hình bảo mật đúng cách, VPS có thể trở thành mục tiêu của bot scan, brute force, malware, ransomware hoặc các cuộc tấn công DDoS.

Ngay sau khi một VPS mới được khởi tạo, các bot tự động trên Internet có thể rà quét những cổng phổ biến như SSH port 22 hoặc RDP port 3389 để tìm điểm yếu. Vì vậy, bảo mật VPS không nên là việc làm sau cùng, mà cần được thực hiện ngay từ lúc nhận thông tin máy chủ.

Bài viết này sẽ hướng dẫn chi tiết các cách bảo mật VPS Windows và Linux, phù hợp cho người quản trị website, doanh nghiệp, lập trình viên, kỹ thuật viên hosting hoặc người mới thuê VPS lần đầu.

1. Đổi mật khẩu VPS ngay sau khi nhận máy chủ

Sau khi thuê VPS, việc đầu tiên cần làm là đổi mật khẩu mặc định do nhà cung cấp gửi. Một mật khẩu mạnh nên có:

  • Tối thiểu 12 – 16 ký tự.
  • Có chữ hoa, chữ thường, số và ký tự đặc biệt.
  • Không chứa tên miền, số điện thoại, ngày sinh.
  • Không dùng lại mật khẩu cũ.

Đổi mật khẩu trên Linux

Bash
passwd

Hoặc đổi mật khẩu cho user cụ thể:

Bash
sudo passwd username

Đổi mật khẩu Administrator trên Windows Server

Mở PowerShell với quyền Administrator:

Bash
net user Administrator MatKhauMoi

Nên sử dụng password manager để tạo và lưu mật khẩu mạnh thay vì ghi ra file text hoặc gửi qua chat.


2. Tạo user quản trị riêng, hạn chế dùng root hoặc Administrator

Không nên đăng nhập trực tiếp bằng tài khoản có quyền cao nhất trong quá trình sử dụng hằng ngày.

Trên Linux

Tạo user mới:

Bash
adduser deployer

Cấp quyền sudo:

Bash
usermod -aG sudo deployer

Sau đó kiểm tra đăng nhập bằng user mới. Khi đã chắc chắn user mới hoạt động ổn định, bạn có thể tắt đăng nhập root qua SSH.

Mở file cấu hình SSH:

Bash
sudo nano /etc/ssh/sshd_config

Tìm và chỉnh dòng:

Bash
PermitRootLogin no

Khởi động lại SSH:

Bash
sudo systemctl restart ssh

Hoặc trên một số hệ thống:

Bash
sudo systemctl restart sshd

Trên Windows Server

Bạn nên tạo một user mới thuộc nhóm Administrators, sau đó hạn chế dùng tài khoản Administrator mặc định.


3. Sử dụng SSH Key thay cho mật khẩu

Đối với VPS Linux, SSH Key là một trong những phương pháp bảo mật quan trọng nhất. Thay vì nhập mật khẩu, bạn sử dụng cặp khóa public/private key để xác thực.

Tạo SSH Key trên máy cá nhân

Bash
ssh-keygen -t ed25519 -C "email@domain.com"

Đẩy public key lên VPS

Bash
ssh-copy-id username@IP_VPS

Sau khi kiểm tra đăng nhập bằng SSH Key thành công, bạn có thể tắt đăng nhập bằng mật khẩu.

Mở file:

Bash
sudo nano /etc/ssh/sshd_config

Chỉnh:

Bash
PasswordAuthentication no

Khởi động lại SSH:

Bash
sudo systemctl restart ssh

Lưu ý: trước khi tắt PasswordAuthentication, hãy mở một phiên SSH khác để kiểm tra chắc chắn SSH Key hoạt động, tránh bị khóa khỏi VPS.


4. Đổi port SSH hoặc RDP mặc định

Đổi port không phải là lớp bảo mật chính, nhưng giúp giảm đáng kể lượng bot scan tự động vào port mặc định.

Đổi port SSH trên Linux

Mở file:

Bash
sudo nano /etc/ssh/sshd_config

Tìm dòng:

Bash
#Port 22

Đổi thành ví dụ:

Bash
Port 2288

Trước khi restart SSH, cần mở port mới trên firewall:

Bash
sudo ufw allow 2288/tcp

Sau đó restart SSH:

Bash
sudo systemctl restart ssh

Đổi port RDP trên Windows Server

RDP mặc định dùng port 3389. Microsoft có hướng dẫn chính thức cho phép thay đổi listening port của Remote Desktop bằng Registry hoặc PowerShell.

Đường dẫn Registry thường dùng:

Bash
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\PortNumber

Sau khi đổi port, cần mở port mới trong Windows Defender Firewall và restart máy chủ.


5. Cấu hình firewall cho VPS

Firewall giúp kiểm soát cổng nào được phép truy cập từ bên ngoài. Với Ubuntu, UFW là công cụ phổ biến vì dễ dùng và được thiết kế để đơn giản hóa việc cấu hình firewall.

Cấu hình UFW cơ bản trên Ubuntu/Debian

Bash
sudo apt update
sudo apt install ufw -y<br><br>sudo ufw default deny incoming
sudo ufw default allow outgoing

sudo ufw allow 2288/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

sudo ufw enable
sudo ufw status

Trong đó:

  • 2288/tcp: port SSH mới.
  • 80/tcp: HTTP.
  • 443/tcp: HTTPS.

Nếu bạn dùng database như MySQL, PostgreSQL hoặc Redis, không nên mở public ra Internet nếu không thật sự cần thiết.


6. Cài Fail2Ban chống brute force

Fail2Ban giúp quét log hệ thống và ban IP có nhiều lần đăng nhập thất bại bằng cách cập nhật rule firewall.

Cài đặt Fail2Ban:

Bash
sudo apt install fail2ban -y

Bật dịch vụ:

Bash
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

Kiểm tra trạng thái:

Bash
sudo systemctl status fail2ban

Bạn có thể tạo file cấu hình riêng:

Bash
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Một cấu hình SSH cơ bản:

Bash
[sshd]
enabled = true
port = 2288
maxretry = 5
bantime = 3600
findtime = 600

Ý nghĩa:

  • maxretry = 5: sai 5 lần sẽ bị ban.
  • bantime = 3600: ban trong 1 giờ.
  • findtime = 600: tính số lần sai trong 10 phút.

7. Cập nhật hệ điều hành và phần mềm định kỳ

Các bản cập nhật thường bao gồm bản vá bảo mật quan trọng. Nếu bạn không cập nhật VPS trong thời gian dài, máy chủ có thể tồn tại lỗ hổng đã bị công khai.

Cập nhật Ubuntu/Debian

Bash
sudo apt update
sudo apt upgrade -y

Cài cập nhật bảo mật tự động

Bash
sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure unattended-upgrades

Trên Windows Server

Nên bật Windows Update, đặc biệt là các bản vá bảo mật quan trọng. Nếu máy chủ chạy dịch vụ production, hãy lên lịch update vào thời gian ít truy cập để tránh gián đoạn.


8. Tắt các dịch vụ và port không cần thiết

Mỗi dịch vụ đang chạy là một bề mặt tấn công tiềm năng. Bạn nên kiểm tra VPS đang mở những port nào.

Kiểm tra port đang lắng nghe trên Linux

Bash
sudo ss -tulpn

Hoặc:

Bash
sudo netstat -tulpn

Ví dụ, nếu không dùng dịch vụ in ấn, mail server hoặc FTP, hãy tắt chúng.

Bash
sudo systemctl disable ten-dich-vu
sudo systemctl stop ten-dich-vu

Với Windows Server, nên kiểm tra các dịch vụ không cần thiết trong Services, đồng thời hạn chế bật SMB/File Sharing nếu không sử dụng.


9. Không sử dụng source code, theme, plugin nulled

Đây là lỗi rất phổ biến khi vận hành website WordPress, Laravel, PHP hoặc mã nguồn thương mại.

Các file nulled/crack có thể chứa:

  • Webshell.
  • Backdoor.
  • Mã chuyển hướng SEO spam.
  • Mã đánh cắp cookie.
  • Mã đào coin.
  • Script tạo user admin trái phép.

Nếu website chạy trên VPS bị nhiễm mã độc, hacker có thể leo thang quyền, chiếm database, gửi spam hoặc biến VPS thành botnet.


10. Cài SSL cho website

SSL giúp mã hóa dữ liệu truyền giữa trình duyệt và máy chủ. Với website, bạn nên dùng HTTPS thay vì HTTP.

Nếu dùng Nginx/Apache, có thể cài SSL miễn phí bằng Let’s Encrypt.

Ví dụ với Certbot trên Ubuntu:

Bash
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d domain.com -d www.domain.com

Hoặc với Apache:

Bash
sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache -d domain.com -d www.domain.com

SSL không thể chống hack toàn bộ VPS, nhưng là lớp bảo mật bắt buộc cho website, trang đăng nhập, API và khu vực thanh toán.


11. Bật xác thực hai lớp MFA/2FA

Nếu hệ thống có trang quản trị, hãy bật xác thực hai lớp cho:

  • WordPress Admin.
  • cPanel.
  • DirectAdmin.
  • Plesk.
  • Cloudflare.
  • Tài khoản nhà cung cấp VPS.
  • Email quản trị.
  • GitHub/GitLab/Bitbucket.

Ngay cả khi mật khẩu bị lộ, hacker vẫn khó đăng nhập nếu không có mã xác thực từ ứng dụng như Google Authenticator, Authy hoặc Microsoft Authenticator.


12. Giới hạn IP được phép đăng nhập

Nếu bạn có IP cố định, nên giới hạn SSH/RDP chỉ cho phép IP của bạn truy cập.

Ví dụ với UFW:

Bash
sudo ufw allow from YOUR_IP to any port 2288 proto tcp

Sau đó xóa rule SSH mở public nếu không cần:

Bash
sudo ufw delete allow 2288/tcp

Với Windows Server, bạn có thể cấu hình Windows Defender Firewall để chỉ cho phép IP cụ thể truy cập RDP.

Đây là một trong những cách rất hiệu quả để giảm rủi ro brute force.


13. Bảo mật database

Database thường chứa thông tin quan trọng như tài khoản khách hàng, đơn hàng, email, mật khẩu đã hash, nội dung website.

Một số nguyên tắc bảo mật database:

  • Không mở MySQL/PostgreSQL public nếu không cần.
  • Không dùng user root cho ứng dụng.
  • Tạo user database riêng cho từng website.
  • Chỉ cấp quyền cần thiết.
  • Đặt mật khẩu database mạnh.
  • Backup database định kỳ.
  • Không lưu file backup .sql trong thư mục public của website.

Ví dụ tạo user MySQL riêng:

Bash
CREATE DATABASE website_db;
CREATE USER 'website_user'@'localhost' IDENTIFIED BY 'MatKhauManh';
GRANT ALL PRIVILEGES ON website_db.* TO 'website_user'@'localhost';
FLUSH PRIVILEGES;

14. Thiết lập backup tự động

Backup là lớp bảo vệ cuối cùng khi VPS bị hack, lỗi ổ cứng, xóa nhầm dữ liệu hoặc bị ransomware.

Một chiến lược backup tốt nên có:

  • Backup hằng ngày hoặc hằng tuần.
  • Lưu backup ra nơi khác, không chỉ lưu trên cùng VPS.
  • Có ít nhất 2 – 3 bản backup gần nhất.
  • Kiểm tra khả năng restore định kỳ.
  • Mã hóa file backup nếu chứa dữ liệu nhạy cảm.

Nơi có thể lưu backup:

  • Google Drive
  • Amazon S3
  • Cloudflare R2
  • Backblaze B2
  • VPS backup riêng
  • Dịch vụ backup của nhà cung cấp

Nguyên tắc quan trọng: backup chưa được kiểm tra restore thì chưa được xem là backup an toàn.

Với dịch vụ VPS vSANVPS giá rẻ của EZ TECH đều có:

  • Backup hàng ngày 3 cấp độ: snapshot – offsite – cold storage
  • Lưu trữ backup đến 7 ngày gần nhất
  • Khôi phục dữ liệu dễ dàng chỉ trong vài phút
  • Giảm thiểu tối đa rủi ro lỗi hệ thống, bị mã độc hoặc thao tác sai

15. Giám sát tài nguyên và log hệ thống

Giám sát giúp phát hiện sớm dấu hiệu bất thường như CPU tăng đột ngột, RAM đầy, ổ cứng tăng nhanh hoặc traffic bất thường.

Một số công cụ phổ biến:

  • Netdata
  • Zabbix
  • Prometheus + Grafana
  • Uptime Kuma
  • Glances
  • htop

Kiểm tra tài nguyên nhanh trên Linux:

Bash
htop

Kiểm tra dung lượng ổ cứng:

Bash
df -h

Kiểm tra RAM:

Bash
free -m

Kiểm tra log đăng nhập SSH:

Bash
sudo tail -f /var/log/auth.log

Nếu thấy nhiều IP đăng nhập thất bại, bạn nên kiểm tra lại firewall, Fail2Ban, SSH Key và chính sách đăng nhập.


16. Sử dụng Cloudflare hoặc dịch vụ chống DDoS bảo mật VPS

Nếu VPS chạy website, nên dùng Cloudflare hoặc các dịch vụ reverse proxy/CDN để giảm rủi ro tấn công DDoS tầng HTTP, che IP thật của máy chủ và lọc traffic xấu.

Một số lợi ích:

  • Ẩn IP gốc của VPS.
  • Giảm tải cho máy chủ.
  • Có WAF bảo vệ website.
  • Chặn bot cơ bản.
  • Hỗ trợ SSL.
  • Cache nội dung tĩnh.

Lưu ý: Cloudflare không thay thế hoàn toàn firewall ở VPS. Bạn vẫn cần cấu hình firewall, SSH Key, backup và cập nhật hệ thống.


17. Chọn nhà cung cấp VPS uy tín

Một VPS an toàn không chỉ phụ thuộc vào cấu hình bên trong máy chủ mà còn liên quan đến hạ tầng của nhà cung cấp.

Nên ưu tiên nhà cung cấp có:

  • Hạ tầng ổn định.
  • Có Anti-DDoS.
  • Có firewall/security group.
  • Có snapshot hoặc backup tự động.
  • Có hỗ trợ kỹ thuật nhanh.
  • Có hệ thống quản lý VPS rõ ràng.
  • Có chính sách bảo mật minh bạch.

Nếu dùng VPS cho website doanh nghiệp, thương mại điện tử hoặc hệ thống khách hàng, không nên chọn dịch vụ quá rẻ nhưng thiếu hỗ trợ, thiếu backup và không có khả năng xử lý sự cố. Bạn có thể tham khảo dịch vụ VPS vSAN của EZ TECH

Đánh giá bài viết này

Tác giả

Thái Duy Khang
Thái Duy Khang Thiết kế & lập trình tại EZ TECH
Xin chào! Tôi là Thái Duy Khang, Senior Designer chuyên về UX/UI, với gần 10 năm kinh nghiệm trong lĩnh vực thiết kế đồ họa và hơn 7 năm tập trung vào thiết kế trải nghiệm người dùng cũng như giao diện web. Ngoài thiết kế, tôi còn có nền tảng vững chắc về lập trình Front-end (HTML, CSS, JavaScript) và WordPress, giúp tôi dễ dàng phối hợp giữa tư duy sáng tạo và khả năng triển khai thực tế. Hiện tại, tôi đang đảm nhiệm vai trò Thiết kế & Lập trình tại công ty công nghệ EZ (EZ TECH), nơi tôi tham gia vào việc xây dựng giao diện, tối ưu trải nghiệm người dùng và phát triển các sản phẩm web hoàn chỉnh.
Theo dõi
Thông báo của
guest
0 Comments
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất
Phản hồi nội tuyến
Xem tất cả bình luận