У меня есть несколько устаревших клиентов SSH в моей внутренней сети (например, Macintosh эпохи 2000 года и т.п.), которые полностью несовместимы с новыми шифрами и ключевыми алгоритмами, используемыми в современных реализациях SSH.
Чтобы заставить этих клиентов работать, требовалось добавить diffie-hellman-group1-sha1
к KexAlgorithms
, и arcfour
к Ciphers
.
Я понимаю, что оба они ужасно, безнадежно сломаны с точки зрения шифрования.. К сожалению, рассматриваемый хост также имеет входящий доступ из Интернета, и я действительно действительно не хочу, чтобы эти дерьмовые шифры были включены, если я могу этого избежать, но это был самый быстрый способ вернуть моих клиентов в сеть.
У меня есть несколько вопросов о том, как уменьшить эту настройку:
Есть ли у sshd способ указать, что определенные адреса могут использовать определенные шифры?
KexAlgorithms
и Ciphers
внутри Match
блокировать за последние 5 лет?Есть ли способ поставить сервер бастиона / прыжка перед клиентами, которым требуется слабое шифрование, а затем перенаправить это соединение на хост с более надежным шифрованием?
Я упускаю какой-то другой очевидный способ решения этой проблемы?
Есть ли у sshd способ указать, что определенные адреса могут использовать определенные шифры?
Да. Простые примеры есть на Устаревшая страница OpenSSH. Коротко:
Host legacy.example.org
KexAlgorithms +diffie-hellman-group1-sha1
Ciphers +arcfour
Есть ли способ поставить сервер бастиона / прыжка перед клиентами, которым требуется слабое шифрование, а затем перенаправить это соединение на хост с более надежным шифрованием?
Да. Вы можете настроить старый сервер так, чтобы он принимал соединения только от сервера jumpbox, например, используя /etc/hosts.allow
(tcp_wrappers
). Например:
sshd: <IP/hostname of bastion>
Затем пользователи настроят ProxyCommand
перепрыгнуть через jumpbox
, Такие как
Host legacy.example.com
ProxyCommand ssh -W %h:%p proxy.example.com