Корзинка
Количество просмотров: 225

Уязвимость на КЛИЕНТЕ OpenSSH и её фикс в debian (CVE-2016-0777 и CVE-2016-0778)

Суть этой бяки в том, что при включенном roaming режиме на клиенте ssh можно потерять свой ключ.

Чуть более развернуто: при включенном roaming на клиенте при очередном подключении модифицированный ssh сервер может вытянуть ключи с клиента ИЛИ при первом подключении, когда ключ сервера еще не добавлен в клиент, можно провести MiTM атаку.

То есть вероятность есть, но она очень мала в первом случае (не первый заход на сервер), так как сервер еще надо скомпроментировать, то во втором случае (первый заход на сервер, когда ключ сервера не с чем сверять на клиенте) шансы расстаться с приватным ключем много выше. В итоге надо или запретить roaming, включенный по умолчанию на клиенте, или обновить клиент, чтобы данная функция была выключена по-умолчанию. PuTTy вне зоны риска!

Фикс для дебиана:

При невозможности обновить, добавляем в файлик ssh_config (а не в файл sshd_config!) строчку UseRoaming no:
echo 'UseRoaming no' >> /etc/ssh/ssh_config

А при возможности обновить — обновляем!
Так как все обновляется и сразу, то обновятся и сервер и клиент. Ниже пример с одно из виртуалок на 7м дебиане.
проверяем версию sshd
telnet 127.0.0.1 12345 (12345 — кастомный порт для ssh, если меняли или пишите 22, если ничего не меняли)

Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
SSH-2.0-OpenSSH_6.0p1 Debian-4+deb7u3
^C
Connection closed by foreign host

1) качаем http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-7.1p2.tar.gz
2) распаковываем
3) обновляем apt apt-get update
4) ставим библиотеки apt-get install zlib1g-dev libssl-dev libpam0g-dev libkrb5-dev (дефолтный sshd, который идет с дебианом собран с pam и с kerberos)
5) конфигурируем ./configure --with-pam --with-kerberos5 --prefix=/usr --sysconfdir=/etc/ssh , сие ставится в usr (!) как дефолтный sshd у меня на сервере, и хранит конфиги в /etc/ssh (!) тоже как оригинальный sshd у меня на сервере — пишу жирным, так как вероятно у кого-то debian-netinst ставит или ставил в другое место, вдруг!
6) make , если не выдало ошибок, то пункт #7. Если ошибки есть, то make clean, затем google и пункт #1 с новыми библиотеками + комментарий сюда, что именно нет встало.
7) make install. Если ошибки есть, то они скорее всего из-за того, что у вас в конфиге. Делаете make clean, топаете в гугл, смотрите что у вас в конфиге не так (=чего не было указано при конфигурации), затем с первого пункта.
8) если все ок, перезапускаете сервис service ssh restart
9) снова проверяете версию
telnet 127.0.0.1 12345

Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
SSH-2.0-OpenSSH_7.1
^C
Connection closed by foreign host.

Версию клиента можно проверить командой ssh -V, что выдаст вот такое замечательное начало: OpenSSH_7.1p2 ...

Вот и все! Мы обновились на сервере!

Facebooktwittergoogle_plusredditpinterestlinkedintumblrFacebooktwittergoogle_plusredditpinterestlinkedintumblr

Comments are closed.