Ограничение на количество попыток входа в систему

Для каждого пользователя допускается от 1 до <login_attempts_count> попыток входа в систему (<login_attempts_count>параметр из файла /opt/VPNagent/etc/auth_login.ini). Если все попытки входа в систему оказываются неуспешными, для пользователя включается режим длительного ожидания ввода пароля. Неуспешные попытки входа в систему в режиме длительного ожидания возможности ввода пароля в данном файле не фиксируются, но в логе они присутствуют.

При успешном входе в систему количество оставшихся попыток входа в систему возвращается к своему начальному значению (<login_attempts_count>).

Счетчик количества неудачных попыток входа в систему хранится в файле: /var/cspvpn/.auth_login_count_{7D5E617C-0E4E-4DD8-9193-0F6FB579C130}.<name>, где <name> – имя пользователя.

Формат файла бинарный (Owner – root, Group – root, Mode – 0600). Длина файла – 4 байта. Первые два символа – lc (сокращение от login count). Третий символ – код символа 0 (цифра ноль) плюс количество неудачных попыток входа, если количество попыток меньше десяти, то выглядит как числовое представление этого значения. Четвертый символ – код символа z минус количество неудачных попыток входа: 0 – z, 1 – y, 2 – x и т.д.

Начальное значение – lc0z (соответствует 0).

Файл будет создан при создании пользователя.

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

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

Отличить данную ситуацию от предыдущей можно по коду ошибки (см. раздел «Протоколирование событий», Таблица 2). Также данную ситуацию можно отличить по выводу параметра Status по команде show user: LONG WAIT before login  (corrupted data).

Кроме основного файла со счетчиком количества неудачных попыток входа в систему еще пишется копия этого файла: /var/cspvpn/.auth_login_count_{7D5E617C-0E4E-4DD8-9193-0F6FB579C130}.<name>.copy. Если основной файл отсутствует или поврежден, читается его копия. 

Для совместимости с предыдущими версиями продукта также поддерживается (только на чтение) старый формат файла: /var/cspvpn/.auth_login_count_{72216863-F47D-400D-B4DD-E9DB000E8CCE}.<name>. Длина 1 байт. В этом байте в виде числа хранится количество неудачных попыток входа в систему. Файл читается, только если отсутствует как основной файл, так и его копия.  При повреждении основного файла или его копии, старый формат файла не читается. После записи основного файла в новом формате и его копии, файл в старом формате удаляется.

Администратор может разблокировать пользователя с помощью команды:

unblock user <username>

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

Можно задавать эту команду для:

      административно заблокированного пользователя;

      пользователя, для которого по любой причине включен режим длительного ожидания возможности ввода пароля (пользователь переводится в штатное состояние);

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

Администратор может принудительно заблокировать пользователя с помощью команды: block user <username> 

Невозможно заблокировать самого себя. В этом случае будет выдано сообщение:

% You can't block current user

По данной команде выставляется специальный статус административной блокировки.