Thứ năm, 30/04/2015 | 00:00 GMT+7

Cách sử dụng OPIE để nhận mật khẩu một lần cho FreeBSD 10.1

SSH là cách phổ biến nhất để đăng nhập vào server từ xa. Nó là một giao thức mật mã bảo vệ password của bạn chống lại các cuộc tấn công man-in-the-middle và replay.

Tuy nhiên, bạn phải lưu ý SSH chỉ bảo vệ dữ liệu khi dữ liệu đang được truyền đi. Những kẻ tấn công có thể phát hiện ra password SSH của bạn bằng các phương tiện khác, chẳng hạn như bằng cách sử dụng keylogger hoặc các camera được đặt chiến lược.

Miễn là bạn sử dụng một máy tính tin cậy (giả sử thuộc về bạn hoặc công ty của bạn) và làm như vậy từ một vị trí an toàn, bạn không phải lo lắng về các cuộc tấn công như vậy. Tuy nhiên, đôi khi bạn có thể cần sử dụng máy tính công cộng. Để bảo vệ password của bạn trong những trường hợp như vậy, FreeBSD đi kèm với một tính năng bảo mật được gọi là Mật khẩu dùng một lần trong mọi thứ, hoặc OPIE.

Trong hướng dẫn này, bạn sẽ học cách tạo và sử dụng password một lần để đăng nhập vào server FreeBSD từ xa của bạn . Bạn có thể tạo trước một hoặc nhiều password một lần khi bạn ở một vị trí an toàn và lưu chúng để sử dụng sau này khi bạn truy cập vào server của bạn từ một vị trí kém an toàn. Bằng cách đó, ngay cả khi password dùng một lần của bạn được ghi lại, nó sẽ không bao giờ hữu ích đối với kẻ tấn công.

Yêu cầu

Để làm theo hướng dẫn này, bạn cần :

  • Server FreeBSD 10.1 có thể truy cập qua SSH
  • User được phép chuyển sang root ; user freebsd mặc định trên DigitalOcean vẫn ổn

Bước 1 - Tạo user OPIE mới

Để đảm bảo bạn không bị khóa khỏi server từ xa của bạn , bạn nên tạo một user riêng để sử dụng với OPIE.

Chuyển sang root , bằng lệnh :

  • sudo su

Để tạo user mới mà bạn muốn sử dụng với password một lần của bạn , hãy nhập:

  • adduser

Bạn sẽ được yêu cầu nhập các chi tiết khác nhau về user . Hãy để tên user là sammy . Khi được yêu cầu nhập password , hãy đảm bảo bạn nhập password mạnh. Đối với tất cả các dấu nhắc khác, bạn có thể chỉ cần nhấn ENTER để chọn giá trị mặc định.

Interactive
Username: sammy Full name: Sammy the Shark Uid (Leave empty for default): Login group [sammy]: Login group is sammy. Invite sammy into other groups? []: Login class [default]: Shell (sh csh tcsh zsh nologin) [sh]: Home directory [/home/sammy]: Home directory permissions (Leave empty for default): Use password-based authentication? [yes]: Use an empty password? (yes/no) [no]: Use a random password? (yes/no) [no]: Enter password: password Enter password again: password Lock out the account after creation? [no]: Username : sammy Password : **** Full Name : My Test User Uid : 1001 Class : Groups : sammy Home : /home/sammy Shell : /usr/local/bin/zsh Locked : no OK? (yes/no): yes adduser: INFO: Successfully added (sammy) to the user database. Add another user? (yes/no): no Goodbye!

Nhập yes để xác nhận các chi tiết, và khi bạn được hỏi nếu bạn muốn thêm user khác, gõ vào no để thoát adduser .

Đến đây bạn có thể chuyển về user ban đầu của bạn , user freebsd mặc định hoặc user sudo thông thường của bạn:

  • exit

Đến đây, bạn nên đăng nhập vào server của bạn bằng user sudo không phải OPIE của bạn.

Bước 2 - Đăng nhập với quyền user OPIE mới

Từ phiên terminal hiện tại của bạn, sử dụng ssh để đăng nhập với quyền sammy , user OPIE.

  • ssh sammy@localhost

Điều này rất quan trọng, vì cài đặt OPIE chỉ có thể được thực hiện từ một terminal an toàn. Nếu bạn sử dụng một giao thức không an toàn, chẳng hạn như rsh hoặc telnet , OPIE sẽ khiếu nại.

Bước 3 - Bật OPIE cho user mới

Cảnh báo
Sau khi bạn bật OPIE cho user , user đó sẽ không thể đăng nhập bằng password thông thường! Vì vậy, hãy đảm bảo bạn giữ cho ít nhất một user có thể truy cập được mà không cần OPIE; trong hướng dẫn này, ta đang giữ cho user freebsd bằng thông tin đăng nhập SSH key tiêu chuẩn.

Để thêm user vào hệ thống xác thực OPIE, bạn sử dụng lệnh opiepasswd . Tùy chọn -c cho lệnh rằng bạn đang sử dụng một máy tính tin cậy và đang ở một vị trí an toàn.

  • opiepasswd -c

Khi bạn được yêu cầu nhập cụm từ password , hãy nhập cụm từ password dài ít nhất mười ký tự. Cụm từ password này không được giống với password SSH của user . Bạn cần cụm từ password này sau đó để tạo password một lần.

Kết quả kết quả hoàn chỉnh của lệnh sẽ như sau:

Interactive
Adding sammy: Only use this method from the console; NEVER from remote. If you are using telnet, xterm, or a dial-in, type ^C now or exit with no password. Then run opiepasswd without the -c parameter. Using MD5 to compute responses. Enter new secret pass phrase: Sammy's secret pass phrase Again new secret pass phrase: Sammy's secret pass phrase

Bạn sẽ nhận được một hạt giống OPIE mới và một cụm từ chuyển ngẫu nhiên:

Output
ID sammy OTP key is 499 si5509 RITE NERO BASS SOFA BEND TO

Trong kết quả này, sammy là user , 499 là số lần lặpsi5509hạt giống .

Bây giờ sammy đã được thêm vào hệ thống xác thực OPIE, bạn không thể sử dụng password SSH thực để đăng nhập nữa. Hãy mở một terminal mới trên máy local của bạn và nhập:

ssh sammy@your_server_ip 

Bạn sẽ thấy một dấu nhắc giống như sau:

Prompt
otp-md5 498 zi5509 ext Password:

Đến đây bạn phải nhập password một lần. Vì ta chưa tạo bất kỳ password dùng một lần nào nên hiện tại, bạn sẽ không thể đăng nhập. Hãy đóng terminal và quay lại terminal trước đó của bạn, nơi bạn đã đăng nhập với quyền sammy .

Bước 4 - Tạo password dùng một lần

Khi một user được thêm vào hệ thống xác thực OPIE, số lần lặp lại bắt đầu từ 499 và một hạt ngẫu nhiên được liên kết với user . Bạn cần biết những giá trị này để tạo password dùng một lần.

Cảnh báo
Hãy nhớ, luôn tạo password dùng một lần của bạn từ một vị trí an toàn.

Nếu bạn đã đăng nhập bằng sammy , bạn nên đăng nhập vào thời điểm này, bạn có thể xác định các giá trị này bằng cách sử dụng lệnh opieinfo .

  • opieinfo

Đầu ra của nó sẽ chứa hai giá trị. Đầu tiên là số thứ tự, và thứ hai là hạt giống.

Output
498 zi5509
Ghi chú Nhãn

Nếu bạn hiện đang đăng nhập bằng user không phải OPIE, bạn sẽ gặp lỗi như sau:

Output
freebsd not found in database.

Trong trường hợp này, bạn có thể lấy thông tin bằng cách mở một cửa sổ terminal mới và cố gắng đăng nhập với user OPIE. Dấu nhắc password sẽ bao gồm số lần lặp hiện tại và hạt giống. Sao chép thông tin này và sử dụng nó trong phiên xác thực của bạn.

Chuyển các giá trị này vào lệnh opiekey để tạo password dùng một lần của bạn. Lưu ý , giống như opiepasswd , opiekey cũng chỉ nên chạy từ một máy tính tin cậy .

  • opiekey 498 zi5509

Ngoài ra, có thể chạy lệnh:

  • opiekey `opieinfo`

Bạn sẽ được yêu cầu nhập cụm từ password cho user OPIE. Nhập cụm từ vượt qua mà bạn đã chọn ở bước trước. Đầu ra của lệnh này như sau:

Interactive
Using the MD5 algorithm to compute response. Reminder: Don't use opiekey from telnet or dial-in sessions. Enter secret pass phrase: Sammy's secret pass phrase PER POE TURF LITE ZONE BART

Dòng cuối cùng chứa sáu từ ngắn là password dùng một lần của bạn.

Mở một terminal mới để thử đăng nhập lại:

ssh sammy@your_server_ip 

Dấu nhắc của bạn sẽ vẫn như cũ:

Prompt
otp-md5 498 zi5509 ext Password:

Lưu ý các số bạn thấy trong dấu nhắc này trùng với kết quả của opieinfo và các tham số bạn đã chuyển cho opiekey .

Như vậy, bạn có thể dán cụm từ password của bạn hoặc nhập thủ công. Trước khi bạn bắt đầu nhập password dài, để tránh nhầm lẫn, hãy nhấn ENTER . Dấu nhắc của bạn sẽ thay đổi và bạn sẽ được phép xem password bạn nhập vào:

Prompt
otp-md5 498 zi5509 ext Password [echo on]:

Nhập password dùng một lần của bạn ngay bây giờ và bạn có thể đăng nhập vào server của bạn với quyền sammy .

Kết thúc phiên SSH bằng lệnh exit hoặc đóng terminal .

Mở một terminal khác và cố gắng cài đặt kết nối mới:

ssh sammy@your_server_ip 

Lần này, dấu nhắc sẽ hơi khác một chút.

Prompt
otp-md5 497 zi5509 ext Password:

Như bạn thấy , số thứ tự đã thay đổi; nó đã được giảm bớt một. Bạn sẽ không thể đăng nhập lại cho đến khi bạn tạo password một lần mới bằng opiekey với các giá trị mới này. Nói cách khác, bạn sẽ phải thực hiện lại toàn bộ quá trình được mô tả trong Bước 4 của hướng dẫn này.

Bước 5 - Tạo nhiều password dùng một lần

Nếu bạn biết rằng bạn sẽ không thể truy cập máy tính tin cậy trong vài ngày, bạn có thể cần nhiều password một lần để có thể truy cập server của bạn nhiều lần. Bạn có thể chỉ định số lượng password dùng một lần mà bạn muốn bằng cách chạy opiekey với tùy chọn -n . Ví dụ: để tạo ba password một lần, hãy nhập:

  • opiekey -n 3 `opieinfo`

Ghi chú
Thay vì sử dụng opieinfo , bạn có thể cung cấp số lần lặp lại và hạt giống như trước đây.

Đầu ra sẽ chứa ba password , cùng với số thứ tự của chúng:

Interactive
Using the MD5 algorithm to compute response. Reminder: Do not use opiekey from telnet or dial-in sessions. Enter secret pass phrase: Sammy's secret pass phrase 495: BEAM BOW TOO CAVE BOWL AUK 496: HIVE KITE HUGE SANG VAT FOAM 497: THIN ALL BUT NIL SUP BALE

Mật khẩu dùng một lần cũng có thể được tạo dưới dạng số thập lục phân bằng cách sử dụng tùy chọn -x :

  • opiekey -x -n 3 `opieinfo`

Tất nhiên, password bây giờ trông sẽ kém dễ hiểu hơn:

Interactive
Using the MD5 algorithm to compute response. Reminder: Do not use opiekey from telnet or dial-in sessions. Enter secret pass phrase: Sammy's secret pass phrase 495: 5484 C106 B214 B801 496: 98F1 E6CF 7F54 3108 497: 6010 2C11 192A EDAC

Đến đây bạn phải viết những điều này ra giấy và mang theo giấy khi đi du lịch. Lần tới khi bạn cần đăng nhập, hãy sử dụng giấy để tìm password được liên kết với số thứ tự được hiển thị trong dấu nhắc SSH và nhập password đó vào. Sau khi sử dụng password , bạn có thể cần loại bỏ password đó. Không cần phải nói, bạn phải chắc chắn rằng tờ giấy này không bị rơi vào tay kẻ xấu.

Khi bạn đã sử dụng hết password trên giấy, chỉ cần lặp lại bước này để tạo thêm password . Tuy nhiên, nếu bạn sử dụng hết 498 password và số thứ tự của bạn trở thành 0, bạn sẽ phải gọi lại opiepasswd -c . Làm như vậy sẽ đặt lại hạt giống ngẫu nhiên và số thứ tự.

Kết luận

Trong tình huống thực tế, bạn nên chuẩn bị trước một số lượng password thích hợp từ một vị trí an toàn, viết chúng ra giấy và sử dụng chúng lần lượt khi bạn cần đăng nhập từ một vị trí không an toàn. Giữ giấy an toàn!

Trong hướng dẫn này, bạn đã học cách sử dụng hệ thống xác thực OPIE để đăng nhập vào server FreeBSD từ xa của bạn một cách an toàn từ các terminal trên máy tính không tin cậy . Bạn đã học cách tạo password một lần và sử dụng chúng mỗi khi bạn cần đăng nhập. Tính năng này hữu ích nhất cho những người thường xuyên di chuyển và buộc phải sử dụng máy tính và mạng công cộng.


Tags:

Các tin liên quan