OpenSSH - свободно распространяемый и открытый программный проект, библиотека и программа командной строки, которая работает на фоне вашей операционной системы GNU / Linux и защищает всю вашу сеть от злоумышленников и злоумышленников. Это версия с открытым исходным кодом спецификации SSH (Secure Shell), специально разработанная для
Особенности с первого взгляда
OpenSSH - это проект с открытым исходным кодом, распространяемый по бесплатной лицензии. Он предлагает надежную аутентификацию на основе стандартов открытого ключа, аутентификации Kerberos и одноразовых паролей, надежного шифрования на основе алгоритмов AES, Blowfish, Arcfour и 3DES, поддержки пересылки X11 посредством шифрования всего трафика X Window System, а также AFS и Прохождение билетов в Kerberos.
Кроме того, поддержка переадресации портов функций программного обеспечения посредством шифрования каналов для устаревших протоколов, поддержка сжатия данных, поддержка перенаправления операторов с использованием стандарта аутентификации Single-Sign-On (SSO) и сервера SFTP (Secure FTP) и поддержки клиентов в SSH2 или SSH1.
Еще одна интересная особенность - совместимость, что означает, что проект соответствует версиям 1.3, 1.5 и 2.0 исходного протокола SSH (Secure Shell). После установки OpenSSH автоматически заменит стандартные программы FTP, Telnet, RCP и rlogin с безопасными версиями, такими как SFTP, SCP и SSH.
Под капотом, доступность и поддерживаемые ОС
Проект OpenSSH полностью написан на языке программирования C. Он состоял из основной реализации SSH и SSH-демона, который работает в фоновом режиме. Программное обеспечение распространяется главным образом как архив универсальных источников, который будет работать с любыми операционными системами GNU / Linux как на 32-битной, так и на 64-разрядной архитектурах.
Портативный OpenSSH
Портативная версия протокола OpenSSH также доступна для бесплатного скачивания на Softoware под названием Portable OpenSSH. Это версия с открытым исходным кодом для протоколов SSH версии 1 и SSH версии 2 для Linux, BSD и Solaris.
Что нового в этой версии:
- Потенциально-несовместимые изменения:
- Этот выпуск содержит ряд изменений, которые могут повлиять на существующие конфигурации:
- Этот выпуск удаляет поддержку сервера для протокола SSH v.1.
- ssh (1): удалить 3des-cbc из предложения клиента по умолчанию. 64-битные блочные шифры небезопасны в 2016 году, и мы не хотим ждать, пока атаки, подобные SWEET32, не будут распространены на SSH. Поскольку 3des-cbc был единственным обязательным шифром в RFC SSH, это может вызвать проблемы с подключением к более старым устройствам с использованием конфигурации по умолчанию, но очень вероятно, что такие устройства уже в любом случае нуждаются в явной конфигурации для ключей обмена и алгоритмов хост-клавиатуры. sshd (8): Удалите поддержку сжатия перед аутентификацией. В 1990-х годах, возможно, было достаточно разумно выполнить сжатие протокола, но сегодня это явно плохая идея с точки зрения криптографии (например, множественных атак с оскорбителями сжатия в TLS) и поверхности атаки. Предварительная поддержка сжатия по умолчанию была отключена по умолчанию для & gt; 10 лет. Поддержка остается в клиенте. ssh-agent откажется загружать модули PKCS # 11 за пределы белого списка доверенных путей по умолчанию. Белый список путей может быть указан во время выполнения.
- sshd (8): Когда принудительная команда появляется как в сертификате, так и в авторизованных ключах / принципалах command = ограничение, sshd теперь откажется принять сертификат, если они не идентичны. Предыдущее (документированное) поведение принудительной команды сертификата переопределяет другую, может быть немного запутанной и подверженной ошибкам. sshd (8): Удалите директиву конфигурации UseLogin и поддержку для того, чтобы / login / bin / login управляли сеансами входа в систему.
- Изменения с OpenSSH 7.3:
- Безопасность:
- ssh-agent (1): теперь откажется загружать модули PKCS # 11 из путей вне доверенного белого списка (настраивается во время выполнения). Запросы на загрузку модулей могут быть переданы через перенаправление агентов, и злоумышленник может попытаться загрузить враждебный модуль PKCS # 11 по каналу пересылаемого агента: модули PKCS # 11 являются общими библиотеками, поэтому это приведет к выполнению кода в системе, выполняющей ssh -agent, если злоумышленник контролирует перенаправленный агент-сокет (на хосте, на котором запущен сервер sshd), и возможность писать в файловую систему хоста, на котором запущен ssh-agent (обычно это хост, на котором запущен клиент ssh). Сообщается Jann Horn Project Zero.
- sshd (8): Когда разделение привилегий отключено, переадресованные сокеты Unix-домена будут созданы sshd (8) с привилегиями «root» вместо аутентифицированного пользователя. В этом выпуске отказывается переадресация сокетов в Unix-домене, когда разделение привилегий отключено (разделение привилегий включено по умолчанию в течение 14 лет). Сообщается Jann Horn Project Zero.
- sshd (8): избегайте теоретической утечки материала закрытого ключа хоста для дочерних процессов, разделенных привилегиями, через realloc () при чтении ключей. На практике такой проверки не наблюдалось для ключей нормального размера, и утечка для дочерних процессов напрямую не раскрывает ключевой материал непривилегированным пользователям. Сообщается Jann Horn Project Zero.
- sshd (8): Диспетчер разделяемой памяти, используемый поддержкой сжатия перед аутентификацией, имел проверки границ, которые могут быть устранены некоторыми оптимизирующими компиляторами. Кроме того, этот менеджер памяти был некорректно доступен, когда пре-аутентификация была отключена. Это может потенциально допускать атаки на привилегированный процесс мониторинга из изолированного процесса разделения привилегий (сначала требуется компромисс последнего). Этот выпуск удаляет поддержку сжатия предварительной аутентификации из sshd (8). Сообщается Гвидо Вранкеном с помощью инструмента определения неустойчивой оптимизации Stack (http://css.csail.mit.edu/stack/)
- sshd (8): исправить условие отказа в обслуживании, когда злоумышленник, отправляющий несколько сообщений KEXINIT, может потреблять до 128 МБ на соединение. Сообщается Ши Лэй из Gear Team, Qihoo 360.
- sshd (8): проверять диапазоны адресов для директив AllowUser и DenyUsers во время загрузки конфигурации и отказываться принимать недопустимые. Ранее было возможно указать недопустимые диапазоны адресов CIDR (например, user@127.1.2.3/55), и они всегда будут совпадать, что может привести к предоставлению доступа там, где он не был предназначен. Сообщается Лоуренсом Парри.
- Новые функции:
- ssh (1): добавьте режим мультиплексирования прокси-сервера в ssh (1), вдохновленный версией в PuTTY Саймоном Татхамом. Это позволяет клиенту мультиплексирования взаимодействовать с основным процессом с использованием поднабора протокола пакетов SSH и каналов через сокет Unix-домена, причем основной процесс действует как прокси-сервер, который преобразует идентификаторы каналов и т. Д. Это позволяет использовать режим мультиплексирования систем, которым не хватает передачи файлового дескриптора (используется текущим кодом мультиплексирования) и потенциально в сочетании с переадресацией сокетов в Unix-домене с клиентом и процессом мультиплексирования на разных компьютерах. Режим прокси-сервера мультиплексирования может быть вызван с использованием «ssh -O proxy ...»
- sshd (8): Добавьте параметр sshd_config DisableForwarding, который отключает переадресацию сокетов домена X11, агента, TCP, туннеля и Unix, а также все, что мы можем реализовать в будущем. Подобно флагу «ограничивать» authorized_keys, это должно быть простым и надежным способом ограничения учетной записи.
- sshd (8), ssh (1): Поддержка "curve25519-sha256" ключ замена способ. Это идентично поддерживаемому в настоящее время методу с именем «curve25519-sha256@libssh.org"».
- sshd (8): улучшите обработку SIGHUP, проверив, можно ли демонтировать sshd при запуске и пропустить вызов демону (3), если он есть. Это гарантирует, что перезапуск sshd (8) SIGHUP сохранит тот же идентификатор процесса, что и исходное выполнение. sshd (8) также отключит PidFile до перезагрузки SIGHUP и заново создаст его после успешного перезапуска, вместо того, чтобы оставлять устаревший файл в случае ошибки конфигурации. BZ # 2641
- sshd (8): Разрешить директивы ClientAliveInterval и ClientAliveCountMax появляться в блоках соответствия sshd_config.
- sshd (8): добавьте% -escapes в AuthorizedPrincipalsCommand, чтобы соответствовать тем, которые поддерживаются AuthorizedKeysCommand (ключ, тип ключа, отпечаток пальца и т. д.) и еще несколько, чтобы предоставить доступ к содержимому предлагаемого сертификата.
- Добавлены регрессионные тесты для сопоставления строк, согласования адресов и функций суффиксации строк.
- Улучшена замена фюзеров для замены ключей.
- Bugfixes:
- ssh (1): разрешить IdentityFile успешно загружать и использовать сертификаты, у которых нет соответствующего открытого открытого ключа. bz # 2617 сертификат id_rsa-cert.pub (и нет id_rsa.pub).
- ssh (1): Исправьте аутентификацию открытого ключа, когда используется многократная аутентификация, а публикация - это не только первый метод. BZ # 2642
- regress: разрешить запуск межоперационных тестов PuTTY без присмотра. BZ # 2639
- ssh-agent (1), ssh (1): улучшить отчет при попытке загрузить ключи из токенов PKCS # 11 с меньшим количеством бесполезных сообщений журнала и более подробно в сообщениях отладки. BZ # 2610
- ssh (1): при срывании соединений ControlMaster не загрязняйте stderr, когда LogLevel = quiet.
- sftp (1): On ^ Z ждать, пока основной ssh (1) не будет приостановлен до приостановки sftp (1), чтобы гарантировать, что ssh (1) правильно восстановит режим терминала, если приостановлено во время запроса пароля.
- ssh (1): Избегайте ожидания, когда ssh (1) приостанавливается во время запроса пароля.
- ssh (1), sshd (8): Правильно сообщайте об ошибках при отправке сообщений ext-info.
- sshd (8): исправить ошибку NULL-deref, если sshd (8) получил сообщение NEWKEYS из последовательности.
- sshd (8): Исправьте список поддерживаемых сигнатурных алгоритмов, отправленных в расширении server-sig-algs. BZ # 2547
- sshd (8): Исправить отправку сообщения ext_info, если privsep отключен.
- sshd (8): более строго соблюдайте ожидаемый порядок вызовов вызовов разделения привилегий, используемых для аутентификации, и разрешайте их только тогда, когда их соответствующие методы проверки подлинности включены в конфигурации
- sshd (8): исправить неинициализированную опцию в вызове getsockopt (); безвредный для Unix / BSD, но потенциально опасный для Cygwin.
- Исправить ложноположительные отчеты, вызванные явным_bzero (3), которые не распознаются как инициализатор памяти при компиляции с -fsanitize-memory. sshd_config (5): используйте 2001: db8 :: / 32, официальную подсеть IPv6 для примеров конфигурации.
- Портативность:
- В средах, настроенных с турецкими локалями, вернитесь в локаль C / POSIX, чтобы избежать ошибок в синтаксическом анализе, вызванных уникальной обработкой букв «i» и «I». BZ # 2643
- sftp-server (8), ssh-agent (1): запретить ptrace в OS X с помощью ptrace (PT_DENY_ATTACH, ..)
- ssh (1), sshd (8): раскрыть шифры AES-CTR по старым (~ 0.9.8) OpenSSL.
- Исправить компиляцию для libcrypto, скомпилированную без поддержки RIPEMD160.
- contrib: добавьте gnome-ssh-askpass3 с поддержкой GTK + 3. bz # 2640 sshd (8): Улучшите повторение PRNG во время разделения привилегий и принудительного libcrypto, чтобы получить высококачественное семя перед chroot или sandboxing.
- Все: Явно тестируйте сломанный strnvis. NetBSD добавила strnvis и, к сожалению, сделала его несовместимым с существующим в OpenBSD и Linux libbsd (первый существовал уже более десяти лет). Попытайтесь обнаружить этот беспорядок и предположите единственный безопасный вариант, если мы перекрестно компилируем.
Что нового в версии:
- Потенциально-несовместимые изменения:
- Этот выпуск содержит ряд изменений, которые могут повлиять на существующие конфигурации:
- Этот выпуск удаляет поддержку сервера для протокола SSH v.1.
- ssh (1): удалить 3des-cbc из предложения клиента по умолчанию. 64-битные блочные шифры небезопасны в 2016 году, и мы не хотим ждать, пока атаки, подобные SWEET32, не будут распространены на SSH. Поскольку 3des-cbc был единственным обязательным шифром в RFC SSH, это может вызвать проблемы с подключением к более старым устройствам с использованием конфигурации по умолчанию, но очень вероятно, что такие устройства уже в любом случае нуждаются в явной конфигурации для ключей обмена и алгоритмов хост-клавиатуры. sshd (8): Удалите поддержку сжатия перед аутентификацией. В 1990-х годах, возможно, было достаточно разумно выполнить сжатие протокола, но сегодня это явно плохая идея с точки зрения криптографии (например, множественных атак с оскорбителями сжатия в TLS) и поверхности атаки. Предварительная поддержка сжатия по умолчанию была отключена по умолчанию для & gt; 10 лет. Поддержка остается в клиенте. ssh-agent откажется загружать модули PKCS # 11 за пределы белого списка доверенных путей по умолчанию. Белый список путей может быть указан во время выполнения.
- sshd (8): Когда принудительная команда появляется как в сертификате, так и в авторизованных ключах / принципалах command = ограничение, sshd теперь откажется принять сертификат, если они не идентичны. Предыдущее (документированное) поведение принудительной команды сертификата переопределяет другую, может быть немного запутанной и подверженной ошибкам. sshd (8): Удалите директиву конфигурации UseLogin и поддержку для того, чтобы / login / bin / login управляли сеансами входа в систему.
- Изменения с OpenSSH 7.3:
- Безопасность:
- ssh-agent (1): теперь откажется загружать модули PKCS # 11 из путей вне доверенного белого списка (настраивается во время выполнения). Запросы на загрузку модулей могут быть переданы через перенаправление агентов, и злоумышленник может попытаться загрузить враждебный модуль PKCS # 11 по каналу пересылаемого агента: модули PKCS # 11 являются общими библиотеками, поэтому это приведет к выполнению кода в системе, выполняющей ssh -agent, если злоумышленник контролирует перенаправленный агент-сокет (на хосте, на котором запущен сервер sshd), и возможность писать в файловую систему хоста, на котором запущен ssh-agent (обычно это хост, на котором запущен клиент ssh). Сообщается Jann Horn Project Zero.
- sshd (8): Когда разделение привилегий отключено, переадресованные сокеты Unix-домена будут созданы sshd (8) с привилегиями «root» вместо аутентифицированного пользователя. В этом выпуске отказывается переадресация сокетов в Unix-домене, когда разделение привилегий отключено (разделение привилегий включено по умолчанию в течение 14 лет). Сообщается Jann Horn Project Zero.
- sshd (8): избегайте теоретической утечки материала закрытого ключа хоста для дочерних процессов, разделенных привилегиями, через realloc () при чтении ключей. На практике такой проверки не наблюдалось для ключей нормального размера, и утечка для дочерних процессов напрямую не раскрывает ключевой материал непривилегированным пользователям. Сообщается Jann Horn Project Zero.
- sshd (8): Диспетчер разделяемой памяти, используемый поддержкой сжатия перед аутентификацией, имел проверки границ, которые могут быть устранены некоторыми оптимизирующими компиляторами. Кроме того, этот менеджер памяти был некорректно доступен, когда пре-аутентификация была отключена. Это может потенциально допускать атаки на привилегированный процесс мониторинга из изолированного процесса разделения привилегий (сначала требуется компромисс последнего). Этот выпуск удаляет поддержку сжатия предварительной аутентификации из sshd (8). Сообщается Гвидо Вранкеном с помощью инструмента определения неустойчивой оптимизации Stack (http://css.csail.mit.edu/stack/)
- sshd (8): исправить условие отказа в обслуживании, когда злоумышленник, отправляющий несколько сообщений KEXINIT, может потреблять до 128 МБ на соединение. Сообщается Ши Лэй из Gear Team, Qihoo 360.
- sshd (8): проверять диапазоны адресов для директив AllowUser и DenyUsers во время загрузки конфигурации и отказываться принимать недопустимые. Ранее было возможно указать недопустимые диапазоны адресов CIDR (например, user@127.1.2.3/55), и они всегда будут совпадать, что может привести к предоставлению доступа там, где он не был предназначен. Сообщается Лоуренсом Парри.
- Новые функции:
- ssh (1): добавьте режим мультиплексирования прокси-сервера в ssh (1), вдохновленный версией в PuTTY Саймоном Татхамом. Это позволяет клиенту мультиплексирования взаимодействовать с основным процессом с использованием поднабора протокола пакетов SSH и каналов через сокет Unix-домена, причем основной процесс действует как прокси-сервер, который преобразует идентификаторы каналов и т. Д. Это позволяет использовать режим мультиплексирования систем, которым не хватает передачи файлового дескриптора (используется текущим кодом мультиплексирования) и потенциально в сочетании с переадресацией сокетов в Unix-домене с клиентом и процессом мультиплексирования на разных компьютерах. Режим прокси-сервера мультиплексирования может быть вызван с использованием «ssh -O proxy ...»
- sshd (8): Добавьте параметр sshd_config DisableForwarding, который отключает переадресацию сокетов домена X11, агента, TCP, туннеля и Unix, а также все, что мы можем реализовать в будущем. Подобно флагу «ограничивать» authorized_keys, это должно быть простым и надежным способом ограничения учетной записи.
- sshd (8), ssh (1): Поддержка "curve25519-sha256" ключ замена способ. Это идентично поддерживаемому в настоящее время методу с именем «curve25519-sha256@libssh.org"».
- sshd (8): улучшите обработку SIGHUP, проверив, можно ли демонтировать sshd при запуске и пропустить вызов демону (3), если он есть. Это гарантирует, что перезапуск sshd (8) SIGHUP сохранит тот же идентификатор процесса, что и исходное выполнение. sshd (8) также отключит PidFile до перезагрузки SIGHUP и заново создаст его после успешного перезапуска, вместо того, чтобы оставлять устаревший файл в случае ошибки конфигурации. BZ # 2641
- sshd (8): Разрешить директивы ClientAliveInterval и ClientAliveCountMax появляться в блоках соответствия sshd_config.
- sshd (8): добавьте% -escapes в AuthorizedPrincipalsCommand, чтобы соответствовать тем, которые поддерживаются AuthorizedKeysCommand (ключ, тип ключа, отпечаток пальца и т. д.) и еще несколько, чтобы предоставить доступ к содержимому предлагаемого сертификата.
- Добавлены регрессионные тесты для сопоставления строк, согласования адресов и функций суффиксации строк.
- Улучшена замена фюзеров для замены ключей.
- Bugfixes:
- ssh (1): разрешить IdentityFile успешно загружать и использовать сертификаты, у которых нет соответствующего открытого открытого ключа. bz # 2617 сертификат id_rsa-cert.pub (и нет id_rsa.pub).
- ssh (1): Исправьте аутентификацию открытого ключа, когда используется многократная аутентификация, а публикация - это не только первый метод. BZ # 2642
- regress: разрешить запуск межоперационных тестов PuTTY без присмотра. BZ # 2639
- ssh-agent (1), ssh (1): улучшить отчет при попытке загрузить ключи из токенов PKCS # 11 с меньшим количеством бесполезных сообщений журнала и более подробно в сообщениях отладки. BZ # 2610
- ssh (1): при срывании соединений ControlMaster не загрязняйте stderr, когда LogLevel = quiet.
- sftp (1): On ^ Z ждать, пока основной ssh (1) не будет приостановлен до приостановки sftp (1), чтобы гарантировать, что ssh (1) правильно восстановит режим терминала, если приостановлено во время запроса пароля.
- ssh (1): Избегайте ожидания, когда ssh (1) приостанавливается во время запроса пароля.
- ssh (1), sshd (8): Правильно сообщайте об ошибках при отправке сообщений ext-info.
- sshd (8): исправить ошибку NULL-deref, если sshd (8) получил сообщение NEWKEYS из последовательности.
- sshd (8): Исправьте список поддерживаемых сигнатурных алгоритмов, отправленных в расширении server-sig-algs. BZ # 2547
- sshd (8): Исправить отправку сообщения ext_info, если privsep отключен.
- sshd (8): более строго соблюдайте ожидаемый порядок вызовов вызовов разделения привилегий, используемых для аутентификации, и разрешайте их только тогда, когда их соответствующие методы проверки подлинности включены в конфигурации
- sshd (8): исправить неинициализированную опцию в вызове getsockopt (); безвредный для Unix / BSD, но потенциально опасный для Cygwin.
- Исправить ложноположительные отчеты, вызванные явным_bzero (3), которые не распознаются как инициализатор памяти при компиляции с -fsanitize-memory. sshd_config (5): используйте 2001: db8 :: / 32, официальную подсеть IPv6 для примеров конфигурации.
- Портативность:
- В средах, настроенных с турецкими локалями, вернитесь в локаль C / POSIX, чтобы избежать ошибок в синтаксическом анализе, вызванных уникальной обработкой букв «i» и «I». BZ # 2643
- sftp-server (8), ssh-agent (1): запретить ptrace в OS X с помощью ptrace (PT_DENY_ATTACH, ..)
- ssh (1), sshd (8): раскрыть шифры AES-CTR по старым (~ 0.9.8) OpenSSL.
- Исправить компиляцию для libcrypto, скомпилированную без поддержки RIPEMD160.
- contrib: добавьте gnome-ssh-askpass3 с поддержкой GTK + 3. bz # 2640 sshd (8): Улучшите повторение PRNG во время разделения привилегий и принудительного libcrypto, чтобы получить высококачественное семя перед chroot или sandboxing.
- Все: Явно тестируйте сломанный strnvis. NetBSD добавила strnvis и, к сожалению, сделала его несовместимым с существующим в OpenBSD и Linux libbsd (первый существовал уже более десяти лет). Попытайтесь обнаружить этот беспорядок и предположите единственный безопасный вариант, если мы перекрестно компилируем.
Что нового в версии 7.4:
- Потенциально-несовместимые изменения:
- Этот выпуск содержит ряд изменений, которые могут повлиять на существующие конфигурации:
- Этот выпуск удаляет поддержку сервера для протокола SSH v.1.
- ssh (1): удалить 3des-cbc из предложения клиента по умолчанию. 64-битные блочные шифры небезопасны в 2016 году, и мы не хотим ждать, пока атаки, подобные SWEET32, не будут распространены на SSH. Поскольку 3des-cbc был единственным обязательным шифром в RFC SSH, это может вызвать проблемы с подключением к более старым устройствам с использованием конфигурации по умолчанию, но очень вероятно, что такие устройства уже в любом случае нуждаются в явной конфигурации для ключей обмена и алгоритмов хост-клавиатуры. sshd (8): Удалите поддержку сжатия перед аутентификацией. В 1990-х годах, возможно, было достаточно разумно выполнить сжатие протокола, но сегодня это явно плохая идея с точки зрения криптографии (например, множественных атак с оскорбителями сжатия в TLS) и поверхности атаки. Предварительная поддержка сжатия по умолчанию была отключена по умолчанию для & gt; 10 лет. Поддержка остается в клиенте. ssh-agent откажется загружать модули PKCS # 11 за пределы белого списка доверенных путей по умолчанию. Белый список путей можно указать во время выполнения.
- sshd (8): Когда принудительная команда появляется как в сертификате, так и в авторизованных ключах / принципалах command = ограничение, sshd теперь откажется принять сертификат, если они не идентичны. Предыдущее (документированное) поведение принудительной команды сертификата переопределяет другую, может быть немного запутанной и подверженной ошибкам. sshd (8): Удалите директиву конфигурации UseLogin и поддержку для того, чтобы / login / bin / login управляли сеансами входа в систему.
- Изменения с OpenSSH 7.3:
- Безопасность:
- ssh-agent (1): теперь откажется загружать модули PKCS # 11 из путей вне доверенного белого списка (настраивается во время выполнения). Запросы на загрузку модулей могут быть переданы через перенаправление агентов, и злоумышленник может попытаться загрузить враждебный модуль PKCS # 11 по каналу пересылаемого агента: модули PKCS # 11 являются общими библиотеками, поэтому это приведет к выполнению кода в системе, выполняющей ssh -agent, если злоумышленник контролирует перенаправленный агент-сокет (на хосте, на котором запущен сервер sshd), и возможность писать в файловую систему хоста, на котором запущен ssh-agent (обычно это хост, на котором запущен клиент ssh). Сообщается Jann Horn Project Zero.
- sshd (8): Когда разделение привилегий отключено, переадресованные сокеты Unix-домена будут созданы sshd (8) с привилегиями «root» вместо аутентифицированного пользователя. В этом выпуске отказывается переадресация сокетов в Unix-домене, когда разделение привилегий отключено (разделение привилегий включено по умолчанию в течение 14 лет). Сообщается Jann Horn Project Zero.
- sshd (8): избегайте теоретической утечки материала закрытого ключа хоста для дочерних процессов, разделенных привилегиями, через realloc () при чтении ключей. На практике такой проверки не наблюдалось для ключей нормального размера, и утечка для дочерних процессов напрямую не раскрывает ключевой материал непривилегированным пользователям. Сообщается Jann Horn Project Zero.
- sshd (8): Диспетчер разделяемой памяти, используемый поддержкой сжатия перед аутентификацией, имел проверки границ, которые могут быть устранены некоторыми оптимизирующими компиляторами. Кроме того, этот менеджер памяти был некорректно доступен, когда пре-аутентификация была отключена. Это может потенциально допускать атаки на привилегированный процесс мониторинга из изолированного процесса разделения привилегий (сначала требуется компромисс последнего). Этот выпуск удаляет поддержку сжатия предварительной аутентификации из sshd (8). Сообщается Гвидо Вранкеном с помощью инструмента определения неустойчивой оптимизации Stack (http://css.csail.mit.edu/stack/)
- sshd (8): исправить условие отказа в обслуживании, когда злоумышленник, отправляющий несколько сообщений KEXINIT, может потреблять до 128 МБ на соединение. Сообщается Ши Лэй из Gear Team, Qihoo 360.
- sshd (8): проверять диапазоны адресов для директив AllowUser и DenyUsers во время загрузки конфигурации и отказываться принимать недопустимые. Ранее было возможно указать недопустимые диапазоны адресов CIDR (например, user@127.1.2.3/55), и они всегда будут совпадать, что может привести к предоставлению доступа там, где он не был предназначен. Сообщается Лоуренсом Парри.
- Новые функции:
- ssh (1): добавьте режим мультиплексирования прокси-сервера в ssh (1), вдохновленный версией в PuTTY Саймоном Татхамом. Это позволяет клиенту мультиплексирования взаимодействовать с основным процессом с использованием поднабора протокола пакетов SSH и каналов через сокет Unix-домена, причем основной процесс действует как прокси-сервер, который преобразует идентификаторы каналов и т. Д. Это позволяет использовать режим мультиплексирования систем, которым не хватает передачи файлового дескриптора (используется текущим кодом мультиплексирования) и потенциально в сочетании с переадресацией сокетов в Unix-домене с клиентом и процессом мультиплексирования на разных компьютерах. Режим прокси-сервера мультиплексирования может быть вызван с помощью «ssh -O proxy ...»
- sshd (8): Добавьте параметр sshd_config DisableForwarding, который отключает переадресацию сокетов домена X11, агента, TCP, туннеля и Unix, а также все, что мы можем реализовать в будущем. Подобно флагу «ограничивать» authorized_keys, это должно быть простым и надежным способом ограничения учетной записи.
- sshd (8), ssh (1): Поддержка метода обмена ключами «curve25519-sha256». Это идентично поддерживаемому в настоящее время методу «curve25519-sha256@libssh.org».
- sshd (8): улучшите обработку SIGHUP, проверив, можно ли демонтировать sshd при запуске и пропустить вызов демону (3), если он есть. Это гарантирует, что перезапуск sshd (8) SIGHUP сохранит тот же идентификатор процесса, что и исходное выполнение. sshd (8) также отключит PidFile до перезагрузки SIGHUP и заново создаст его после успешного перезапуска, вместо того, чтобы оставлять устаревший файл в случае ошибки конфигурации. BZ # 2641
- sshd (8): Разрешить директивы ClientAliveInterval и ClientAliveCountMax появляться в блоках соответствия sshd_config.
- sshd (8): добавьте% -escapes в AuthorizedPrincipalsCommand, чтобы соответствовать тем, которые поддерживаются AuthorizedKeysCommand (ключ, тип ключа, отпечаток пальца и т. д.) и еще несколько, чтобы предоставить доступ к содержимому предлагаемого сертификата.
- Добавлены регрессионные тесты для сопоставления строк, согласования адресов и функций суффиксации строк.
- Улучшена замена фюзеров для замены ключей.
- Bugfixes:
- ssh (1): разрешить IdentityFile успешно загружать и использовать сертификаты, у которых нет соответствующего открытого открытого ключа. bz # 2617 сертификат id_rsa-cert.pub (и нет id_rsa.pub).
- ssh (1): Исправьте аутентификацию открытого ключа, когда используется многократная аутентификация, а публикация - это не только первый метод. BZ # 2642
- regress: разрешить запуск межоперационных тестов PuTTY без присмотра. BZ # 2639
- ssh-agent (1), ssh (1): улучшить отчет при попытке загрузить ключи из токенов PKCS # 11 с меньшим количеством бесполезных сообщений журнала и более подробно в сообщениях отладки. BZ # 2610
- ssh (1): при срывании соединений ControlMaster не загрязняйте stderr, когда LogLevel = quiet.
- sftp (1): On ^ Z ждать, пока основной ssh (1) не будет приостановлен до приостановки sftp (1), чтобы гарантировать, что ssh (1) правильно восстановит режим терминала, если приостановлено во время запроса пароля.
- ssh (1): Избегайте ожидания, когда ssh (1) приостанавливается во время запроса пароля.
- ssh (1), sshd (8): Правильно сообщайте об ошибках при отправке сообщений ext-info.
- sshd (8): исправить ошибку NULL-deref, если sshd (8) получил сообщение NEWKEYS из последовательности.
- sshd (8): Исправьте список поддерживаемых сигнатурных алгоритмов, отправленных в расширении server-sig-algs. BZ # 2547
- sshd (8): Исправить отправку сообщения ext_info, если privsep отключен.
- sshd (8): более строго соблюдайте ожидаемый порядок вызовов вызовов разделения привилегий, используемых для аутентификации, и разрешайте их только тогда, когда их соответствующие методы проверки подлинности включены в конфигурации
- sshd (8): исправить неинициализированную опцию в вызове getsockopt (); безвредный для Unix / BSD, но потенциально опасный для Cygwin.
- Исправить ложноположительные отчеты, вызванные явным_bzero (3), которые не распознаются как инициализатор памяти при компиляции с -fsanitize-memory. sshd_config (5): используйте 2001: db8 :: / 32, официальную подсеть IPv6 для примеров конфигурации.
- Портативность:
- В средах, настроенных с турецкими локалями, вернитесь в локаль C / POSIX, чтобы избежать ошибок в синтаксическом анализе, вызванных уникальной обработкой букв «i» и «I». BZ # 2643
- sftp-server (8), ssh-agent (1): запретить ptrace в OS X с помощью ptrace (PT_DENY_ATTACH, ..)
- ssh (1), sshd (8): раскрыть шифры AES-CTR по старым (~ 0.9.8) OpenSSL.
- Исправить компиляцию для libcrypto, скомпилированную без поддержки RIPEMD160.
- contrib: Добавьте gnome-ssh-askpass3 с поддержкой GTK + 3. bz # 2640 sshd (8): Улучшите повторение PRNG во время разделения привилегий и принудительного libcrypto, чтобы получить высококачественное семя перед chroot или sandboxing.
- Все: Явно тестируйте сломанный strnvis. NetBSD добавила strnvis и, к сожалению, сделала его несовместимым с существующим в OpenBSD и Linux libbsd (первый существовал уже более десяти лет). Попытайтесь обнаружить этот беспорядок и предположите единственный безопасный вариант, если мы перекрестно компилируем.
Что нового в версии 7.3:
- Безопасность:
- sshd (8): Сгладить потенциальную атаку отказа в обслуживании с помощью функции crypt (3) системы через sshd (8). Злоумышленник может отправлять очень длинные пароли, что может привести к чрезмерному использованию ЦП в склепе (3). sshd (8) теперь отказывается принимать запросы на аутентификацию пароля длиной более 1024 символов. Независимо сообщал Томас Кутан (Oracle), Андрес Рохас и Хавьер Ньето.
- sshd (8): Уменьшить временные различия в аутентификации паролей, которые могут использоваться для распознавания действительных из недопустимых имен учетной записи при отправке длинных паролей, и на сервере используются определенные алгоритмы хеширования пароля. CVE-2016-6210, сообщает EddieEzra.Harari на verint.com
- ssh (1), sshd (8): Исправьте наблюдаемую слабость синхронизации в контрмерах прохода оракула CBC. Об этом сообщили Жан Поль Дегабрие, Кенни Патерсон, Торбен Хансен и Мартин Альбрехт. Обратите внимание, что CBC-шифры по умолчанию отключены и включены только для совместимости с предыдущими версиями.
- ssh (1), sshd (8): улучшите порядок операций проверки MAC-адресов для MAC-алгоритмов MAC-шифрования с шифрованием, затем-MAC (EtM), чтобы проверить MAC до дешифрования любого зашифрованного текста. Это устраняет возможность синхронизации разности утечек фактов об открытом тексте, хотя такой утечки не наблюдается. Об этом сообщили Жан Поль Дегабрие, Кенни Патерсон, Торбен Хансен и Мартин Альбрехт. sshd (8): (только для переноски) Игнорируйте VAM-среду, когда UseLogin = yes. Если PAM настроен на чтение заданных пользователем переменных среды и UseLogin = yes в sshd_config, тогда враждебный локальный пользователь может атаковать / bin / login через LD_PRELOAD или аналогичные переменные среды, заданные через PAM. CVE-2015-8325, найденный Шаяном Садыхом.
- Новые функции:
- ssh (1): добавьте параметр ProxyJump и соответствующий флаг командной строки -J, чтобы разрешить упрощенную косвенность через один или несколько бастионов SSH или «прыгать с хостами».
- ssh (1): добавьте параметр IdentityAgent, чтобы разрешить указание определенных сокетов агента вместо того, чтобы принимать его из среды. ssh (1): Разрешить ExitOnForwardFailure и ClearAllForwardings быть необязательно переопределенными при использовании ssh -W. BZ # 2577
- ssh (1), sshd (8): Реализация поддержки режима терминала IUTF8 в соответствии с проектом draft-sgtatham-secsh-iutf8-00. ssh (1), sshd (8): добавьте поддержку дополнительных фиксированных групп Diffie-Hellman 2K, 4K и 8K из draft-ietf-curdle-ssh-kex-sha2-03.
- ssh-keygen (1), ssh (1), sshd (8): поддержка сигнатур SHA256 и SHA512 RSA в сертификатах; ssh (1): добавьте директиву Include для файлов ssh_config (5).
- ssh (1): Разрешить символы UTF-8 в баннерах предварительной аутентификации, отправленных с сервера. BZ # 2058
- Bugfixes:
- ssh (1), sshd (8): Уменьшите уровень syslog некоторых относительно общих событий протокола от LOG_CRIT. BZ # 2585
- sshd (8): Отказаться от аутентификацииMethods = "" в конфигурациях и принять AuthenticationMethods = any для поведения по умолчанию, не требующего множественной аутентификации. BZ # 2398
- sshd (8): Удалите устаревшее и вводящее в заблуждение «ВОЗМОЖНОЕ ВОЗВРАЩЕНИЕ ВПЕРЕДИ!». когда прямой и обратный DNS не совпадают. BZ # 2585
- ssh (1): закрыть контрольный процесс Stprer ControlPersist, кроме режима отладки или при входе в syslog. BZ # 1988
- misc: Сделать описание PROTOCOL для direct-streamlocal@openssh.com. Открытые сообщения канала соответствуют развернутому коду. BZ # 2529
- ssh (1): Дедублировать записи LocalForward и RemoteForward для исправления сбоев при включении как календаря ExitOnForwardFailure, так и имени хоста. BZ # 2562
- sshd (8): удалить резервную копию от модулей до устаревшего файла «простых чисел», который устарел в 2001 году. bz # 2559.
- sshd_config (5): Правильное описание UseDNS: оно влияет на обработку имени хоста ssh для authorized_keys, not known_hosts; bz # 2554 ssh (1): Исправьте аутентификацию с использованием одиночных ключей сертификата в агенте без соответствующих закрытых ключей в файловой системе. BZ # 2550
- sshd (8): отправлять клики ClientAliveInterval, когда установлен параметр RekeyLimit, основанный на времени; ранее неактивные пакеты не отправлялись. BZ # 2252
Что нового в версии 7.2:
- Безопасность:
- ssh (1), sshd (8): удалить незавершенный и неиспользуемый код роуминга (уже принудительно отключен в OpenSSH 7.1p2).
- ssh (1): устранить отказ от ненадежной пересылки X11 в доверенную пересылку, когда X-сервер отключает расширение SECURITY.
- ssh (1), sshd (8): увеличьте минимальный размер модуля, поддерживаемый для обмена diffie-hellman-group, до 2048 бит.
- sshd (8): песочница pre-auth теперь включена по умолчанию (предыдущие выпуски активировали ее для новых установок через sshd_config).
- Новые функции:
- all: добавить поддержку сигнатур RSA с использованием хэш-алгоритмов SHA-256/512 на основе draft-rsa-dsa-sha2-256-03.txt и draft-ssh-ext-info-04.txt.
- ssh (1): добавьте опцию клиента AddKeysToAgent, которая может быть настроена на «да», «нет», «спросить» или «подтвердить», а по умолчанию - «нет». Когда этот параметр включен, закрытый ключ, который используется во время проверки подлинности, будет добавлен в ssh-agent, если он запущен (с подтверждением включено, если установлено значение «подтвердить»).
- sshd (8): добавьте новый параметр authorized_keys «ограничивать», который включает все текущие и будущие ограничения ключа (нет - * - пересылка и т. д.). Также добавьте разрешающие версии существующих ограничений, например. "no-pty" - & gt; «Псевдотерминал». Это упрощает задачу настройки ограниченных ключей и гарантирует, что они максимально ограничены, независимо от каких-либо разрешений, которые мы могли бы реализовать в будущем. ssh (1): добавить параметр ssh_config CertificateFile для явного указания сертификатов. BZ # 2436
- ssh-keygen (1): разрешить ssh-keygen изменять комментарий для всех поддерживаемых форматов.
- ssh-keygen (1): разрешить отпечатки пальцев со стандартного ввода, например. "ssh-keygen -lf -"
- ssh-keygen (1): разрешить отпечаток нескольких открытых ключей в файле, например. "ssh-keygen -lf ~ / .ssh / authorized_keys" bz # 1319
- sshd (8): поддержка «none» в качестве аргумента для sshd_config Foreground и ChrootDirectory. Полезно внутри блоков соответствия для переопределения глобального значения по умолчанию. BZ # 2486
- ssh-keygen (1): поддержка нескольких сертификатов (по одной в строке) и чтение со стандартного ввода (с использованием «-f -») для «ssh-keygen -L» ssh-keyscan (1): добавить «ssh- keyscan -c ... ", чтобы разрешить выборку сертификатов вместо простых ключей.
- ssh (1): лучше обработать привязанные FQDN (например, 'cvs.openbsd.org.') в canonicalisation имени хоста - относиться к ним как к каноническому и удалять завершающий '.' перед сопоставлением ssh_config.
- Bugfixes:
- sftp (1): существующие каталоги назначения не должны прерывать рекурсивные загрузки (регрессия в openssh 6.8) bz # 2528
- ssh (1), sshd (8): правильно отправить ответы SSH2_MSG_UNIMPLEMENTED на неожиданные сообщения во время обмена ключами. BZ # 2949
- ssh (1): отказать в попытке установить ConnectionAttempts = 0, что не имеет смысла и приведет к тому, что ssh напечатает неинициализированную переменную стека. BZ # 2500
- ssh (1): исправить ошибки при попытке подключения к локальным адресам IPv6 с включенной канонизацией имени хоста.
- sshd_config (5): укажите еще несколько вариантов, используемых в блоках соответствия. BZ # 2489
- sshd (8): исправить «PubkeyAcceptedKeyTypes + ...» внутри блока соответствия. ssh (1): расширять символы тильды в именах файлов, переданных в -i, перед проверкой наличия файла идентификации. Избегает путаницы для случаев, когда оболочка не расширяется (например, «-i ~ / file» или «-i ~ / file»). BZ # 2481
- ssh (1): не добавляйте «exec» к команде оболочки, запущенной командой «Match exec» в файле конфигурации, что может привести к сбою некоторых команд в определенных средах. BZ # 2471
- ssh-keyscan (1): исправить вывод для нескольких хостов / addrs в одной строке, когда используется хеширование хоста или используется нестандартный порт bz # 2479
- sshd (8): пропустить сообщение «Не удалось chdir в домашний каталог», когда ChrootDirectory активен. BZ # 2485
- ssh (1): включить PubkeyAcceptedKeyTypes в ssh -G config dump. sshd (8): избегайте менять флаги устройств TunnelForwarding, если они уже нужны; позволяет использовать сеть tun / tap в качестве пользователя без полномочий root, если предварительно установлены разрешения на устройство и флаги интерфейса.
- ssh (1), sshd (8): RekeyLimits может быть превышен одним пакетом. BZ # 2521
- ssh (1): устранить ошибку мультиплексирования мастера, чтобы заметить выход клиента.
- ssh (1), ssh-agent (1): избегать фатальных () для токенов PKCS11, содержащих пустые идентификаторы ключей. BZ # 1773
- sshd (8): избегать printf аргумента NULL. BZ # 2535
- ssh (1), sshd (8): разрешить RekeyLimits больше 4 ГБ. BZ # 2521
- ssh-keygen (1): sshd (8): исправить несколько ошибок в (неиспользуемой) поддержке подписи KRL.
- ssh (1), sshd (8): исправить соединения с одноранговыми узлами, использующими функцию обхода ключа для протокола. BZ # 2515
- sshd (8): включить номер удаленного порта в сообщениях журнала. BZ # 2503
- ssh (1): не пытайтесь загрузить закрытый ключ SSHv1 при компиляции без поддержки SSHv1. BZ # 2505
- ssh-agent (1), ssh (1): исправлять неверные сообщения об ошибках при загрузке и ошибках подписи. BZ # 2507
- ssh-keygen (1): не оставляйте пустые временные файлы при редактировании файлов known_hosts, когда known_hosts не существует.
- sshd (8): правильный формат пакета для ответов tcpip-forward для запросов, которые не выделяют порт bz # 2509
- ssh (1), sshd (8): исправить возможное зависание на закрытом выходе. bz # 2469 ssh (1): развернуть% i в ControlPath до UID. BZ # 2449
- ssh (1), sshd (8): исправить возвращаемый тип openssh_RSA_verify. BZ # 2460
- ssh (1), sshd (8): исправить некоторый параметр, анализирующий утечки памяти. BZ # 2182
- ssh (1): добавьте некоторый отладочный вывод перед разрешением DNS; это место, где ssh ранее мог молча останавливаться в случае невосприимчивых DNS-серверов. bz # 2433 ssh (1): удалить ложную новую строку в визуальном ключе. BZ # 2686
- ssh (1): исправить печать (ssh -G ...) HostKeyAlgorithms = + ...
- ssh (1): исправить расширение HostkeyAlgorithms = + ...
- Документация:
- ssh_config (5), sshd_config (5): обновить списки алгоритмов по умолчанию для соответствия текущей реальности. BZ # 2527
- ssh (1): укажите опции -Q key-plain и -Q параметры запроса ключа-сертификата. BZ # 2455
- sshd_config (8): более четко описано, что AuthorizedKeysFile = none does.
- ssh_config (5): лучший документ ExitOnForwardFailure. BZ # 2444
- sshd (5): укажите внутренние резервные группы DH-GEX в руководстве. BZ # 2302
- sshd_config (5): лучшее описание для опции MaxSessions. BZ # 2531
- Портативность:
- ssh (1), sftp-server (8), ssh-agent (1), sshd (8): поддержка мелкозернистых привилегий Illumos / Solaris. Включая предварительную аутентификационную программу и несколько залогов (). BZ # 2511
- Renovate redhat / openssh.spec, удаление устаревших опций и синтаксиса.
- configure: разрешить --without-ssl-engine с --without-openssl
- sshd (8): исправить множественную аутентификацию с помощью S / Key. BZ # 2502
- sshd (8): вернитесь из libcrypto RAND_before для удаления привилегий. Предотвращает нарушения песочницы с помощью BoringSSL.
- Исправить конфликт имен с системными функциями glob (3). BZ # 2463
- Адаптировать Makefile для использования ssh-keygen -A при создании ключей хоста. BZ # 2459
- configure: правильное значение по умолчанию для --with-ssh1 bz # 2457
- configure: лучшее обнаружение символа _res bz # 2259
- поддержка getrandom () syscall в Linux
Что нового в версии 7.1:
- Безопасность:
- sshd (8): OpenSSH 7.0 содержал логическую ошибку в PermitRootLogin = запрет-пароль / без пароля, который мог, в зависимости от конфигурации времени компиляции, разрешать аутентификацию пароля для root при одновременном предотвращении других форм аутентификации. Об этой проблеме сообщил Мантас Микуленас.
- Bugfixes:
- ssh (1), sshd (8): добавьте обходные пути совместимости для FuTTY
- ssh (1), sshd (8): уточнить обходные пути совместимости для WinSCP
- Исправьте количество ошибок памяти (без двойного освобождения, без неинициализированной памяти и т. д.) в ssh (1) и ssh-keygen (1). Сообщается Матеушем Кочельски.
Комментарии не найдены