у меня есть сервер А и сервер B(резервное копирование), и мне было интересно, если кто-то взломает сервер A, может ли это быть потенциально опасным для взлома сервера B, если я настроил вход без пароля с использованием открытых ключей ssh?
Пытаюсь настроить rsnapshot.
Спасибо
Да, это одна из проблем с SSH-ключами без пароля. Если вы храните закрытый ключ на сервере A, который позволяет вам подключаться к серверу B, получение доступа к серверу A фактически означает получение доступа к серверу B. (Не обратное неверно - получение доступа к серверу B не приведет к немедленная компрометация сервера A, при условии, что у вас также не настроены ключи SSH, позволяющие входить в систему без пароля в этом направлении.
Есть несколько способов смягчить это:
authorized_keys
файла, добавьте к каждому ключу префикс:command="<разрешенная командная строка здесь>",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty
8–9 лет назад я работал в общей пользовательской среде с сотнями локальных пользователей, и вход в систему на основе ключей SSH был отключен, потому что не было возможности применить политику паролей к ключам. Пока вы полностью контролируете сценарий, в настоящее время ключи SSH определенно лучше, чем просто использование паролей.
Да, большинство руководств в Интернете останавливаются на том, чтобы заставить работать SSH без пароля, а не на том, чтобы заставить его работать безопасно. Это руководство хорошо показывает, что можно сделать для снижения рисков. В основном (цитирую статью):
dnssync
на каждой машинеcommand=
и from=
варианты в authorized_keys
файлы для ограничения ключей без парольной фразыssh-agent
вместо создания второго ключа без ключевой фразыЕсть пара проблем с ключами ssh:
Нет централизованного способа отзыва ключа.
Невозможно применить политику паролей к ключам (зашифрован ли ваш закрытый ключ, и если да, то зашифрован ли он с помощью хорошего пароля?).
Это проблемы, которые решает Kerberos. Однако он вводит другие, а именно более сложный в реализации и требует реальной инфраструктуры управления пользователями для развертывания и управления.
В любом случае, хотя ssh authorized_keys разрешает Моррис-червь типа атаки, по милям (световым годам) он все равно лучше, чем .r сервисы и телнет
В любой среде, которую я контролировал, я всегда был настоящим сторонником минимально возможных привилегий для учетных записей служб.
В этом случае я бы предложил убедиться, что учетной записи пользователя на удаленном сервере разрешено запускать только небольшой, четко определенный набор исполняемых файлов. Вы можете использовать несколько учетных записей на удаленной стороне и sudo для этого.
Даже в этом случае вы по-прежнему подвержены локальным ошибкам повышения привилегий, поэтому будьте внимательны и внимательно отслеживайте ошибки безопасности.