Cách bảo mật SSH cho VPS Linux

Tác giả: Đội ngũ kỹ thuật ONIE · Cập nhật 12 tháng 11, 2026 · Đọc 3 phút

VPS có IP công khai sẽ nhận các lần dò đăng nhập tự động chỉ vài phút sau khi lên mạng. Các bước dưới đây giúp SSH khó bị tấn công hơn nhiều. Bài viết dành cho Ubuntu hoặc Debian; nếu chưa có máy chủ, bạn có thể thuê VPS Linux và bắt đầu từ một bản cài sạch. Hãy giữ phiên SSH hiện tại cho đến khi bạn thử xong cấu hình mới ở một cửa sổ thứ hai.

1. Tạo người dùng thường có quyền sudo

adduser deploy
usermod -aG sudo deploy

2. Dùng khoá SSH thay cho mật khẩu

Trên máy tính của bạn:

ssh-keygen -t ed25519 -C "ban@example.com"
ssh-copy-id deploy@IP_MAY_CHU
ssh deploy@IP_MAY_CHU

Đăng nhập thử một lần bằng khoá để chắc chắn nó hoạt động trước khi tắt mật khẩu.

3. Tắt đăng nhập bằng mật khẩu và bằng root

Tạo /etc/ssh/sshd_config.d/99-hardening.conf:

PasswordAuthentication no
PermitRootLogin no
PubkeyAuthentication yes
MaxAuthTries 3

Kiểm tra cú pháp rồi nạp lại dịch vụ. Tên dịch vụ là ssh trên Ubuntu và Debian, sshd trên hệ RHEL:

sudo sshd -t && sudo systemctl reload ssh

Mở một terminal thứ hai và đăng nhập lại. Chỉ khi đó mới đóng phiên cũ.

4. Bật firewall

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status verbose

Chỉ mở những cổng cần thiết, ví dụ 80 và 443 cho máy chủ web. Bạn cũng có thể giới hạn SSH chỉ cho IP của mình bằng quy tắc firewall trong bảng điều khiển cloud.

5. Chặn đăng nhập sai lặp lại bằng Fail2ban

sudo apt install -y fail2ban

Tạo /etc/fail2ban/jail.local:

[sshd]
enabled = true
maxretry = 5
findtime = 10m
bantime = 1h
sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd

6. Tự động cài bản vá bảo mật

sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades

7. Bổ sung tuỳ chọn

  • Đổi cổng SSH giảm bớt log rác nhưng tự nó không phải biện pháp bảo mật.
  • Đặt passphrase cho khoá riêng và lưu một bản sao ở nơi an toàn.
  • Xem lịch sử đăng nhập bằng last và sudo journalctl -u ssh --since today.
  • Chụp snapshot sau khi cấu hình xong để có thể khôi phục về trạng thái sạch.

Nếu bị khoá ngoài, hãy dùng console trên trình duyệt trong bảng điều khiển cloud để đăng nhập và sửa cấu hình. Bài chống DDoS cho VPS nói về lớp bảo vệ tiếp theo.

Câu hỏi thường gặp

Tắt đăng nhập root có an toàn không?

An toàn, nếu bạn đã tạo user sudo và thử khoá của nó hoạt động. Bạn vẫn chạy được lệnh quản trị bằng sudo.

Chỉ dùng khoá thì có cần Fail2ban không?

Không bắt buộc. Khi đã tắt mật khẩu, dò mật khẩu không thể thành công, nhưng Fail2ban giúp giảm log rác và tải.

Nếu mất khoá SSH thì sao?

Dùng console trong bảng điều khiển cloud để đăng nhập, thêm khoá công khai mới vào ~/.ssh/authorized_keys và xoá khoá cũ.

Nguồn và tài liệu tham khảo

Hướng dẫn VPS khác