Добавить вторую аутентификацию для входа пользователя в ловушку

trap '' 2

code=`oathtool --base32 --totp "xxxxxxxxxxxx"`
echo -n Enter Code:
read -s password
echo ""
if [ "$password" == "$code" ]; then
        echo "You are allowed in"
else
        exit
fi

trap 2

Является ли размещение этого кода в верхней части моего .profile еще одним способом добавления двухфакторной аутентификации или это можно обойти?

Я знаю, что вы можете сделать что-то вроде этого , чтобы добавить двухфакторную аутентификацию, но я хочу иметь возможность настроить это.

0
25.05.2016, 22:36
1 ответ

Нет!

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

Давайте посмотрим, например:

# echo -en "echo byebye; exit"  > ~foo/.profile
# ssh foo@localhost
foo@localhost's password: 
[...]
byebye
Connection to localhost closed.

Но я все еще могу сказать оболочке сделать что-то совершенно другое. (Например, запустить другую оболочку.)

# ssh foo@localhost -t "/bin/sh"
foo@localhost's password: 
$ id
uid=1001(foo) gid=1001(foo) groups=1001(foo)

Вы могли бы изменить оболочку пользователя на что-то более ограниченное, программу, предназначенную только для запроса OTP и последующего запуска оболочки. Но это затруднит выполнение любых действий, требующих запуска другой оболочки. Кроме того, все, что делается в домене пользователя, может быть изменено им обратно, а это не то, чего обычно хотят при аутентификации.

Пожалуйста, делайте аутентификацию там, где ей и место, а это PAM в большинстве Linux.

2
28.01.2020, 02:35

Теги

Похожие вопросы