Checklist bảo mật WordPress mới chỉ là lớp ứng dụng — với VPS, bạn còn cần bảo mật ở tầng hệ điều hành. 3 công cụ dưới đây là nền tảng bảo mật VPS cơ bản mà chuyên sâu.
1. Đăng nhập SSH bằng Key thay vì mật khẩu
Mật khẩu SSH luôn có nguy cơ bị brute-force dò đoán. SSH Key (cặp khoá công khai/riêng tư) an toàn hơn nhiều vì gần như không thể đoán được.
# Trên máy cá nhân, tạo cặp key:
ssh-keygen -t ed25519 -C "email-cua-ban"
# Copy public key lên VPS:
ssh-copy-id user@ip-vps
Sau khi xác nhận đăng nhập bằng key hoạt động, tắt đăng nhập bằng mật khẩu trong /etc/ssh/sshd_config:
PasswordAuthentication no
2. Fail2ban — tự động chặn IP tấn công dò mật khẩu
Fail2ban theo dõi log đăng nhập, tự động chặn (ban) IP nào đăng nhập sai quá nhiều lần trong thời gian ngắn — giảm mạnh nguy cơ brute-force SSH.
sudo apt install fail2ban -y
sudo systemctl enable fail2ban --now
Cấu hình mặc định đã bảo vệ SSH khá tốt; có thể mở rộng thêm để bảo vệ cả nginx/wp-login.php bằng cách thêm “jail” riêng trong /etc/fail2ban/jail.local.
3. UFW Firewall — chỉ mở cổng cần thiết
sudo ufw allow 22/tcp # SSH
sudo ufw allow 80/tcp # HTTP
sudo ufw allow 443/tcp # HTTPS
sudo ufw enable
Chặn mọi cổng không cần thiết giảm đáng kể bề mặt tấn công (attack surface) — kẻ xấu không thể khai thác dịch vụ chạy trên cổng đã bị chặn từ tầng firewall.
Luôn test kết nối SSH bằng key thành công trước khi tắt đăng nhập mật khẩu hoặc bật UFW chặn cổng — nếu cấu hình sai, bạn có thể tự khoá mình khỏi VPS và phải nhờ nhà cung cấp hỗ trợ console để vào lại.
Câu hỏi thường gặp
Có control panel (cPanel) rồi thì có cần làm 3 bước này không?
Vẫn nên làm — cPanel bảo vệ tốt ở tầng ứng dụng web, nhưng SSH Key/Fail2ban/UFW bảo vệ ở tầng hệ điều hành mà control panel không tự động xử lý hết.
Lỡ tự khoá mình khỏi VPS thì làm sao?
Hầu hết nhà cung cấp VPS có tính năng “Console/VNC access” truy cập trực tiếp qua trình duyệt, không qua SSH — dùng tính năng này để vào sửa lại cấu hình đã chặn nhầm.
Có cần làm cả 3 bước cùng lúc không?
Không bắt buộc cùng lúc, nhưng nên làm đủ cả 3 vì mỗi lớp bảo vệ một khía cạnh khác nhau — SSH Key chống đoán mật khẩu, Fail2ban chống brute-force tự động, UFW giảm bề mặt tấn công tổng thể.