Cách cài đặt và kích hoạt xác thực đa yếu tố SSH cho hệ thống Linux

Tác giả sysadmin, T.Tư 26, 2023, 04:56:22 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

Cách cài đặt và kích hoạt xác thực đa yếu tố SSH cho hệ thống Linux


Secure Shell (SSH) là một giao thức phổ biến được sử dụng để truy cập từ xa vào các máy chủ và hệ thống Linux. Nó cung cấp một kết nối an toàn, được mã hóa cho phép người dùng quản lý và điều hành hệ thống của họ từ xa.


Tuy nhiên, việc chỉ sử dụng tên người dùng và mật khẩu để truy cập SSH có thể khiến hệ thống của bạn dễ bị tấn công brute-force, đoán mật khẩu và các mối đe dọa bảo mật khác. Đó là lý do tại sao Xác thực đa yếu tố (MFA) trở nên hữu ích.

Đây là một lớp bảo mật bổ sung yêu cầu người dùng cung cấp hai hoặc nhiều hình thức xác thực để truy cập hệ thống. Bằng cách yêu cầu người dùng trình bày nhiều yếu tố, MFA có thể cải thiện đáng kể tính bảo mật của truy cập SSH.

MFA rất quan trọng đối với các hệ thống xử lý dữ liệu nhạy cảm hoặc bí mật vì nó giúp ngăn chặn truy cập trái phép và vi phạm dữ liệu. Bằng cách triển khai MFA, bạn có thể cải thiện đáng kể tính bảo mật của hệ thống Linux và bảo vệ dữ liệu cũng như tài sản của mình tốt hơn.

Bài viết này minh họa cách cài đặt, định cấu hình và kích hoạt MFA để truy cập SSH trên hệ thống Linux. Chúng tôi sẽ phác thảo các bước cần thiết để thiết lập phương thức MFA được hỗ trợ, chẳng hạn như Google Authenticator hoặc Duo Security và kiểm tra thiết lập để truy cập SSH.

1. Chuẩn bị hệ thống Linux của bạn cho MFA

Trước khi cài đặt và định cấu hình MFA trên hệ thống Linux của bạn, việc đảm bảo rằng hệ thống của bạn được cập nhật và đã cài đặt các gói cần thiết là rất quan trọng. Cập nhật hệ thống của bạn bằng tiện ích sau:

Mã nguồn [Chọn]
sudo apt update &&sudo apt upgrade -y
Sau khi hệ thống của bạn được cập nhật, bạn phải cài đặt gói PAM (Mô-đun xác thực có thể cắm) cho phép MFA cho SSH.

2. Cài đặt và Định cấu hình Phương thức MFA được Hỗ trợ

Một số phương pháp MFA có sẵn để truy cập SSH bao gồm Google Authenticator, Duo Security và YubiKey. Trong phần này, chúng tôi sẽ tập trung vào việc định cấu hình Google Authenticator, một phương thức MFA được sử dụng rộng rãi và dễ cài đặt cho SSH.

Dưới đây là các bước để cài đặt và định cấu hình Google Authenticator cho SSH MFA:

Bước 1: Tạo người dùng mới

Trước tiên, bạn cần tạo một người dùng mới để truy cập SSH. Bạn có thể tạo người dùng mới bằng cách chạy đoạn mã sau:

Mã nguồn [Chọn]
sudo adduser <username>
Thay thế <username> bằng tên thích hợp của người dùng mà bạn muốn tạo.

Bước 2: Chuyển sang Người dùng mới

Tiếp theo, chuyển sang người dùng mới bằng cách chạy lệnh sau:

Mã nguồn [Chọn]
su - <username>
Hệ thống của bạn sẽ nhắc bạn nhập mật khẩu cho người dùng mới.

Bước 3: Cài đặt Google Authenticator

Cài đặt Google Authenticator bằng tiện ích này:

Mã nguồn [Chọn]
sudo apt install libpam-google-authenticator -y
Sau đây là một đầu ra mẫu cho lệnh trước:


Đầu ra này hiển thị trình quản lý gói là "apt", cài đặt gói "libpam-google-authenticator" và các phụ thuộc của nó là "libqrencode4". Tùy chọn -y tự động xác nhận lời nhắc cài đặt. Kết quả cũng hiển thị tiến trình của quá trình cài đặt, bao gồm tải xuống và cài đặt các gói cũng như mọi dung lượng ổ đĩa bổ sung sẽ được sử dụng. Cuối cùng, nó cho thấy rằng quá trình cài đặt và mọi trình kích hoạt có liên quan để xử lý sau cài đặt đều thành công.

Bước 4: Tạo khóa bí mật mới

Tiện ích này sẽ giúp bạn tạo khóa bí mật mới cho người dùng:

Mã nguồn [Chọn]
google-authenticator
Hệ thống của bạn sẽ nhắc bạn trả lời một số câu hỏi, bao gồm những câu hỏi sau:

  • Bạn có muốn mã thông báo xác thực dựa trên thời gian (y/n) không? y
  • Bạn có muốn tôi cập nhật tệp "/home/yourusername/.google_authenticator" (y/n) của bạn không? y
  • Bạn có muốn không cho phép sử dụng nhiều lần cùng một mã thông báo xác thực không? (y/n) y
  • Bạn có muốn bật giới hạn tỷ lệ không? (y/n) y

Bạn có thể chấp nhận các giá trị mặc định cho hầu hết các câu hỏi. Tuy nhiên, đối với câu hỏi " Bạn có muốn tôi cập nhật tệp "/home/<username>/.google_authenticator" của bạn không? ", chọn "y" để cập nhật tệp cấu hình.

Dòng lệnh trước tạo khóa bí mật mới cho người dùng được sử dụng để tạo mật khẩu một lần cho MFA.

Bước 5: Mở ứng dụng Authenticator trên điện thoại của bạn

Mở ứng dụng Google Authenticator trên điện thoại thông minh của bạn và quét mã QR được hiển thị trên màn hình. Thao tác này sẽ thêm người dùng mới vào ứng dụng Google Authenticator của bạn.

Bước 6: Chỉnh sửa tệp cấu hình

Chỉnh sửa tệp cấu hình SSH bằng cách chạy lệnh sau:

Mã nguồn [Chọn]
sudo nano /etc/ssh/sshd_config
Thêm dòng sau vào cuối tệp:

Mã nguồn [Chọn]
ChallengeResponseAuthentication yes
Dòng này kích hoạt xác thực Challenge-Response cho SSH.

Bước 7: Chỉnh sửa tệp cấu hình PAM

Lệnh này chỉnh sửa tệp cấu hình PAM cho SSH:

Mã nguồn [Chọn]
sudo nano /etc/pam.d/sshd _ _ _ _ _
Thêm dòng sau vào cuối tệp để hoàn thành bước này:

Mã nguồn [Chọn]
auth required pam_google_authenticator.so
Tiện ích này kích hoạt mô-đun Google Authenticator cho SSH.

Bước 8: Lưu các thay đổi của bạn

Lưu các thay đổi vào tệp cấu hình và khởi động lại dịch vụ SSH bằng lệnh sau:

Mã nguồn [Chọn]
sudo service ssh restart
Lệnh này khởi động lại dịch vụ SSH với cấu hình mới.

Khi bạn đăng nhập vào hệ thống Linux của mình bằng SSH, bạn sẽ được nhắc nhập mật khẩu một lần được tạo bởi ứng dụng Google Authenticator. Nhập mật khẩu một lần để hoàn tất quá trình đăng nhập.

3. Kiểm tra thiết lập MFA của bạn để truy cập SSH

Khi bạn đã cài đặt và định cấu hình MFA cho SSH trên hệ thống Linux của mình, điều quan trọng là phải kiểm tra thiết lập để đảm bảo rằng nó hoạt động chính xác. Dưới đây là các bước để kiểm tra thiết lập MFA của bạn để truy cập SSH:

Mở một cửa sổ terminal mới và kết nối với hệ thống Linux của bạn bằng SSH, như bình thường. Ví dụ:

Mã nguồn [Chọn]
ssh<username>@<ip_address>
Thay thế <username> bằng tên chính xác của người dùng mà bạn đã tạo trước đó và <ip_address> bằng địa chỉ IP hoặc tên máy chủ của hệ thống Linux của bạn. Trong trường hợp này, chúng tôi sử dụng Victoria làm tên người dùng. Đầu ra trông giống như trong hình sau:


Trong ví dụ này, chúng tôi sử dụng lệnh ssh để đăng nhập vào một máy từ xa có địa chỉ IP là 192.168.1.100 với tư cách là người dùng, "victoria". Lệnh nhắc xác nhận tính xác thực của máy chủ từ xa và sau đó yêu cầu mật khẩu cho người dùng, "victoria". Sau khi được xác thực, chúng tôi được chào đón bằng dấu nhắc shell trên máy từ xa, cho biết rằng chúng tôi đã thiết lập thành công phiên SSH.

Nhập mật khẩu cho người dùng khi được nhắc.

Sau khi nhập mật khẩu, bạn sẽ được nhắc nhập mật khẩu một lần từ ứng dụng MFA của mình. Mở ứng dụng Google Authenticator trên điện thoại thông minh của bạn và nhập mã tương ứng với người dùng mà bạn đã tạo trước đó.

Nếu mật khẩu dùng một lần là chính xác, bạn nên đăng nhập vào hệ thống Linux của mình. Nếu mật khẩu không chính xác, bạn sẽ được nhắc nhập một mã khác từ ứng dụng MFA.

Sau khi đăng nhập thành công, bạn có thể xác minh rằng MFA đang hoạt động bình thường bằng cách kiểm tra nhật ký SSH. Chạy tiện ích này để xem nhật ký:

Mã nguồn [Chọn]
sudotail-f/var/log/auth.log
Lệnh trước hiển thị nhật ký xác thực SSH trong thời gian thực.

Tìm một dòng trong nhật ký có nội dung "Khóa công khai được chấp nhận cho <tên người dùng>", theo sau là "Tương tác bàn phím/pam được chấp nhận cho <tên người dùng>".

Mã nguồn [Chọn]
Apr 17 10:45:24 server sshd[2998]: Accepted publickey for victoria from 192.168.0.2 port 57362 ssh2: RSA SHA256:xxxxxxxxxxxxxxxxxxxxx
Apr 17 10:45:27 server sshd[2998]: Accepted keyboard-interactive/pam for victoria from 192.168.0.2 port 57362 ssh2

Ví dụ:


Hai dòng đầu tiên cho biết rằng người dùng "victoria" đã được xác thực thành công thông qua khóa chung và các phương thức tương tác với bàn phím từ địa chỉ IP là 192.168.0.2.

Nếu mọi thứ hoạt động bình thường, bạn có thể đăng nhập vào hệ thống Linux của mình bằng SSH với MFA đã bật.

Việc triển khai Xác thực đa yếu tố (MFA) để truy cập SSH trên hệ thống Linux của bạn có thể tăng cường đáng kể tính bảo mật cho hệ thống của bạn bằng cách thêm một lớp xác thực bổ sung. Bằng cách yêu cầu người dùng cung cấp mật khẩu một lần ngoài mật khẩu thông thường của họ, MFA khiến kẻ tấn công khó truy cập vào hệ thống của bạn hơn nhiều.