Có một số cách đăng nhập vào máy chủ qua SSH. Các phương pháp bao gồm đăng nhập bằng mật khẩu, đăng nhập dựa trên khóa và xác thực hai yếu tố (2FA). Xác thực hai yếu tố là một loại bảo vệ tốt hơn nhiều: Trong trường hợp máy tính của bạn bị xâm nhập, kẻ tấn công sẽ vẫn cần mã truy cập để đăng nhập. Trong hướng dẫn này, bạn sẽ học cách thiết lập xác thực hai yếu tố trên Debian 9 bằng Google Authenticator và SSH.
Những thứ cần chuẩn bị:
- Máy chủ VPS Debian 9 (hoặc mới hơn).
- Người dùng không phải root có quyền truy cập sudo.
- Điện thoại thông minh (Android hoặc iOS) có cài đặt Ứng dụng Google Authenticator.).
Bước 1: Cài đặt Thư viện Google Authenticator
Bạn cần cài đặt mô-đun Thư viện Authenticator của Google có sẵn cho Debian, mô-đun này sẽ cho phép máy chủ đọc và xác thực mã.
sudo apt update
sudo apt install libpam-google-authenticator -y
Bước 2: Định cấu hình Google Authenticator cho từng người dùng
Định cấu hình mô-đun.
google-authenticator
Khi bạn chạy lệnh, bạn sẽ được hỏi một số câu hỏi nhất định. Câu hỏi đầu tiên sẽ làDo you want authentication tokens to be time-based (y/n)
Nhấn Yvà bạn sẽ nhận được mã QR, khóa bí mật, mã xác minh và các mã dự phòng khẩn cấp.
Lấy điện thoại ra và mở ứng dụng Google Authenticator. Bạn có thể quét mã QR hoặc thêm khóa bí mật để thêm mục mới. Khi bạn đã hoàn thành việc đó, hãy ghi lại các mã dự phòng và giữ chúng an toàn ở đâu đó. Trong trường hợp điện thoại của bạn bị thất lạc hoặc bị hỏng, bạn có thể sử dụng các mã đó để đăng nhập.
Đối với các câu hỏi còn lại, hãy nhấn Ykhi được yêu cầu cập nhật .google_authenticator
tệp, Yđể không cho phép sử dụng nhiều lần cùng một mã thông báo, Nđể tăng thời lượng và Ybật giới hạn tốc độ.
Bạn sẽ phải lặp lại bước này cho tất cả người dùng trên máy của mình, nếu không họ sẽ không thể đăng nhập khi bạn đã làm xong hướng dẫn này.
Bước 3: Định cấu hình SSH để sử dụng Google Authenticator
Bây giờ tất cả người dùng trên máy của bạn đã thiết lập ứng dụng trình xác thực Google của họ, đã đến lúc định cấu hình SSH để sử dụng phương thức xác thực này so với phương thức hiện tại.
Nhập lệnh sau để chỉnh sửa sshd
tệp.
sudo nano /etc/pam.d/sshd
Tìm dòng @include common-auth
và bình luận nó ra, giống như những gì được hiển thị bên dưới.
# Standard Un*x authentication.
#@include common-auth
Thêm dòng sau vào cuối tệp này.
auth required pam_google_authenticator.so
Nhấn CTRL+ X để lưu và thoát.
Tiếp theo, nhập lệnh sau để chỉnh sửa sshd_config.
sudo nano /etc/ssh/sshd_config
Tìm số hạng ChallengeResponseAuthentication
và đặt giá trị của nó thành yes
. Đồng thời tìm thuật ngữ PasswordAuthentication
, bỏ ghi chú nó và thay đổi giá trị của nó thành no
.
# Change to no to disable tunnelled clear text passwords
PasswordAuthentication no
Bước tiếp theo là thêm dòng sau vào cuối tệp.
AuthenticationMethods publickey,keyboard-interactive
Lưu và đóng tệp bằng cách nhấn CTRL+ X. Bây giờ chúng ta đã định cấu hình máy chủ SSH để sử dụng Google Authenticator, đã đến lúc khởi động lại nó.
sudo service ssh restart
Hãy thử đăng nhập lại vào máy chủ. Lần này, bạn sẽ được yêu cầu nhập mã Authenticator của mình.
ssh user@serverip
Authenticated with partial success.
Verification code:
Nhập mã mà ứng dụng của bạn tạo và bạn sẽ đăng nhập thành công.
Ghi chú
Trong trường hợp bạn bị mất điện thoại, hãy sử dụng mã dự phòng từ Bước 2. Nếu bạn bị mất mã dự phòng, bạn luôn có thể tìm thấy chúng trong .google_authenticator
trong thư mục chính của người dùng sau khi đăng nhập qua bảng điều khiển.
Phần kết luận
Có xác thực hai yếu tố cải thiện đáng kể bảo mật máy chủ VPS của bạn và cho phép bạn giúp ngăn chặn các cuộc tấn công phổ biến.