15+ cách bảo mật VPS Windows & Linux, Chống hack VPS hiệu quả
Mục lục
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
passwdHoặc đổi mật khẩu cho user cụ thể:
sudo passwd usernameĐổi mật khẩu Administrator trên Windows Server
Mở PowerShell với quyền Administrator:
net user Administrator MatKhauMoiNê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:
adduser deployerCấp quyền sudo:
usermod -aG sudo deployerSau đó 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:
sudo nano /etc/ssh/sshd_configTìm và chỉnh dòng:
PermitRootLogin noKhởi động lại SSH:
sudo systemctl restart sshHoặc trên một số hệ thống:
sudo systemctl restart sshdTrê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
ssh-keygen -t ed25519 -C "email@domain.com"Đẩy public key lên VPS
ssh-copy-id username@IP_VPSSau 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:
sudo nano /etc/ssh/sshd_configChỉnh:
PasswordAuthentication noKhởi động lại SSH:
sudo systemctl restart sshLư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:
sudo nano /etc/ssh/sshd_configTìm dòng:
#Port 22Đổi thành ví dụ:
Port 2288Trước khi restart SSH, cần mở port mới trên firewall:
sudo ufw allow 2288/tcpSau đó restart SSH:
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:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\PortNumberSau 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
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 statusTrong đó:
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:
sudo apt install fail2ban -yBật dịch vụ:
sudo systemctl enable fail2ban
sudo systemctl start fail2banKiểm tra trạng thái:
sudo systemctl status fail2banBạn có thể tạo file cấu hình riêng:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.localMột cấu hình SSH cơ bản:
[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
sudo apt update
sudo apt upgrade -yCài cập nhật bảo mật tự động
sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure unattended-upgradesTrê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
sudo ss -tulpnHoặc:
sudo netstat -tulpnVí dụ, nếu không dùng dịch vụ in ấn, mail server hoặc FTP, hãy tắt chúng.
sudo systemctl disable ten-dich-vu
sudo systemctl stop ten-dich-vuVớ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:
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d domain.com -d www.domain.comHoặc với Apache:
sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache -d domain.com -d www.domain.comSSL 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:
sudo ufw allow from YOUR_IP to any port 2288 proto tcpSau đó xóa rule SSH mở public nếu không cần:
sudo ufw delete allow 2288/tcpVớ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
rootcho ứ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
.sqltrong thư mục public của website.
Ví dụ tạo user MySQL riêng:
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 vSAN và VPS 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:
htopKiểm tra dung lượng ổ cứng:
df -hKiểm tra RAM:
free -mKiểm tra log đăng nhập SSH:
sudo tail -f /var/log/auth.logNế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
