Как использовать OPIE для получения одноразовых паролей для FreeBSD 10.1

Вступление

SSH - это самый популярный способ удаленного входа на сервер. Это криптографический протокол, который защищает ваш пароль от атак «человек посередине» и повторных атак.

Однако вы должны иметь в виду, что SSH защищает ваши данные только во время их передачи. Злоумышленники могут обнаружить ваш пароль SSH другими способами, например, с помощью клавиатурных шпионов или стратегически расположенных камер.

Пока вы используете доверенный компьютер (скажем, тот, который принадлежит вам или вашей компании) и делаете это из безопасного места, вам не нужно беспокоиться о таких атаках. Однако иногда вам может понадобиться использовать общедоступный компьютер. Для защиты ваших паролей в таких сценариях FreeBSD поставляется с функцией безопасности, которая называется «Одноразовые пароли во всем» или OPIE.

Из этого руководства вы узнаете, как создавать и использовать одноразовые пароли для входа на удаленный сервер FreeBSD. Вы можете предварительно создать один или несколько одноразовых паролей, когда находитесь в безопасном месте, и сохранить их на потом, когда вы получите доступ к своему серверу из менее безопасного места. Таким образом, даже если ваш одноразовый пароль будет зарегистрирован, он никогда не будет полезен злоумышленнику.

Предпосылки

Чтобы следовать этому уроку, вам понадобится:

  • Сервер FreeBSD 10.1, доступный по SSH

  • Пользователь, которому разрешено переключаться на * root *; по умолчанию * freebsd * пользователь на DigitalOcean в порядке

Шаг 1 - Создать нового пользователя OPIE

Чтобы убедиться, что вы не заблокированы на удаленном сервере, рекомендуется создать отдельного пользователя для использования с OPIE.

Переключитесь на * root *, введя:

sudo su

Чтобы создать нового пользователя, которого вы хотите использовать со своими одноразовыми паролями, введите:

adduser

Вам будет предложено ввести различные данные о пользователе. Пусть имя пользователя будет * sammy *. При запросе пароля убедитесь, что вы ввели надежный пароль. Для всех других запросов вы можете просто нажать + ENTER +, чтобы выбрать значение по умолчанию.

InteractiveUsername:
Full name:
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:
Enter password again:
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):
adduser: INFO: Successfully added (sammy) to the user database.
Add another user? (yes/no):
Goodbye!

Введите + yes, чтобы подтвердить детали, и когда вас спросят, хотите ли вы добавить другого пользователя, введите` + no + для выхода из + adduser`.

Теперь вы можете вернуться к исходному пользователю, либо пользователю по умолчанию * freebsd *, либо обычному пользователю sudo:

exit

На этом этапе вы должны войти на свой сервер с пользователем не-OPIE sudo.

Шаг 2 - Войдите в систему как новый пользователь OPIE

Используя ваш текущий сеанс терминала, используйте + ssh +, чтобы войти в систему как * sammy *, пользователь OPIE.

ssh @localhost

Это важно, поскольку настройку OPIE можно выполнять только с защищенного терминала. Если вы используете небезопасный протокол, такой как + rsh + или + telnet +, OPIE будет жаловаться.

Шаг 3 - Включить OPIE для нового пользователя

Предупреждение

Чтобы добавить пользователя в систему аутентификации OPIE, вы используете команду + opiepasswd +. Опция + -c + сообщает команде, что вы используете доверенный компьютер и находитесь в безопасном месте.

opiepasswd -c

Когда вас попросят ввести секретную фразу-пароль, введите фразу-пароль длиной не менее десяти символов. Эта парольная фраза не должна совпадать с паролем SSH пользователя. Эта парольная фраза понадобится вам позже для генерации одноразовых паролей.

Полный вывод команды будет выглядеть так:

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:
Again new secret pass phrase:

Вы получите новое OPIE seed и рандомизированную парольную фразу:

OutputID  OTP key is 499

В этом выводе * sammy * - это пользователь, * 499 * - это iteration count, а * si5509 * - это seed.

Теперь, когда * sammy * был добавлен в систему аутентификации OPIE, вы больше не можете использовать реальный пароль SSH для входа в систему. Откройте новый терминал на вашем локальном компьютере и введите:

ssh sammy@

Вы увидите приглашение, которое выглядит так:

Promptotp-md5 498 zi5509 ext
Password:

Теперь вы должны ввести одноразовый пароль. Поскольку мы еще не сгенерировали одноразовых паролей, сейчас вы не сможете войти в систему. Закройте терминал и вернитесь к предыдущему терминалу, где вы вошли как * sammy *.

Шаг 4 - Создайте одноразовый пароль

Когда пользователь добавляется в систему аутентификации OPIE, число итераций, начиная с 499, и случайное начальное число ассоциируются с пользователем. Вам необходимо знать эти значения для генерации одноразового пароля.

Предупреждение

Если вы уже вошли как * sammy *, которым вы должны быть на данный момент, вы можете определить эти значения с помощью команды + opieinfo +.

opieinfo

Его вывод будет содержать два значения. Первый - это порядковый номер, а второй - начальное число.

Output498 zi5509

Примечание метка

Передайте эти значения команде + opiekey +, чтобы сгенерировать свой одноразовый пароль. Помните, точно так же, как + opiepasswd +, + opiekey + также следует запускать только с доверенного компьютера.

opiekey

Кроме того, вы можете ввести:

opiekey `opieinfo`

Вам будет предложено ввести пароль для пользователя OPIE. Введите пароль, который вы выбрали на предыдущем шаге. Вывод этой команды следующий:

InteractiveUsing the MD5 algorithm to compute response.
Reminder: Don't use opiekey from telnet or dial-in sessions.
Enter secret pass phrase:

Последняя строка, содержащая шесть коротких слов, - ваш одноразовый пароль.

Откройте новый терминал, чтобы попытаться войти снова:

ssh sammy@

Ваша подсказка останется прежней:

Promptotp-md5  ext
Password:

Обратите внимание, что числа, которые вы видите в этом приглашении, соответствуют выводу + opieinfo + и параметрам, которые вы передали + opiekey +.

Теперь вы можете вставить свою фразу-пароль или ввести ее вручную. Прежде чем начать вводить длинный пароль, чтобы избежать ошибок, нажмите + ENTER. Ваше приглашение изменится, и вы сможете увидеть введенный вами пароль:

Promptotp-md5 498 zi5509 ext
Password [echo on]:

Введите свой одноразовый пароль сейчас, и вы сможете войти на свой сервер как * sammy *.

Чтобы завершить сессию SSH, наберите + exit + или закройте терминал.

Откройте другой терминал и попробуйте установить новое соединение:

ssh sammy@

На этот раз подсказка будет немного другой.

Promptotp-md5  zi5509 ext
Password:

Как видите, порядковый номер изменился; он был уменьшен на единицу. Вы не сможете войти снова, пока не создадите новый одноразовый пароль, используя + opiekey + с этими новыми значениями. Другими словами, вам придется заново пройти процесс, описанный в * Шаг 4 * этого руководства.

Шаг 5 - Создание нескольких одноразовых паролей

Если вы знаете, что не сможете получить доступ к доверенному компьютеру в течение нескольких дней, вам может потребоваться несколько одноразовых паролей, чтобы вы могли обращаться к своему серверу несколько раз. Вы можете указать желаемое количество одноразовых паролей, запустив + opiekey + с опцией + -n +. Например, чтобы сгенерировать три одноразовых пароля, введите:

opiekey  `opieinfo`

Note

Вывод будет содержать три пароля, а также их порядковые номера:

InteractiveUsing the MD5 algorithm to compute response.
Reminder: Do not use opiekey from telnet or dial-in sessions.
Enter secret pass phrase:

Одноразовые пароли также могут быть сгенерированы в форме шестнадцатеричных чисел с помощью опции + -x +:

opiekey  -n 3 `opieinfo`

Конечно, пароли теперь будут выглядеть менее понятными:

InteractiveUsing the MD5 algorithm to compute response.
Reminder: Do not use opiekey from telnet or dial-in sessions.
Enter secret pass phrase:

Теперь вы должны записать их на бумаге и носить с собой во время путешествия. В следующий раз, когда вам нужно будет войти в систему, используйте бумагу, чтобы найти пароль, связанный с порядковым номером, показанным в приглашении SSH, и введите его. После того, как вы использовали пароль, вы можете удалить его. Излишне говорить, что вы должны убедиться, что этот документ не попадет в чужие руки.

Когда вы использовали все пароли на бумаге, просто повторите этот шаг еще раз, чтобы сгенерировать больше паролей. Однако, если вы используете все 498 паролей и ваш порядковый номер станет нулевым, вам придется снова вызвать + opiepasswd -c +. Это сбрасывает случайное начальное число и порядковый номер.

Заключение

В реальной ситуации вы должны заранее подготовить необходимое количество паролей из безопасного места, записать их на бумаге и использовать их по одному, когда вам необходимо войти из небезопасного места. Храните бумагу в безопасности!

Из этого руководства вы узнали, как использовать систему аутентификации OPIE для безопасного входа на удаленный сервер FreeBSD с терминалов на ненадежных компьютерах. Вы узнали, как создавать одноразовые пароли и использовать их каждый раз, когда вам нужно войти в систему. Эта функция наиболее полезна для людей, которые постоянно находятся в движении и вынуждены использовать общедоступные компьютеры и сети.

Related