Релиз OpenSSH 7.8
24 августа 2018 года
После пяти месяцев разработки представлен релиз OpenSSH 7.8, открытой реализации клиента и сервера для работы по протоколам SSH 2.0 и SFTP.
Основные новшества:
- В ssh-keygen осуществлён переход на использование по умолчанию формата OpenSSH для хранения закрытых ключей, вместо заимствованного из OpenSSL формата PEM. Формат OpenSSH обеспечивает лучшую защиту от перебора паролей и поддерживает размещение комментариев в закрытых ключах. Для использования формата PEM теперь следует явно запускать ssh-keygen с опцией "-m PEM" при генерации или обновлении ключа;
- В sshd удалена встроенная поддержка многофакторной аутентификации S/Key (для использования S/Key теперь следует использовать внешние реализации через PAM или BSD auth);
- Код ssh почищен от компонентов для выполнения в режиме setuid. Попытка запуска ssh теперь приводит к выходу с выводом ошибки, если на исполняемый файл установлен флаг setuid или если uid не равен эффективному uid;
- Изменена семантика опций PubkeyAcceptedKeyTypes и
HostbasedAcceptedKeyTypes для sshd, в которых теперь нужно указывать и применяемый для аутентификации алгоритм формирования цифровой подписи (например, "rsa-sha2-256" или "rsa-sha2-512");
- Изменён приоритет обработки переменных окружения для sshd: ~/.ssh/environment и опции environment="..." в файлах authorized_keys теперь не переопределяют переменные окружения SSH_*, явно заданные для sshd;
- По умолчанию изменён IPQoS для ssh/sshd: для интерактивного трафика теперь применяется DSCP AF21, а для пакетных запросов CS1;
- Представлены новые алгоритмы цифровых подписей "rsa-sha2-256-cert-v01@openssh.com" и "rsa-sha2-512-cert-v01@openssh.com", которые указывают на необходимость использования в ходе аутентификации только RSA/SHA2;
- Добавлена возможность явного определения списка разрешённых переменных окружения для sshd, задаваемого через опцию PermitUserEnvironment, которая ранее позволяла только в общем виде разрешить или запретить пользовательские переменные окружения;
- В sshd_config добавлена новая директива PermitListen, а также аналогичная опция "permitlisten=" в authorized_keys, которые позволяют определить IP-адрес и порт для приёма соединений при удалённом перенаправлении трафика (ssh -R);
- Добавлена защита от атаки, позволяющей удалённому атакующему определить существует ли пользователь с данным именем в системе. Метод атаки базируется на разности поведения при обработке запроса на аутентификацию для существующего и неизвестного пользователя. Атакующий может отправить некорректный запрос аутентификации (например, отправить повреждённый пакет), в случае отсутствия пользователя в системе выполнение функции userauth_pubkey() завершалось сразу с отправкой ответа SSH2_MSG_USERAUTH_FAILURE. Если пользователь присутствует в системе, происходил сбой при вызове функции sshpkt_get_u8() и сервер просто молча закрывал соединение. Для противодействия подобным атакам также добавлена случайная задержка в размере 5-9мс, добавляемая при любом сбое аутентификации;
- Для sshd реализована новая директива SetEnv, позволяющая определять переменные окружения в файле sshd_config. Данные переменные имеют более высокий приоритет чем значения по умолчанию и переменные окружения, заданные пользователем;
- В ssh добавлена директива SetEnv, при указании которой переменные окружения для сеанса выставляются на основании значений, переданных сервером;
- Для очистки переменных окружения, ранее помеченных для отправки на сервер, добавлена команда "SendEnv -PATTERN";
- В ssh/sshd обеспечена передача UID в виде %-выражений во всех директивах, манипулирующих именем пользователя;
- В ssh добавлена возможность указания "ProxyJump=none" для отключения функциональности ProxyJump;
- В sshd обеспечена передача в PAM-модули детальных сведений об успешно завершённой аутентификации через переменную окружения SSH_AUTH_INFO_0;
- Улучшено определение неподдерживаемых опций компилятора;
- В sshd добавлена поддержка режима sandbox-изоляции в Linux для архитектуры s390;
- При сборке без OpenSSL для затравки генератора псевдослучайных чисел задействован вызов getrandom().
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.