10 cách tăng cường bảo mật VPS Linux chống tấn công 2026

SSH vào VPS mới, việc đầu tiên bạn thấy trong log là hàng trăm lần thử đăng nhập từ IP lạ. Năm 2026, các cuộc tấn công brute-force vào SSH, khai thác lỗ hổng kernel và tấn công DDoS qua HTTP/3 vẫn là hiểm hoạ thường trực. Bài viết này tổng hợp 10 cách thiết thực để bảo mật VPS Linux chống tấn công, áp dụng được ngay trên Ubuntu 24.04 LTS, Debian 12/13, AlmaLinux 9 hoặc Rocky Linux 9. Các lệnh dưới đây đều đã kiểm tra trên môi trường mới, bạn chỉ cần chạy tuần tự.
- Tóm tắt nhanh: Khoá SSH key (ED25519) là bước hàng đầu, tiếp đến là cấu hình fail2ban giới hạn số lần retry, mở firewall chỉ port cần thiết, và bật selinux/apparmor. Audit log thường xuyên với
auditdhoặcjournalctl. Không quên cập nhật kernel hàng tháng. Chạy VPS trên nền NVMe của các nhà cung cấp uy tín giúp giảm độ trễ I/O khi load các rule bảo mật nặng.
Yêu cầu trước khi bắt đầu
- VPS chạy Ubuntu 24.04 (hoặc Debian, AlmaLinux 9).
- User sudo non-root có quyền
sudo. - Kết nối SSH tới VPS qua port 22 (tạm thời).
- Domain trỏ về VPS (nếu dùng các dịch vụ như Nginx, Certbot).
Vì sao bảo mật VPS Linux là việc làm đầu tiên?
Một máy chủ Linux mới tinh, sau 24h online, đã có thể bị quét bởi hàng ngàn botnet. Các cuộc tấn công không chỉ dừng ở brute-force SSH mà còn nhắm vào lỗ hổng dịch vụ (nginx, Docker, WordPress), DDoS tầng ứng dụng và tấn công kernel (Dirty Pipe, Stack Clash vẫn còn). Việc thiết lập một lớp phòng thủ cơ bản trước khi deploy bất kỳ ứng dụng nào là nguyên tắc sống còn. Dưới đây là 10 biện pháp thực chiến.
10 Cách tăng cường bảo mật VPS Linux chống tấn công 2026
1. Khoá SSH bằng key ED25519, tắt xác thực mật khẩu
Bước này giảm gần như hoàn toàn các cuộc tấn công brute-force qua SSH. Key ED25519 được khuyến nghị thay RSA vì tốc độ và độ an toàn cao hơn.
# Trên máy local (không phải VPS)
ssh-keygen -t ed25519 -C "thuevps-2026" -f ~/.ssh/id_thuevps
ssh-copy-id -i ~/.ssh/id_thuevps.pub user@your-server-ip
# Trên VPS
sudo nano /etc/ssh/sshd_config
# Sửa/set các dòng:
PasswordAuthentication no
PermitRootLogin prohibit-password # hoặc no
PubkeyAuthentication yes
AllowUsers user
# Sau đó restart:
sudo systemctl restart sshd
Verify: Đóng phiên SSH hiện tại, mở terminal mới và đăng nhập bằng key. Nếu không được, mở phiên cũ và kiểm tra lỗi trong log: journalctl -u sshd -n 20 --no-pager.
2. Cài đặt và cấu hình fail2ban
fail2ban giám sát log SSH và chặn IP sau N lần thất bại. Đây là lớp phòng thủ thứ hai thiết yếu.
sudo apt update && sudo apt install fail2ban -y # Ubuntu/Debian
# sudo dnf install fail2ban -y # AlmaLinux/Rocky
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
# Tìm [sshd], sửa:
enabled = true
port = ssh
maxretry = 3
bantime = 3600 # 1 giờ
findtime = 600 # 10 phút
# Khởi động:
sudo systemctl enable --now fail2ban
Verify: sudo fail2ban-client status sshd → hiện trạng thái "Status". Để test, bạn có thể đăng nhập sai 3 lần từ một IP khác, kiểm tra xem IP đó có bị chặn trong sudo iptables -L -n không.
3. Thiết lập firewall với nftables hoặc ufw/firewalld
Chỉ cho phép các port cần thiết (22, 80, 443). Dùng nftables thay iptables cho hiệu suất và cú pháp hiện đại hơn. Với Ubuntu, ufw là lớp wrapper tiện lợi.
# Dùng ufw (Ubuntu/Debian)
sudo ufw default deny incoming
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow from any to any port 22 proto tcp
sudo ufw --force enable
# Dùng nftables (khuyên dùng thay iptables)
sudo nft add table inet filter
sudo nft add chain inet filter input { type filter hook input priority 0 \; policy drop \; }
sudo nft add rule inet filter input ct state established,related accept
sudo nft add rule inet filter input iif lo accept
sudo nft add rule inet filter input tcp dport {ssh, http, https} accept
Verify: sudo ufw status verbose hoặc sudo nft list ruleset.
4. Bật SELinux / AppArmor
Các module bảo mật kernel này hạn chế thiệt hại khi một service bị xâm nhập. AppArmor đi kèm Ubuntu, SELinux có trên Debian/AlmaLinux khi cài thêm.
# Kiểm tra trạng thái:
sudo aa-status # AppArmor
sudo getenforce # SELinux: phải là Enforcing
# Nếu SELinux tắt:
sudo setenforce 1
sudo nano /etc/selinux/config
# Sửa: SELINUX=enforcing
Mẹo: Với Ubuntu, kiểm tra profile mặc định: sudo aa-status | grep "/sbin/dhclient", nếu tất cả ở "enforce" là ổn.
5. Cập nhật kernel và gói định kỳ
Các lỗ hổng kernel được vá thường xuyên. Bạn nên tự động hoá cập nhật các gói an toàn, nhưng chủ động xem xét trước khi reboot.
# Xem lịch sử cập nhật:
sudo unattended-upgrades --dry-run
# Cài tự động:
sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure --priority=low unattended-upgrades
# Kiểm tra phiên bản kernel hiện tại:
uname -r
# So sánh với bản mới nhất trên security tracker của Ubuntu.
6. Cấu hình auditd để ghi lại toàn bộ sự kiện
Khi hệ thống bị tấn công, log audit là bằng chứng đầu tiên để tìm ra đường vào của kẻ tấn công.
sudo apt install auditd -y
sudo nano /etc/audit/rules.d/audit.rules
# Thêm rule theo dõi thay đổi file config:
-w /etc/ssh/sshd_config -p wa -k ssh_config
-w /etc/passwd -p wa -k user_passwd
-w /etc/shadow -p wa -k user_shadow
# Reload rule:
sudo augenrules
sudo systemctl restart auditd
# Kiểm tra log:
sudo ausearch -k ssh_config --start recent
7. Bảo vệ GRUB bằng mật khẩu
Kẻ tấn công có quyền vật lý hoặc rescue mode có thể boot vào single-user. Mật khẩu GRUB ngăn chặn điều này.
sudo grub-mkpasswd-pbkdf2
# Nhập mật khẩu hai lần, copy hash dạng grub.pbkdf2.sha512...
sudo nano /etc/grub.d/40_custom
# Thêm dòng:
set superusers="admin"
password_pbkdf2 admin hash-mày-vừa-copy
# Cập nhật:
sudo update-grub
8. Vô hiệu hoá các dịch vụ không cần thiết
Mỗi service đang chạy là một bề mặt tấn công. Kiểm tra và tắt bỏ những thứ không dùng.
# Xem dịch vụ đang chạy:
systemctl list-units --type=service --state=running
# Tắt ví dụ (tuỳ VPS):
sudo systemctl disable --now cups
sudo systemctl disable --now avahi-daemon
sudo systemctl stop --now rpcbind
9. Bật and cấu hình Docker daemon an toàn (nếu có)
Nếu chạy Docker, đây là lỗ hổng thường bị khai thác nhất. Cấu hình user namespace, hạn chế resource và dùng containerd mới.
sudo nano /etc/docker/daemon.json
{
"userns-remap": "default",
"live-restore": true,
"log-driver": "journald",
"log-opts": { "max-file": "3", "max-size": "10m" },
"storage-driver": "overlay2",
"iptables": false
}
sudo systemctl restart docker
10. Tối ưu kernel với sysctl cho bảo mật mạng
Ngăn IP spoofing, TCP SYN flood, và các tấn công layer 3/4.
sudo nano /etc/sysctl.d/99-security.conf
# Chống spoofing:
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
# Chống SYN flood:
net.ipv4.tcp_syncookies = 1
# Giảm thời gian chờ TIME_WAIT:
net.ipv4.tcp_fin_timeout = 15
# Tăng backlog chống DDoS:
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 2048
# Áp dụng:
sudo sysctl -p /etc/sysctl.d/99-security.conf
Xử lý lỗi thường gặp
- Lỗi SSH key không được chấp nhận: Kiểm tra permission file key:
chmod 600 ~/.ssh/id_ed25519vàchmod 644 ~/.ssh/id_ed25519.pub. - fail2ban không chạy: Xem log
journalctl -u fail2ban -n 50. Thường gặp lỗi sai định dạng jail.local. - ufw không enable: Cài đặt ufw sau đó dùng
sudo ufw --force enable.
Câu hỏi thường gặp
Làm sao biết VPS Linux của tôi đã an toàn đủ chưa?
Chạy sudo lynis audit system để được báo cáo và gợi ý. Đây là tool mã nguồn mở chuẩn ngành.
Có cần cài SELinux nếu đã dùng AppArmor không?
Không cần, dùng một trong hai. AppArmor dễ cấu hình hơn cho Ubuntu, SELinux mạnh hơn nhưng phức tạp. Chọn cái phù hợp với OS của bạn.
Fail2ban có chặn được DDoS không?
Không, fail2ban chỉ chặn brute-force đăng nhập. DDoS cần giải pháp khác (Cloudflare, rate limiting ở Nginx).
Mật khẩu GRUB có bị bypass nếu có rescue mode của VPS?
Nếu nhà cung cấp VPS cho phép boot từ ISO hoặc console IPKVM, có thể. Nhưng đây vẫn là lớp phòng thủ vật lý quan trọng.
Tôi mới thuê VPS ở thueVPS, nên bắt đầu từ đâu?
Sau khi nhận root, hãy tạo user non-root, copy SSH key, chạy các lệnh ở mục 1-2-3 trước. Các VPS của thueVPS dùng NVMe và IPv4 Việt Nam, giúp latency thấp khi load các rule bảo mật.
Bài viết liên quan
- Cấu hình fail2ban chống tấn công brute-force trên Ubuntu 24.04
- Cấu hình ufw firewall cơ bản trên VPS Ubuntu
- Cấu hình iptables cơ bản cho VPS Ubuntu 24.04
- Cài đặt và tối ưu nginx làm reverse proxy trên Ubuntu 24.04


