Bảo mật mật khẩu SSH

Bảo mật mật khẩu SSH là một yếu tố rất quan trọng để bảo vệ máy chủ của bạn khỏi các cuộc tấn công từ bên ngoài. Dưới đây là một số biện pháp mà bạn có thể áp dụng để bảo mật mật khẩu SSH của mình:

1. Sử dụng SSH Key thay vì mật khẩu

Sử dụng khóa SSH (public/private key pair) là một cách an toàn hơn nhiều so với việc sử dụng mật khẩu để đăng nhập vào server.

  • Tạo SSH Key Pair: Trên máy tính của bạn, bạn có thể tạo một SSH key pair (cặp khóa công khai và riêng tư) bằng lệnh:
    Điều này sẽ tạo ra một cặp khóa SSH, trong đó khóa công khai sẽ được tải lên máy chủ của bạn và khóa riêng tư sẽ được lưu trên máy tính của bạn.
  • Cài đặt khóa công khai lên server: Sau khi tạo SSH key pair, bạn cần tải khóa công khai lên server. Một cách dễ dàng là sử dụng lệnh ssh-copy-id:
    Lệnh này sẽ thêm khóa công khai vào file ~/.ssh/authorized_keys trên server.
  • Tắt đăng nhập bằng mật khẩu: Để ngừng cho phép đăng nhập bằng mật khẩu, bạn cần thay đổi cấu hình của SSH. Mở file cấu hình SSH:
    Thay đổi các tham số sau:

    • PasswordAuthentication no
    • ChallengeResponseAuthentication no

    Sau đó, khởi động lại dịch vụ SSH:

    Bây giờ, server chỉ cho phép đăng nhập thông qua SSH key.

2. Cấu hình bảo mật mạnh cho SSH

Ngoài việc sử dụng SSH keys, bạn có thể áp dụng thêm các biện pháp bảo mật sau:

  • Đổi cổng SSH mặc định: Mặc định, SSH chạy trên cổng 22, điều này dễ dàng bị tấn công bởi các bot hoặc hacker. Bạn có thể thay đổi cổng SSH sang một cổng khác để giảm nguy cơ bị tấn công.

    Mở file cấu hình SSH:

    Tìm dòng #Port 22 và thay đổi thành cổng khác, ví dụ Port 2222.

    Sau đó, khởi động lại SSH:

  • Sử dụng Firewall (Tường lửa): Thiết lập firewall để chỉ cho phép các IP đáng tin cậy kết nối vào server qua SSH. Ví dụ, nếu bạn sử dụng ufw, bạn có thể chỉ cho phép kết nối SSH từ một địa chỉ IP nhất định:

  • Sử dụng Fail2Ban: Fail2Ban là một công cụ bảo mật giúp bảo vệ server khỏi các cuộc tấn công brute force (tấn công thử mật khẩu) bằng cách chặn các IP cố gắng đăng nhập quá nhiều lần sai. Bạn có thể cài đặt và cấu hình Fail2Ban như sau:

    Fail2Ban sẽ tự động chặn các IP cố gắng đăng nhập sai quá nhiều lần.

3. Kiểm tra và tạo mật khẩu mạnh

Nếu bạn vẫn muốn sử dụng mật khẩu thay vì SSH key, hãy đảm bảo rằng mật khẩu của bạn là đủ mạnh:

  • Mật khẩu nên có ít nhất 12 ký tự, kết hợp giữa chữ hoa, chữ thường, số và ký tự đặc biệt.
  • Tránh sử dụng mật khẩu dễ đoán hoặc thông dụng (ví dụ: password123, admin, v.v.).
  • Bạn có thể sử dụng các công cụ như pwgen để tạo mật khẩu mạnh hoặc sử dụng trình quản lý mật khẩu để lưu trữ mật khẩu an toàn.

4. Giới hạn người dùng có quyền truy cập SSH

Chỉ cho phép những người dùng cần thiết mới có quyền truy cập SSH vào server. Mở file cấu hình SSH:

Thêm hoặc chỉnh sửa dòng sau để chỉ cho phép một số người dùng được phép đăng nhập SSH:

Sau đó, khởi động lại SSH:

5. Bảo vệ SSH bằng Two-Factor Authentication (2FA)

Cài đặt xác thực hai yếu tố (2FA) cho SSH để tăng cường bảo mật. Bạn có thể sử dụng Google Authenticator hoặc các công cụ tương tự để yêu cầu mã xác nhận mỗi khi đăng nhập.

  • Cài đặt pam_google_authenticator:
  • Thêm dòng sau vào cuối file cấu hình PAM của SSH:
    Thêm dòng này vào cuối:
    Sau đó, cấu hình Google Authenticator cho người dùng:

Sau khi thiết lập xong, khi đăng nhập vào server qua SSH, bạn sẽ cần nhập mã xác thực từ ứng dụng Google Authenticator ngoài mật khẩu hoặc khóa SSH.

6. Giới hạn số lần thử đăng nhập

Bạn có thể giới hạn số lần đăng nhập sai để tránh tấn công brute force. Đây là một tính năng có thể được cấu hình trong file sshd_config:

  • MaxAuthTries: Giới hạn số lần thử đăng nhập sai.

Sau khi thay đổi, khởi động lại SSH:


Áp dụng những biện pháp trên sẽ giúp bạn bảo mật SSH và giảm nguy cơ bị tấn công. Mỗi biện pháp đóng góp một phần vào việc bảo vệ máy chủ của bạn.

Chào ! Bạn thấy nội dung này thế nào?

Để lại một bình luận

×







    Vui lòng nhập email trước khi lấy OTP.