Як я можу перерахувати MAC, шифри та KexAlogrithms, підтримувані моїм ssh сервером?


19

Як я можу визначити підтримувані 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інформацію про з'єднання?


3
виявилося, що sshd -T | grep "\(ciphers\|macs\|kexalgorithms\)"за пропозицією @Jakuje працює лише на хостах RHEL7, але не RHEL6. Я закінчив користуватися nmap --script SSH2-hostkey localhostіnmap --script ssh-hostkey localhost
Генрік Пінгель

ssh -vvвиводить підтримуваний функціонал як клієнт на сервер (ctos) і сервер на клієнт (stoc). Однак, схоже, що ці результати обмежуються тим, що підтримують обидві сторони, що робить їх менш корисними для аудиту безпеки.
Моше

Відповіді:


18

Ви пропускаєте кілька пунктів у своєму запитанні:

  • Яка ваша відкрита версія? Він може дещо відрізнятися від версій.
  • ServerKeyBits - це варіант для протоколу версії 1, який ви, сподіваємось, відключили!

Підтримувані шифри, МИ і KexAlgorithms завжди доступні в ручному і це не має нічого спільного з довжиною ключа.

Увімкнені мікросхеми, MAC та KexAlgorithms - це ті, які пропонується використовувати підключення, як ви вказуєте. Але їх можна отримати і іншими способами, наприклад, використовуючиsshd -T | grep "\(ciphers\|macs\|kexalgorithms\)"

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

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


1
Спасибі. Виявилося, що sshd -T | grep "\(ciphers\|macs\|kexalgorithms\)"працювали лише мої хости RHEL7, але не RHEL6. Я закінчив користуватися nmap --script SSH2-hostkey localhostіnmap --script ssh-hostkey localhost
Генрік Пінгель

1
Хост RHEL6 з останнім оновленням opensh повинен також його виправити.
Jakuje

чорт ти маєш рацію з цього приводу. Я перевірив лише застарілий VM ... спасибі
Генрік Пінгел

sshd -T запропонує лише інформацію про шифри, налаштовані у файлі sshd_config, а не те, що дійсно може бути додано до нього, як підтримується бінарним файлом
Daniel J.

11

Як я можу визначити підтримувані MAC, шифри, довжину ключа та KexAlogrithms, що підтримуються моїми ssh-серверами?

Схоже, відповідь на /superuser//a/1219759/173408 - це також відповідь на ваше запитання. Він вписується в один рядок:

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

Ось вихід на звичайній машині Debian 9.4 з поточною версією SSH:

Початок Nmap 7.01 (https://nmap.org) з 2018-05-22 13:40 CEST
Звіт про сканування Nmap для 1.2.3.4
Хост працює (затримка 0,00024).
ВЕРСІЯ ПОСЛУГ ДЕРЖАВНОГО ДЕРЖАВНІ
22 / tcp відкрити ssh OpenSSH 7.4p1 Debian 10 + deb9u3 (протокол 2.0)
| ssh2-enum-algos:
| kex_algorithms: (10)
| крива25519-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)
| шш-рса
| rsa-sha2-512
| rsa-sha2-256
| ecdsa-sha2-nistp256
| ssh-ed25519
| кодування_алгоритми: (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
| стиснення_алгоритми: (2)
| жоден
| _ zlib@openssh.com
Інформація про службу: ОС: Linux; CPE: cpe: / o: linux: linux_kernel

Виконання служби виявлено. Повідомте про будь-які невірні результати на https://nmap.org/submit/.
Nmap зроблено: 1 IP-адреса (1 хост вгору) сканується за 0,52 секунди

1
Я отримую PORT STATE SERVICE VERSION 22/tcp filtered sshкоманду з цією командою - хоча я можу увійти на той самий сервер через ssh.
ей

Ви буквально використовували команду, або ви замінили 1.2.3.4IP-адресу свого сервера?
Стефан Гурішон

Я використовував IP свого сервера.
ей
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.