Trang chủBlogCác bước thiết lập xác thực đa yếu tố cho SSH trên Ubuntu 16.04 (P2)
Operations Security

Các bước thiết lập xác thực đa yếu tố cho SSH trên Ubuntu 16.04 (P2)

CyStack blog 5 phút để đọc
CyStack blog23/01/2018
Locker Avatar

Trung Nguyen

Hacker. Builder. Educator. On a mission to make the internet safer.
Locker logo social
Reading Time: 5 minutes


Tiếp tục phần 1 https://resources.cystack.net/news/thiet-lap-xac-thuc-da-yeu-to-tren-ubuntu-p1/), trong bài viết này, chúng tôi sẽ hướng dẫn các bạn một số mẹo nhỏ để thiết lập xác thực đa yếu tố cho SSH trên Ubuntu 16.04.

Tip 1 – Khôi phục quyền truy cập

Bạn sẽ không phải mất đi khóa SSH hay khóa bí mật TOTP mà vẫn đảm bảo quyền truy cập vào ứng dụng TOTP của mình. Tuy nhiên, đôi khi sẽ xảy ra trường hợp bạn mất quyền kiểm soát của ứng dụng mà bạn cần truy cập.

Mất SSH key hay TOTP key

Nếu bạn bị mất SSH key hay TOTP key, quá trình khôi phục có thể được chia ra thành một vài bước. Đầu tiên là quay trở lại mà không cần biết mã xác minh và thứ hai là tìm khóa bí mật hay tạo lại mật khẩu để đăng nhập MFA bình thường.
Khi đã đăng nhập thành công, có 2 cách để bạn lấy lại TOTP key:

  1. Khôi phục mã hiện tại
  2. Tạo ra một mã mới

Trong thư mục chính của mỗi người dùng, khoá bí mật và cài đặt Google Authenticator được lưu trong ~ / .google-authenticator. Dòng đầu tiên của tệp này là khóa bí mật. Cách nhanh chóng để lấy được khoá là thực hiện lệnh sau đây:

$ head -n 1 /home/sammy/.google_authenticator

Sau đó, lấy khóa bí mật đó và nhập vào một ứng dụng TOTP. Nếu không thể sử dụng khóa hiện tại, bạn có thể xóa tệp tin ~ / .google-authenticator. Điều này cho phép người dùng đăng nhập lại mà chỉ sử dụng một yếu tố (trong trường hợp bạn chưa thực thi MFA). Sau đó, máy tính có thể chạy google-authenticator để tạo ra một khoá mới.

Mất quyền truy cập vào ứng dụng TOTP

Nếu bạn cần đăng nhập vào máy chủ của mình nhưng không có quyền truy cập vào ứng dụng TOTP để lấy mã xác minh, bạn vẫn có thể đăng nhập bằng mã khôi phục đã được hiển thị khi bạn tạo khóa bí mật lần đầu tiên. Lưu ý rằng các mã khôi phục này chỉ được sử dụng một lần nên nếu đã sử dụng để đăng nhập thì không thể sử dụng làm mã xác minh nữa.

Tip 2 – Thay đổi cài đặt xác thực

Nếu bạn muốn thay đổi cài đặt MFA sau cấu hình ban đầu, thay vì tạo cấu hình mới với cài đặt đã cập nhật, bạn chỉ cần chỉnh sửa tệp ~ / .google-authenticator. Tập tin này được trình bày theo cách sau:

.google-authenticator layout
<secret key>
 <options>
 <recovery codes>

Có một dòng trong phần tùy chọn được đặt trong tập tin này, nếu bạn trả lời “không” với một tùy chọn cụ thể trong quá trình thiết lập ban đầu, dòng tương ứng sẽ bị loại bỏ khỏi tệp.
Dưới đây là những thay đổi bạn có thể thực hiện với tệp này:

  • Để bật mã tuần tự thay vì mã thời gian, thay đổi dòng TOTP AUTH thành HOTP_COUNTER 1.
  • Để cho phép sử dụng một mã nhiều lần, loại bỏ dòng DISALLOW REUSE.
  • Để mở rộng cửa sổ hết hạn mã đến 4 phút, thêm dòng WINDOW_SIZE 17.
  • Để vô hiệu hóa nhiều đăng nhập không thành công (giới hạn tỉ lệ), hãy xóa dòng RATE_LIMIT 3 30.
  • Để thay đổi ngưỡng giới hạn tốc độ, hãy tìm dòng RATE_LIMIT 3 30 và điều chỉnh các số. Số 3 là số lần thử trong một khoảng thời gian và số 30 cho biết khoảng thời gian tính bằng giây.
  • Để vô hiệu hóa việc sử dụng các mã khôi phục, hãy xóa năm số 8 ở cuối tệp.

Tip 3 – Tránh MFA cho một số tài khoản

Có thể xảy ra tình huống một vài tài khoản ứng dụng cần quyền truy cập SSH mà MFA không được bật. Nếu ứng dụng không có cách để yêu cầu mã xác minh, yêu cầu có thể bị kẹt khi kết nối SSH quá hạn. Miễn là một vài tùy chọn trong /etc/pam.d/sshd được đặt chính xác, bạn có thể kiểm soát các yếu tố được sử dụng trên cơ sở từng người dùng.
Để thiết lập MFA cho một số tài khoản và SSH cho những tài khoản khác, hãy đảm bảo các cài đặt sau trong /etc/pam.d/sshd đang hoạt động:

/etc/pam.d/sshd
# PAM configuration for the Secure Shell service
 # Standard Un*x authentication.
 #@include common-auth
 . . .
 # Standard Un*x password updating.
 @include common-password
 auth required pam_google_authenticator.so nullok

Ở đây, @include common-auth được nhắc đến bởi vì mật khẩu cần phải được vô hiệu hoá. MFA không thể hoạt động nếu một số tài khoản đang vô hiệu hóa MFA, do đó, hãy bỏ tùy chọn nullok ở dòng cuối cùng đi. Sau khi thiết lập cấu hình này, chỉ cần chạy google-authenticator là bạn đã hoàn thành.

Tip 4 – Tự động Thiết lập với Configuration Management

Nhiều quản trị viên sử dụng các công cụ quản lý cấu hình để quản lý các hệ thống của họ. Nếu bạn muốn sử dụng một hệ thống như thế này để cài đặt một khóa bí mật khi một tài khoản người dùng mới được tạo ra, hãy thực hiện như sau:
google-authenticator hỗ trợ thiết bị chuyển mạch dòng lệnh để thiết lập tất cả các tùy chọn trong một lệnh không tương tác. Để xem tất cả các tùy chọn, bạn có thể gõ google-authenticator -help. Dưới đây là lệnh sẽ thiết lập mọi thứ như trong Bước 1 phần trước đã hướng dẫn:

google-authenticator -t -d -f -r 3 -R 30 -W

Dòng này sẽ thay tất cả câu trả lời mà chúng ta phải thực hiện, sau đó, lưu nó vào một tệp tin rồi xuất ra khóa bí mật, mã QR và mã khôi phục. Hãy bỏ -q, nếu không sẽ không có bất kỳ kết quả đầu ra nào. Nếu bạn sử dụng lệnh này tự động, hãy nhớ lưu lại khóa bí mật và mã khôi phục sẵn cho người dùng.

Tip 5 – Yêu cầu MFA với tất cả người dùng

Nếu bạn muốn bật xác thực đa yếu tố MFA cho tất cả người dùng ngay cả khi họ đăng nhập lần đầu tiên hay bạn không muốn người dùng sử dụng tài khoản của họ tự tạo ra key thì có một cách dễ dàng để xử lý. Bạn chỉ cần sử dụng cùng một tệp tin xác thực .google-authenticator cho mỗi người dùng là sẽ không có dữ liệu người dùng cụ thể nào được lưu trữ trong tệp.
Để thực hiện việc này, sau khi tạo tệp cấu hình, người dùng được quyền sao chép tệp vào thư mục gốc của mọi thư mục chính và thay đổi các quyền thích hợp cho người dùng. Bạn cũng có thể sao chép tập tin vào /etc/skel/ và nó sẽ tự động sao chép vào thư mục chính của người dùng mới khi tạo.

Lưu ý: Điều này có thể trở thành một nguy cơ bảo mật vì tất cả mọi người đang cùng chia sẻ yếu tố xác thực thứ hai. Nếu thông tin bị rò rỉ thì mọi người chỉ còn sử dụng một yếu tố xác thực. Hãy xem xét vấn đề trước khi bạn sử dụng cách thức này.

Một phương pháp khác để tạo khoá bí mật của người dùng là sử dụng một tập lệnh bash để:

  1. Tạo một mã thông báo TOTP
  2. Nhắc việc tải xuống ứng dụng Google Authenticator và quét mã QR mà sẽ được hiển thị
  3. Chạy ứng dụng google-authenticator sau khi tệp tin .google-authenticator xác nhận là tồn tại.

Để đảm bảo tập lệnh chạy khi người dùng đăng nhập, bạn có thể đặt tên nó là .bash_login và lưu trữ trong thư mục gốc của thư mục chính.

Kết luận

Bằng cách tạo ra hai yếu tố xác thực (một khóa SSH và một mã MFA) trên máy tính và điện thoại, bạn đã tự tạo ra lớp bảo vệ an toàn thông tin cho dữ liệu của mình, ngăn chặn những cuộc tấn công không mong muốn từ hackers.

0 Bình luận

Đăng nhập để thảo luận

CyStack blog

Mẹo, tin tức, hướng dẫn và các best practice độc quyền của CyStack

Đăng ký nhận bản tin của chúng tôi

Hãy trở thành người nhận được các nội dung hữu ích của CyStack sớm nhất

Xem chính sách của chúng tôi Chính sách bảo mật.

Đăng ký nhận Newsletter

Nhận các nội dung hữu ích mới nhất