Назад | Перейти на главную страницу

Как я могу перечислить MAC-адреса, шифры и KexAlogrithms, поддерживаемые моим ssh-сервером?

Как я могу определить поддерживаемые 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 информация о подключении?

Вы упускаете несколько моментов в своем вопросе:

  • Какая у вас версия openssh? Он может немного отличаться в разных версиях.
  • ServerKeyBits это опция для версии протокола 1, которую вы, надеюсь, отключили!

Поддерживается Шифры, MAC и KexAlgorithms всегда доступны в ручном режиме, и это не имеет ничего общего с длиной ключа.

Включено Чиперы, MAC и KexAlgorithms - это те, которые предлагаются с использованием соединения, как вы указываете. Но их можно получить и другими способами, например, используя sshd -T | grep "\(ciphers\|macs\|kexalgorithms\)"

Чтобы получить длину ключа вашего сервера (ключей), вы можете использовать ssh-keygen: ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub

но вы, вероятно, захотите также размеры модулей, которые предлагаются и используются во время обмена ключами, но это действительно зависит от метода обмена ключами, но он также должен быть доступен для чтения из вывода отладки ssh -vvv host.

Как я могу определить поддерживаемые MAC-адреса, шифры, длину ключа и KexAlogrithms, поддерживаемые моими ssh-серверами?

Похоже, ответ на https://superuser.com/a/1219759/173408 это тоже ответ на ваш вопрос. Умещается в одну строчку:

nmap --script ssh2-enum-algos -sV -p 22 1.2.3.4

Вот результат на простой машине Debian 9.4 с текущей версией SSH:

Starting Nmap 7.01 ( https://nmap.org ) at 2018-05-22 13:40 CEST
Nmap scan report for 1.2.3.4
Host is up (0.00024s latency).
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 7.4p1 Debian 10+deb9u3 (protocol 2.0)
| ssh2-enum-algos: 
|   kex_algorithms: (10)
|       curve25519-sha256
|       curve25519-sha256@libssh.org
|       ecdh-sha2-nistp256
|       ecdh-sha2-nistp384
|       ecdh-sha2-nistp521
|       diffie-hellman-group-exchange-sha256
|       diffie-hellman-group16-sha512
|       diffie-hellman-group18-sha512
|       diffie-hellman-group14-sha256
|       diffie-hellman-group14-sha1
|   server_host_key_algorithms: (5)
|       ssh-rsa
|       rsa-sha2-512
|       rsa-sha2-256
|       ecdsa-sha2-nistp256
|       ssh-ed25519
|   encryption_algorithms: (6)
|       chacha20-poly1305@openssh.com
|       aes128-ctr
|       aes192-ctr
|       aes256-ctr
|       aes128-gcm@openssh.com
|       aes256-gcm@openssh.com
|   mac_algorithms: (10)
|       umac-64-etm@openssh.com
|       umac-128-etm@openssh.com
|       hmac-sha2-256-etm@openssh.com
|       hmac-sha2-512-etm@openssh.com
|       hmac-sha1-etm@openssh.com
|       umac-64@openssh.com
|       umac-128@openssh.com
|       hmac-sha2-256
|       hmac-sha2-512
|       hmac-sha1
|   compression_algorithms: (2)
|       none
|_      zlib@openssh.com
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 0.52 seconds