Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| отключаем_небезопасные_алгоритмы_ssh [2025/09/29 09:34] – jp | отключаем_небезопасные_алгоритмы_ssh [2025/10/01 09:25] (current) – jp | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ===== Отключаем небезопасные алгоритмы SSH ===== | ===== Отключаем небезопасные алгоритмы SSH ===== | ||
| - | Представим, | + | Представим, |
| В первую очередь мы можем просканировать протокол при помощи [[NMAP]], чтобы понять какие шифры вообще доступны (см. соответствующий раздел материала по //NMAP//). | В первую очередь мы можем просканировать протокол при помощи [[NMAP]], чтобы понять какие шифры вообще доступны (см. соответствующий раздел материала по //NMAP//). | ||
| Line 17: | Line 17: | ||
| sshd -T | egrep ' | sshd -T | egrep ' | ||
| + | sshd -T | egrep ' | ||
| Если шифры доступны - время перейти к конфигу SSH. | Если шифры доступны - время перейти к конфигу SSH. | ||
| Line 24: | Line 25: | ||
| ssh -V | ssh -V | ||
| - | Если сервер старше 8.5, чтобы исключить // | + | === Отключаем ecdsa-sha2-nistp256 === |
| + | |||
| + | Если сервер старше 8.5, чтобы исключить // | ||
| < | < | ||
| HostKeyAlgorithms -ecdsa-sha2-nistp256 | HostKeyAlgorithms -ecdsa-sha2-nistp256 | ||
| Line 30: | Line 33: | ||
| </ | </ | ||
| - | В OpenSSH младше версии 8.5 директива // | + | В OpenSSH младше версии 8.5 директива // |
| < | < | ||
| PubkeyAcceptedKeyTypes -ecdsa-sha2-nistp256 | PubkeyAcceptedKeyTypes -ecdsa-sha2-nistp256 | ||
| </ | </ | ||
| - | Перезапустим ssh-сервер: | ||
| - | |||
| - | systemctl restart ssh | ||
| Если мы хотим полностью избавиться от //ECDSA// - удаляем или перемещаем сами ключи. | Если мы хотим полностью избавиться от //ECDSA// - удаляем или перемещаем сами ключи. | ||
| / | / | ||
| / | / | ||
| - | :!: После отключения, при сканировании NMAP в первую очередь необходимо обращать внимание на результат секции // | + | === Отключаем |
| - | В любом случае, можно строго проверить | + | Добавляем в тот же sshd_config |
| + | |||
| + | MACs -*md5*, | ||
| + | === Отключаем | ||
| + | |||
| + | KexAlgorithms -diffie-hellman-group1-sha1, | ||
| + | === Завершаем настройку === | ||
| + | |||
| + | Перед перезапуском //sshd// хорошо бы протестировать конфигурацию - проверить не только синтаксис, | ||
| + | |||
| + | sshd -t | ||
| + | Перезапустим ssh-сервер, | ||
| + | |||
| + | systemctl restart ssh | ||
| + | === Тестируем | ||
| + | | ||
| < | < | ||
| Line 58: | Line 73: | ||
| </ | </ | ||
| + | Можно протестировать подключение с использованием конкретного MAC и посмотреть - не согласовывают ли сервер и клиент отключенный ранее алгоритм. | ||
| + | |||
| + | :!: Здесь подключение всё равно может установиться, | ||
| + | < | ||
| + | ssh -o MACs=umac-64-etm@openssh.com root@192.168.0.1 -vv | ||
| + | </ | ||
| + | |||
| + | Ищем похожие строки в выводе: | ||
| + | |||
| + | < | ||
| + | debug1: kex: algorithm: ... | ||
| + | debug1: kex: host key algorithm: ... | ||
| + | debug1: kex: server-> | ||
| + | debug1: kex: client-> | ||
| + | </ | ||
| + | |||
| + | Данным сканированием NMAP мы также можем проверить протоколы и шифры: | ||
| + | |||
| + | nmap -p22 -n -sV --unprivileged --script ssh2-enum-algos 192.168.0.1 | ||
| {{tag> | {{tag> | ||