Релиз OpenSSH 7.6
После шести месяцев разработки представлен релиз OpenSSH 7.6, открытой реализации клиента и сервера для работы по протоколам SSH 2.0 и SFTP. Выпуск примечателен удалением из кодовой базы всех компонентов, связанных в реализацией протокола SSH1.
Протокол SSHv1 был признан устаревшим около 10 лет назад и серверная часть SSH1 была удалена достаточно давно, но возможность сборки клиента для SSH1 оставалась, что позволяло использовать актуальные выпуски OpenSSH для соединения с устаревшими системами и некоторым оборудованием (например, устаревшие модели Cisco и HUAWEI). Отныне код избавлен и от клиентских компонентов SSH1. Кроме недостаточного уровня защиты, обеспечение сборки с SSHv1 накладывало ограничения на кодовую базу. Например, работа OpenSSH без привязки к библиотеке OpenSSL возможна только при использовании протокола SSHv2 и отключение SSHv1 позволяет организовать поставку в дистрибутивах конфигураций OpenSSH, собранных без привязки к OpenSSL и самодостаточных в плане методов шифрования.
Полное прекращение поддержки SSH1 также позволило удалить реализации шифров arcfour, blowfish и CAST, а также RIPE-MD160 HMAC, которые были по умолчанию отключены в настройках. Кроме того, отныне запрещено использование RSA-ключей размером менее 1024 бит и отключена по умолчанию поддержка шифров CBC на стороне SSH-клиента (в сервере CBC был отключен несколько лет назад).
Другие изменения:
- Устранена проблема безопасности: sftp-server позволял создавать файлы нулевой длины, несмотря на включение в настройках режима только для чтения;
- В клиент ssh добавлена директива RemoteCommand, через которую можно на уровне файла конфигурации задать команду для выполнения на удалённой стороне сразу после входа, по аналогии с указанием команды в командной строке;
- В sshd добавлена опция ExposeAuthInfo, позволяющая организовать запись в файл лога с расширенными сведениями об используемых методах аутентификации;
- В клиент ssh добавлена поддержка динамического реверсивного проброса (reverse dynamic forwarding), при включении которого локальный ssh начинает работать как прокси SOCKS4/5, перенаправляющий через локальную систему соединения, запрошенные SOCKS-клиентом на удалённой стороне. Режим включается при помощи опции »-R» (RemoteForward) и реализован целиком на стороне клиента (может работать со старыми версиями sshd).
- В sshd разрешено указание директивы LogLevel в блоках Match файла конфигурации sshd_config;
- В ssh-keygen разрешено добавление произвольной строки или флага в создаваемый сертификат;
- В ssh-keygen обеспечена возможность использования ключа, хранимого в ssh-agent, в качестве CA при заверении сертификатов;
- В ssh и sshd разрешено указание флага IPQoS=none для выставления в ToS/DSCP значения, предлагаемого по умолчанию операционной системой;
- В ssh-add добавлен флаг »-q» для запуска ssh-add без вывода информации на экран;
- В ssh добавлены два новых режима работы директивы StrictHostKeyChecking:
- «accept-new» для автоматического принятия до сих пор не встречавшихся ключей, но блокирования сеансов для изменившихся или некорректных хостовых ключей (более безопасный вариант режима StrictHostKeyChecking=no);
- «off» — синоним ранее доступной настройки «StrictHostKeyChecking=no», при которой автоматически принимались до сих пор не встречавшихся ключи и разрешались соединения с известными некорректными хостовыми ключами;
- В ssh добавлена директива SyslogFacility, аналогичная ранее доступной директиве в sshd;
- При запуске sshd в Solaris обеспечен сброс дополнительных привилегий в sandbox-режиме: PRIV_DAX_ACCESS и PRIV_SYS_IB_INFO;
- В sshd реализована передача в PAM списка выполненных методов аутентификации через переменную окружения SSH_AUTH_INFO_0;
- Добавлены сборочные флаги »--with-cflags-after» и »--with-ldflags-after» для установки CFLAGS/LDFLAGS после заверения выполнения скрипта configure (полезно для принудительного подключения отладочных средств проверки кода и fuzzing-тестирования;
- Добавлена поверка на основе clang libFuzzer для кода разбора открытых ключей и верификации сигнатур.
© OpenNet