Как я могу определить поддерживаемые MAC, шифры, длину ключа и KexAlogrithms, поддерживаемые моими ssh-серверами?
Мне нужно создать список для внешнего аудита безопасности. Я ищу что-то похожее на openssl s_client -connect example.com:443 -showcerts
. Из моего исследования ssh
используются шифры по умолчанию, как указано в man sshd_config
. Однако мне нужно решение, которое я могу использовать в скрипте, и в нем . Я должен исправить себя здесь: Вы можете указать man sshd_config
нет информации о длине ключаServerKeyBits
в sshd_config
.
Я предполагаю, что ssh -vv localhost &> ssh_connection_specs.out
возвращает нужную мне информацию, но я не уверен, являются ли перечисленные шифры шифрами, поддерживаемыми клиентом или сервером. Также я не уверен, как запустить этот неинтерактивный скрипт.
Есть ли удобный способ получить SSH
информацию о соединении?
sshd -T | grep "\(ciphers\|macs\|kexalgorithms\)"
как предлагает @Jakuje, работает только на хостах RHEL7, но не на RHEL6. Я закончил тем, что использовалnmap --script SSH2-hostkey localhost
иnmap --script ssh-hostkey localhost
ssh -vv
выводит поддерживаемую функциональность как клиент-сервер (ctos) и сервер-клиент (stoc). Однако, похоже, что эти результаты ограничены тем, что поддерживают обе стороны, что делает их менее полезными для аудита безопасности.Ответы:
Вы упускаете несколько моментов в своем вопросе:
ServerKeyBits
опция для протокола версии 1, которую вы, надеюсь, отключили!Поддерживаемые шифры, MAC и алгоритмы Kex всегда доступны в руководстве, и это не имеет ничего общего с длиной ключа.
Включенные шифры, MAC-адреса и алгоритмы KexAlgorithm - это те, которые предлагаются с использованием соединения, как вы указали. Но их можно получить и другими способами, например, используя
sshd -T | grep "\(ciphers\|macs\|kexalgorithms\)"
Чтобы получить длину ключа вашего сервера (ключей), вы можете использовать ssh-keygen:
ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub
но вы, вероятно, захотите также размеры модулей, которые предлагаются и используются во время обмена ключами, но это действительно зависит от метода обмена ключами, но он также должен быть читаемым из результатов отладки
ssh -vvv host
.источник
sshd -T | grep "\(ciphers\|macs\|kexalgorithms\)"
работали только мои хозяева RHEL7, но не RHEL6. Я закончил тем, что использовалnmap --script SSH2-hostkey localhost
иnmap --script ssh-hostkey localhost
Похоже, что ответ на /superuser//a/1219759/173408 также является ответом на ваш вопрос. Умещается в одну строку:
Вот вывод на простой машине Debian 9.4 с текущей версией SSH:
источник
PORT STATE SERVICE VERSION 22/tcp filtered ssh
с этой командой - хотя я могу войти на тот же сервер через SSH.1.2.3.4
на IP вашего сервера?