Teh Hermit

This is an old revision of the document!


Отключаем небезопасные алгоритмы SSH

Представим, что у нас есть задача избавиться от каких-либо небезопасных алгоритмов SSH. К примеру, от ECDSA и ecdsa-sha2-nistp256, а также MACs: md5-based, sha1-based, umac-64.

В первую очередь мы можем просканировать протокол при помощи NMAP, чтобы понять какие шифры вообще доступны (см. соответствующий раздел материала по NMAP).

Также, можно вывести шифры, алгоритмы обмена ключами, алгоритмы MAC (Message Authentication Code), а также алгоритмы публичных ключей следующими командами:

ssh -Q cipher
ssh -Q mac
ssh -Q kex
ssh -Q key

:!: ВАЖНО: данные команды выводят списки алгоритмов, доступные в определенной версии SSH-сервера по умолчанию. Чтобы просматривать используемые алгоритмы в реальности - можно запускать следующую команду, грепая нужные данные, пример:

sshd -T | egrep '^macs'

Если шифры доступны - время перейти к конфигу SSH.

Узнаем для начала версию сервера SSH:

ssh -V

Отключаем ecdsa-sha2-nistp256

Если сервер старше 8.5, чтобы исключить ecdsa-sha2-nistp256 добавим в конфиг следующие директивы:

HostKeyAlgorithms -ecdsa-sha2-nistp256
PubkeyAcceptedAlgorithms -ecdsa-sha2-nistp256

В OpenSSH младше версии 8.5 директива PubkeyAcceptedAlgorithms имеет другое название (настройка и эффект ничем не отличается).

PubkeyAcceptedKeyTypes -ecdsa-sha2-nistp256

Отключаем MACs: md5-based, sha1-based, umac-64

Перезапустим ssh-сервер:

systemctl restart ssh

Если мы хотим полностью избавиться от ECDSA - удаляем или перемещаем сами ключи.

/etc/sshssh_host_ecdsa_key
/etc/ssh_host_ecdsa_key.pub

:!: После отключения, при сканировании NMAP в первую очередь необходимо обращать внимание на результат секции server_host_key_algorithms. В kex_algorithms nmap, похоже, отображает теоретически возможные алгоритмы для данной версии.

В любом случае, можно строго проверить возможность использования алгоритма при помощи конкретного подключения с его помощью. Пример:

ssh -oHostKeyAlgorithms=ecdsa-sha2-nistp256 -oPubkeyAcceptedAlgorithms=ecdsa-sha2-nistp256 root@localhost -vv

Если алгоритм отключен, подключение не установится, получим что-нибудь похожее на:

Unable to negotiate with 127.0.0.1 port 22: no matching host key type found. Their offer: rsa-sha2-512,rsa-sha2-256,ssh-ed25519
отключаем_небезопасные_алгоритмы_ssh.1759140160.txt.gz · Last modified: by jp