Skip to content Skip to main navigation Skip to footer

Cấu hình Google Authenticator SSH trên CentOS 7

Cấu hình Google Authenticator SSH trên CentOS 7 hay còn gọi là xác thực 2 lớp mang lại tính an toàn và bảo mật hơn cho việc quản trị VPS cũng như dữ liệu của bạn. Ở bài viết này AZDIGI sẽ hướng dẫn bạn cách kích hoạt xác thực 2 lớp khi SSH vào hệ thống của bạn.

I. Tổng quan

Xác thực 2 lớp là gì?

Bảo mật 2 lớp, hay còn gọi tắt là 2FA (Two-Factor Authentication) là việc thêm một bước vào hoạt động đăng nhập thông thường của bạn. Nếu không có 2FA, bạn sẽ chỉ nhập tên người dùng và mật khẩu để đăng nhập vào hệ thống, tài khoản của mình. Phần mật khẩu sẽ là tầng bảo vệ duy nhất cho tài khoản. Trong khi đó, lớp bảo mật thứ hai được thêm vào sẽ giúp bạn bảo vệ tài khoản tốt hơn.

Tại sao nên dùng bảo mật 2 lớp?

Bảo mật 2 lớp là cách tốt nhất để bảo vệ bạn khỏi những vụ tấn công đánh cắp các thông tin nhạy cảm về tài khoản người dùng, giả mạo các trang đăng nhập cũng như các cách thức chiếm dụng tài khoản khác. Với bảo mật 2 lớp bạn có thể yên tâm hơn nếu vô tình thông tin tài khoản của bạn bị lộ ra ngoài, khi đó người khác cũng khó mà vào được các tài khoản của bạn vì sẽ bị trở ngại ở bước bảo mật 2 lớp.

Ở bài viết này AZDIGI sẽ hướng dẫn bạn cách thiết lập xác thực 2 lớp khi SSH vào máy chủ VPS của bạn, điều này giúp gia tăng bảo mật cho VPS nếu vô tình thông tin root bị lộ ra ngoài. Cụ thể các bước thực hiện mời các bạn xem tiếp ở phần II nhé.

II. Hướng dẫn thiết lập

Để thiết lập Google Authenticator các bạn có thể thực hiện theo 4 bước sau.

Bước 1: SSH vào máy chủ của bạn

Đầu tiên các bạn cần SSH vào VPS của mình với quyền Root, nếu chưa biết cách SSH thì các bạn có thể xem hướng dẫn bên dưới.

Sau khi SSH thành công các bạn xem tiếp Bước 2.

Bước 2: Thiết lập Google Authenticator

  • Tiến hành cài đặt epel-release repo
AZDIGI Tutorial
yum install -y epel-release 
    
  • Cài đặt pack google-authenticator
AZDIGI Tutorial
yum install -y google-authenticator
    
  • Chạy lệnh sau sau khi cài đặt hoàn tất để tạo ra secret key.
AZDIGI Tutorial
google-authenticator
    
  • Tiếp theo hệ thống sẽ yêu cầu bạn xác nhận và đồng thời cung cấp mã QR
[root@template ~]# google-authenticator

Do you want authentication tokens to be time-based (y/n) y
Warning: pasting the following URL into your browser exposes the OTP secret to Google:
  https://www.google.com/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth://totp/root@template.azdigilab.com%3Fsecret%3D57C7LI5GMEY4UXG4AZIKKKUXDQ%26issuer%3Dtemplate.azdigilab.com

  
Your new secret key is: 57C7LI5GMEY4UXG4AZIKKKUXDQ
Your verification code is 729816
Your emergency scratch codes are:
  13966703
  30305338
  70660643
  75967179
  72069190

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ạn mở App Authenticator và tiến hành Scan mã QR hiển thị ở VPS của bạn.

Khi bạn scan mã QR trên thì ta sẽ nhận được code gồm 6 chữ số, 6 chữ số này sẽ liên tục thay đổi sau 30 giây.

Bước 3: Thiết lập VPS cho phép xác thực thông qua Google Authenticator 

Để thiết lập VPS cho phép xác thực Google Authenticator khi SSH, các bạn di chuyển và chỉnh file /etc/pam.d/sshd

AZDIGI Tutorial
vi /etc/pam.d/sshd
    
  • Thêm và commend các dòng sau trong file /etc/pam.d/sshd

Thêm dòng: auth required pam_google_authenticator.so nullok

Commend dòng: auth substack password-auth.

  • Tiến hành chỉnh sửa file /etc/ssh/sshd_config
    • Tìm tới dòng ChallengeResponseAuthentication, chuyển setting từ no sang yes
    • Thêm mới dòng AuthenticationMethods publickey,keyboard-interactive.
  • Khởi động lại service sshd sau khi chỉnh sửa.
AZDIGI Tutorial
systemctl restart sshd
    

Bước 4: Kiểm tra hoạt động của Authenticator khi SSH

Sau khi hoàn tất cấu hình, các bạn cần thoát khỏi VPS và Login lại để kiểm tra. Khi Login mã OTP sẽ được generator trên Google Authenticator App, các bạn chỉ cần nhập mã này vào là có thể SSH được nhé.

Như hình là mình đã test thành công.

III. Tổng kết

Như vậy ở bài viết này, AZDIGI đã hướng dẫn bạn cách cài đặt xác thực 2 lớp khi SSH vào VPS, điều này giúp tăng cường bảo mật và giảm các nguy cơ bị tấn công dò tìm pass. Với xác thực 2 lớp, bạn có thể yên tâm ngay cả khi thông tin root vô tình bị lộ ra ngoài, thì người khác cũng sẽ không thể SSH vào được VPS của bạn khi chưa có code xác thực 2 lớp. Nếu thấy bài viết này hay và hữu ích, các bạn có thể chia sẻ rộng rãi đến mọi người để cùng thực hiện nhé.

Để xem một số bài viết hữu ích khác về quản trị VPS Linux, các bạn có thể truy cập 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:

5 / 5 ( 1 bình chọn )