Skip to content Skip to main navigation Skip to footer

Cấu hình SSH Two Factor Authentication trên Ubuntu 22.04

Cấu hình SSH Two Factor Authentication trên Ubuntu 22.04 với 3 bước vô cùng đơn giản..

Giới thiệu

SSH Two Factor Authentication hay còn gọi là Xác thực 2 bước cho dịch vụ SSH, với tính năng này người dùng có thể gia tăng tính bảo mật cho máy chủ của mình khỏi các nguy cơ tấn công thông qua giao thức SSH. Và ở bài viết này AZDIGI sẽ hướng dẫn bạn cách cài đặt Google Authenticator và cấu hình Two Factor Authentication khi SSH vào hệ thống sử dụng Ubuntu 22.04.

Hướng dẫn cài đặt

Bước 1: Cài đặt và cấu hình Google Authenticator

  • Để cài đặt Google Authenticator, các bạn hãy truy cập vào máy chủ Ubuntu 22.04 của mình, và chạy lệnh:
AZDIGI Tutorial
sudo apt install libpam-google-authenticator -y
    
Cấu hình SSH Two Factor Authentication trên Ubuntu 22.04
  • Tạo mã bảo mật

Để tạo mã khóa bảo mật, các bạn gõ lệnh

AZDIGI Tutorial
google-authenticator
    

Sau khi gõ lệnh trên, kết quả sẽ xuất hiện một đường link và mã QR như hình bên dưới.

Cấu hình SSH Two Factor Authentication trên Ubuntu 22.04

Nếu hình to quá, thì các bạn có thể copy link đó và dán ra trình duyệt để hiển thị mã QR dễ nhìn hơn như bên dưới

Cấu hình SSH Two Factor Authentication trên Ubuntu 22.04

Bây giờ, bạn hãy lấy điện thoại hoặc thiết bị đã được cài đặt sẵn App Google Authenticator và scan mã QR trên. Sau khi scan xong bạn sẽ nhận được một mã code gồm 6 chữ số tương tự như hình, và 6 số này sẽ liên tục được thay đổi sau mỗi 30s. Và số chỉ có hiệu lực khi nó hiện màu xanh như hình, ngược lại nếu là màu đỏ thì sẽ không có hiệu lực.

Cấu hình SSH Two Factor Authentication trên Ubuntu 22.04

Sau khi đã có 6 số trên , bạn tiến hành 6 số đó vào phần thiết lập máy chủ để hoàn tất cài đặt.

Cấu hình SSH Two Factor Authentication trên Ubuntu 22.04

Sau khi nhập code thành công, bạn sẽ nhận được một số code khẩn cấp và cần xác thực một số thông tin bên dưới.

Code confirmed
Your emergency scratch codes are:
  32788307
  11480031
  78992160
  60171886
  58985147

Do you want me to update your "/root/.google_authenticator" file? (y/n) y

Do you want to disallow multiple uses of the same authentication
token? This restricts you to one login about every 30s, but it increases
your chances to notice or even prevent man-in-the-middle attacks (y/n) y

By default, a new token is generated every 30 seconds by the mobile app.
In order to compensate for possible time-skew between the client and the server,
we allow an extra token before and after the current time. This allows for a
time skew of up to 30 seconds between authentication server and client. If you
experience problems with poor time synchronization, you can increase the window
from its default size of 3 permitted codes (one previous code, the current
code, the next code) to 17 permitted codes (the 8 previous codes, the current
code, and the 8 next codes). This will permit for a time skew of up to 4 minutes
between client and server.
Do you want to do so? (y/n) y

If the computer that you are logging into isn't hardened against brute-force
login attempts, you can enable rate-limiting for the authentication module.
By default, this limits attackers to no more than 3 login attempts every 30s.
Do you want to enable rate-limiting? (y/n) y

Bước 2: Cấu hình OpenSSH sử dụng 2FA

  • Chỉnh sửa file cấu hình tại /etc/pam.d/sshd

Trước tiên bạn hãy backup file với lệnh

AZDIGI Tutorial
sudo cp /etc/pam.d/sshd /etc/pam.d/sshd.bak
    

Tiếp đó bạn chỉnh sửa file với lệnh

AZDIGI Tutorial
sudo nano /etc/pam.d/sshd 
    

Thêm nội dung bên dưới vào cuối file và save lại.

auth required pam_google_authenticator.so nullok
auth required pam_permit.so
Cấu hình SSH Two Factor Authentication trên Ubuntu 22.04

  • Chỉnh sửa file cấu hình tại /etc/ssh/sshd_config

Trước tiên bạn hãy backup file với lệnh

AZDIGI Tutorial
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
    

Tiếp đó bạn chỉnh sửa file với lệnh

AZDIGI Tutorial
sudo nano /etc/ssh/sshd_config
    

Tiếp đó bạn tìm đến giá trị ChallengeResponseAuthentication và set nó thành yes, nếu chưa có bạn có thể thêm vào thủ công.

Cấu hình SSH Two Factor Authentication trên Ubuntu 22.04

Khởi động lại dịch vụ

AZDIGI Tutorial
sudo systemctl restart sshd.service
    

Bước 3: SSH vào máy chủ kiểm tra

Sau khi cấu hình hoàn tất các bước, bây giờ bạn tiến hành SSH vào máy chủ Ubuntu 22.04 của mình để xem kết quả. Và như hình bên dưới, các bạn có thể thấy sau khi mình nhập Passwd root của VPS, hệ thống sẽ yêu cầu nhập tiếp Code xác thực 2 lớp. Bây giờ bạn chỉ cần kiểm tra App Google Authenticator để lấy Code và nhập vào là có thể SSH thành công.

Cấu hình SSH Two Factor Authentication trên Ubuntu 22.04

Các bạn có thể tham khảo thêm các hướng dẫn sử dụng khác tại link bên dưới:

Nếu các bạn cần hỗ trợ các bạn có thể liên hệ bộ phận hỗ trợ theo các cách bên dưới:

Bình chọn lsvr_kba