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.
InteractiveUsername: 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
Để 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:
InteractiveAdding 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:
OutputID 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ặp và si5509 là hạ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:
Promptotp-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.
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.
Output498 zi5509
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:
Outputfreebsd 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:
InteractiveUsing 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ũ:
Promptotp-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:
Promptotp-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.
Promptotp-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`
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:
InteractiveUsing 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:
InteractiveUsing 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.
Các tin liên quan