Описание работы утилиты auth_login

При старте утилита auth_login пишет свое название:

S-Terra administrative console.

Далее запрашивается имя пользователя (пустое имя пользователя не допускается – в этом случае выдается повторный запрос):

login as:

Далее запрашивается пароль (пустой пароль допускается):

<name>'s password:

 

Производятся проверки, допускается ли обработка введенного пароля для данного пользователя (подробнее см. подраздел «Ограничение на количество попыток входа в систему»). На данном этапе может быть выдано сообщение:

% Access denied

% The maximum number of login attempts for user <name> has been reached.

You should wait substantial period of time before the next login attempt.

You can press Ctrl+C to cancel.

Сообщение может появиться в следующих случаях:

·       Реальный пользователь (описанный в файле /opt/VPNagent/etc/auth_login.ini) ввел неправильный пароль, использовав в этот раз свою последнюю попытку.

·       Реальный пользователь (описанный в файле /opt/VPNagent/etc/auth_login.ini) ранее исчерпал допустимые попытки входа в систему. В отличие от предыдущей ситуации, в данном случае auth_login игнорирует первую попытку ввода пароля. Даже если был введен правильный пароль, он не будет принят. После длительного ожидания пароль будет запрошен еще раз. В этот и последующие разы пароль будет реально проверяться.

·       Попытка входа в систему неизвестным (не описанным в файле /opt/VPNagent/etc/auth_login.ini) пользователем.

·       Поврежден (имеет некорректный формат) файл, в котором хранится количество неуспешных попыток входа в систему данного пользователя.

·       Системная ошибка (не удалось прочитать или записать количество оставшихся попыток).

·       Реальный пользователь (описанный в файле /opt/VPNagent/etc/auth_login.ini) заблокирован администратором.

Пользователь не может отличить эти ситуации. Однако в логе, доступном администратору, эти ситуации можно различить по коду ошибки в сообщении.

 

После этого выдается таймер с обратным отсчетом до следующей попытки ввода пароля:

Time before next attempt: 00:59:59

После завершения обратного отсчета снова выдается запрос на ввод пароля:

<name>'s password:

В этот момент пользователь может снова ввести пароль.

В случае ошибки (неправильный пароль; неизвестный пользователь и т.п.) снова выдается сообщение, и цикл ожидания следующей попытки ввода пароля повторяется заново.

Пользователь может прервать ожидание с помощью Ctrl+C. В этом случае повторная попытка входа данным пользователем снова приведет к появлению данного сообщения и запуска длительного ожидания следующей попытки ввода пароля.

Выйти из цикла длительного ожидания ввода пароля можно либо по вводу правильного пароля, либо прервав по Ctrl+C.

На время работы цикла длительного ожидания ввода пароля, отключается таймер неактивности.

Он включается только после ввода правильного пароля.

 

Производится проверка полученного имени и пароля.

При использовании криптобиблиотеки компании «С-Терра СиЭсПи» возможно отсутствие инициализированного ДСЧ (например, при первом входе в систему). В этом случае:

На консоль выдается сообщение:

RNG  initialization  is  required. Press  Enter  to  continue...

Когда пользователь нажимает на Enter, запускается программа rnd_mgr. Происходит инициализация ДСЧ:

Если присутствует соответствующая аппаратная поддержка (например «Соболь») или если присутствует внешняя гамма, инициализация проходит неинтерактивно.

В противном случае вызывается интерактивная инициализация.

После успешной инициализации на консоль выдается сообщение от утилиты:

Successfully  initialized  RNG

 

Если проверка не пройдена:

Выполняется остановка исполнения на промежуток времени от 1 до 3 секунд.

На консоль выдается сообщение об ошибке:

% Access  denied 

Если у пользователя еще остались допустимые попытки входа в систему, выдается сообщение об их количестве:

% You have <n> attempt(s) left

где <n> – число оставшихся попыток (от 1 до <login_attempts_count> – 1; где <login_attempts_count> – параметр из файла /opt/VPNagent/etc/auth_login.ini).

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

 

Только для пользователя, использующего однофакторную аутентификацию:

Проверяется, не устарел ли текущий пароль.

В случае, если пароль устарел, выдается сообщение вида:

Your password has expired and must be changed

Далее запрашивается новый пароль:

New user password:

Если в этот момент нажать на Ctrl+C, будет выдано сообщение о необходимости смены пароля для продолжения работы (подробнее см. ниже) и снова будет запрошен новый пароль.

Такая логика работает только для первого запроса нового пароля. При повторных запросах нового пароля нажатие на Ctrl+C приводит к выходу из программы.

Если при запросе нового пароля ввести старый пароль, будет выдано сообщение об ошибке:

% You can't reuse old password

После этого будет выдано сообщение о необходимости смены пароля для продолжения работы (подробнее см. ниже) и снова будет запрошен новый пароль.

Далее запрашивается подтверждение нового пароля:

Re-type new password:

Если ввести несовпадающий пароль, будет выдано сообщение об ошибке:

% Passwords do not match

После этого будет выдано сообщение о необходимости смены пароля для продолжения работы (подробнее см. ниже) и снова будет запрошен новый пароль.

В случае ошибки оператора (введен пароль, совпадающий со старым; введен несовпадающий пароль при подтверждении), а также при попытке прерывания установки пароля с помощью Ctrl+C (но только при первом запросе) выдается сообщение о необходимости смены пароля для продолжения работы:

You must change your password to proceed.

You can press Ctrl+C to exit without password change.

После этого снова будет запрошен новый пароль.

После этого сообщения нажатие на Ctrl+C приведет к выходу из программы.

Устаревание пароля детектируется по файлу:

/var/cspvpn/.auth_login_password_timestamp_{9D5D1236-99D0-435C-A076-EEFF200A32FC}.<имя_пользователя>

В файле записано время выставления пароля в виде epoch (количество секунд, прошедших с полуночи по Гринвичу 1 января 1970 года). Формат файла – 64-битное целое число (длина файла – 8 байт). Сетевой порядок (от старшего байта к младшему).

Существует специальное значение: ff 00 00 00 00 00 00 01, обозначающее, что пароль никогда не должен устаревать.

Данное значение зарезервировано для предустановленного пользователя administrator.

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

Критерии, по которым пароль считается устаревшим:

Прошло больше <passwd_lifetime> дней с момента времени, записанного в файле; где <passwd_lifetime> – параметр из файла /opt/VPNagent/etc/auth_login.ini.

Текущее время меньше, чем записано в файле (часы были переведены назад).

Файл отсутствует.

Зафиксирована ошибка.

 

В случае успешной аутентификации количество неуспешных попыток входа данного пользователя в систему обнуляется, пользователь получает доступ к определенному набору команд. Пользователю выдается приглашение командного интерпретатора (длина приглашения не превышает 29 символов, при необходимости оно может быть урезано):

username@hostname]

где

username – имя пользователя

hostname] – имя хоста, на котором работает программа.