Hướng Dẫn Bảo Mật VPS Cho Người Mới 2026: 10 Bước Cơ Bản Không Thể Bỏ Qua
Bạn vừa thuê VPS, cài xong Ubuntu, triển khai website — mọi thứ chạy ngon. Nhưng bạn có biết: một VPS mới tinh không cấu hình bảo mật sẽ bị bot quét và tấn công brute-force trong vòng vài phút sau khi online? Thống kê từ Cloudflare: 32% traffic internet là bot độc hại. Đừng để server của bạn thành miếng mồi. 10 bước dưới đây — làm trong 30 phút, bảo vệ VPS cả năm.
Tổng Quan: Tại Sao Bảo Mật VPS Lại Quan Trọng?
10 bước dưới đây được sắp xếp theo thứ tự ưu tiên — từ những thay đổi có tác động lớn nhất đến các lớp bảo vệ bổ sung. Mỗi bước đều có lệnh cụ thể, giải thích rõ ràng, và những cạm bẫy cần tránh. Bạn không cần phải là chuyên gia sysadmin để bảo vệ VPS của mình — chỉ cần làm theo từng bước.
Bước 1: Đổi Port SSH Mặc Định (Port 22)
Port 22 là mục tiêu số 1 của bot scan. Đổi sang port khác giảm 95% tấn công tự động ngay lập tức.
# Ubuntu/Debian
sudo nano /etc/ssh/sshd_config
# Tìm dòng #Port 22, sửa thành:
Port 2222
# Restart SSH
sudo systemctl restart sshd
Quan trọng: Đừng logout khỏi session hiện tại trước khi test port mới! Mở terminal thứ 2 test kết nối: ssh -p 2222 user@your-ip. Nếu OK thì mới đóng session cũ.
| Port SSH | Lượt tấn công/ngày | Rủi ro |
|---|---|---|
| 22 (mặc định) | 5,000 - 50,000 | Cao |
| 2222 / 22222 | 50 - 500 | Thấp |
| Port random >10000 | < 10 | Rất thấp |
Bước 2: Dùng SSH Key Thay Vì Mật Khẩu
Mật khẩu có thể bị brute-force. SSH key dài 2048-bit thì bất khả thi về mặt tính toán. Đây là lớp bảo vệ mạnh nhất cho SSH.
# Trên máy local (Mac/Linux):
ssh-keygen -t ed25519 -C "your-email@example.com"
# Copy public key lên VPS:
ssh-copy-id -p 2222 user@your-vps-ip
# Vô hiệu hóa đăng nhập bằng password:
sudo nano /etc/ssh/sshd_config
PasswordAuthentication no
PermitRootLogin no
sudo systemctl restart sshd
Bước 3: Cài Đặt & Cấu Hình Firewall (UFW)
Tường lửa là lớp phòng thủ đầu tiên. UFW (Uncomplicated Firewall) cực kỳ đơn giản, ai cũng dùng được.
# Cài UFW
sudo apt install ufw -y
# Thiết lập rules cơ bản
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 2222/tcp # SSH port mới
sudo ufw allow 80/tcp # HTTP
sudo ufw allow 443/tcp # HTTPS
# Bật firewall
sudo ufw enable
sudo ufw status verbose
Tuyệt đối: Allow SSH port trước khi enable UFW. Quên bước này → tự khóa mình ngoài server. Kiểm tra bằng sudo ufw status numbered trước khi enable.
Bước 4: Cài Fail2Ban Chống Brute-Force
Fail2ban theo dõi log, phát hiện IP đăng nhập sai nhiều lần và tự động chặn IP đó bằng firewall.
# Cài đặt
sudo apt install fail2ban -y
# Copy config mặc định
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
# Cấu hình SSH protection:
[sshd]
enabled = true
port = 2222
maxretry = 3
bantime = 3600
findtime = 600
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
# Kiểm tra trạng thái
sudo fail2ban-client status sshd
| Tham số | Ý nghĩa | Khuyến nghị |
|---|---|---|
| maxretry | Số lần sai tối đa | 3 |
| bantime | Thời gian chặn (giây) | 3600 (1 giờ) |
| findtime | Khung thời gian đếm lỗi | 600 (10 phút) |
Bước 5: Tự Động Cập Nhật Bảo Mật
Lỗ hổng được phát hiện mỗi ngày. Tự động cài security update đảm bảo bạn không bỏ sót bản vá quan trọng.
# Ubuntu/Debian
sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure --priority=low unattended-upgrades
# Kiểm tra đã bật chưa
sudo systemctl status unattended-upgrades
Bước 6: Tạo User Riêng, Không Dùng Root
Root là target mặc định của mọi cuộc tấn công. Tạo user thường + sudo là best practice.
sudo adduser deployer
sudo usermod -aG sudo deployer
# Kiểm tra
su - deployer
sudo whoami # Phải in ra "root"
Bước 7: Vô Hiệu Hóa IPv6 Nếu Không Dùng
Nhiều VPS provider gán IPv6 nhưng bạn chỉ dùng IPv4. IPv6 để mở = thêm một bề mặt tấn công. Tắt nếu không cần.
sudo nano /etc/sysctl.conf
# Thêm vào cuối file:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
sudo sysctl -p
Bước 8: Giám Sát Log Định Kỳ
Bảo mật không phải "set and forget". Cần kiểm tra log để phát hiện bất thường.
# Kiểm tra ai đang đăng nhập
who
last -20
# Log SSH attempts
sudo grep "Failed password" /var/log/auth.log | tail -20
# Log fail2ban
sudo zgrep "Ban" /var/log/fail2ban.log* | tail -20
Bước 9: Backup Tự Động — Cứu Cánh Cuối Cùng
Dù bảo mật tốt đến đâu, luôn có rủi ro: lỡ tay xóa, ransomware, ổ cứng die. Backup là insurance policy của bạn.
# Script backup đơn giản
sudo nano /usr/local/bin/backup.sh
#!/bin/bash
tar -czf /backup/www-$(date +%Y%m%d).tar.gz /var/www
tar -czf /backup/db-$(date +%Y%m%d).tar.gz /var/lib/mysql
find /backup -name "*.tar.gz" -mtime +7 -delete
# Cron hàng ngày 3AM
sudo crontab -e
0 3 * * * /bin/bash /usr/local/bin/backup.sh
Bước 10: Cài Đặt & Cấu Hình 2FA Cho SSH
Xác thực 2 yếu tố cho SSH — kể cả hacker có private key, không có mã OTP thì vẫn không vào được.
sudo apt install libpam-google-authenticator -y
google-authenticator # Làm theo hướng dẫn, quét QR
sudo nano /etc/pam.d/sshd
# Thêm dòng:
auth required pam_google_authenticator.so
sudo nano /etc/ssh/sshd_config
ChallengeResponseAuthentication yes
sudo systemctl restart sshd
Bảng So Sánh: VPS Đã Bảo Mật vs Chưa Bảo Mật
| Tiêu chí | VPS Mặc Định | VPS Sau 10 Bước |
|---|---|---|
| SSH brute-force | Hàng nghìn lần/ngày | 0 — fail2ban chặn hết |
| Port scan | Port 22, 80, 443 mở | Chỉ port cần thiết |
| Cập nhật bảo mật | Manual (dễ quên) | Tự động mỗi ngày |
| Backup | Không có | Tự động mỗi đêm |
| Đăng nhập root | Có | Bị khóa |
| 2FA | Không | Có — OTP 6 số |
Câu Hỏi Thường Gặp
Làm hết 10 bước mất bao lâu?
Khoảng 30-40 phút nếu làm lần đầu. Từ lần thứ 2: 15 phút. Có thể script hóa toàn bộ.
Bước nào quan trọng nhất?
SSH key (bước 2) + fail2ban (bước 4). Chỉ 2 bước này đã chặn 99% tấn công tự động. Nhưng đừng dừng ở đó — backup (bước 9) cứu bạn khi mọi thứ khác thất bại.
VPS giá rẻ có bảo mật được không?
Tất cả 10 bước trên đều miễn phí, chạy được trên VPS 1GB RAM. Bảo mật không phụ thuộc vào giá VPS — nó phụ thuộc vào bạn có làm hay không.
Bắt Đầu Với VPS Bảo Mật Ngay Hôm Nay
VPS SSD tốc độ cao, IPv4 riêng, cài sẵn Ubuntu 24.04 — sẵn sàng cho 10 bước bảo mật trên
Thuê VPS Tại TrumVPS →Xem thêm: Cài PostgreSQL + Redis Trên VPS · VPS Cho Lập Trình Viên · Hướng Dẫn Deploy Website Lên VPS