У меня есть программное обеспечение, которое использует собственный зашифрованный файл для хранения паролей (например, ftp, web и другие пароли для входа во внешние системы, нет возможности использовать сертификаты).
На каждом сервере есть несколько экземпляров этого программного обеспечения, каждый экземпляр имеет свой файл паролей.
На данный момент количество серверов постоянно растет, и становится все труднее и труднее поддерживать все пароли на всех экземплярах в актуальном состоянии.
К сожалению, некоторые серверы находятся в сегрегированной сети, и с них нет доступа к централизованному хранилищу, но это работает наоборот.
Моя первая идея состояла в том, чтобы создать репозиторий git, зашифровать каждый пароль с помощью gpg, сохранить его там и доставить в систему развертывания, но группа безопасности не была удовлетворена этой идеей, и поскольку хранить пароли в репозитории даже в зашифрованном виде небезопасно ( с их слов).
Ничего подобного мне в голову не приходит. Есть ли способ реализовать безопасное и надежное хранилище паролей с минимальными усилиями для управления всеми паролями в актуальном состоянии?
пс. Если это важно, у меня везде красная шляпа.
Вы могли бы взглянуть на FreeIPA который использует LDAP и kerberos для аутентификации пользователей. Это довольно полная и обширная система, но она действительно работает.
Вот что Википедия об этом пишет:
FreeIPA - это проект с открытым исходным кодом, спонсируемый Red Hat, цель которого - предоставить легко управляемый пакет Identity, Policy and Audit (IPA), в первую очередь ориентированный на сети компьютеров Linux и Unix. FreeIPA можно сравнить с Novell Identity Manager или Microsoft Active Directory в том, что цели и используемые механизмы аналогичны.
Хотя это может быть немного не ответом, возможно, вы сможете разделить разницу. В самой большой сети или главной копии (возможно, той, которая имеет наибольшее количество обновлений) поместите файл в общее хранилище. Это по крайней мере решит проблему с одним из ваших сетевых доменов.
Похоже, вы можете подключиться к сети, но не перекрестно (???). Это немного странно, я бы ожидал, что сети будут физически отличными, если вы не имеете в виду какое-то развертывание программного обеспечения. Если у вас есть брандмауэр, вы можете настроить центральное хранилище, которое будет подключаться клиентскими хостами, и убедитесь, что это единственный том, к которому он может получить доступ через ваши правила экспорта.
В противном случае запустите расписание репликации. В зависимости от того, сколько ручной работы требуется для перекрестной синхронизации, возможно, вам следует настроить своего рода репликацию. Сообщите вашим пользователям, что пароли будут время от времени изменяться только в главной системе, а затем перезаписывать другие системы.
Если вам нужно иметь что-то одновременно на нескольких узлах, доступное для записи со всех узлов и чтения со всех узлов и без доступа к центральной системе хранения, вам следует взглянуть на ceph (http://ceph.com/). Ceph - это распределенное хранилище объектов, которое предоставляет файловую систему для стандартного доступа приложений, которые вы не можете адаптировать.
Если Ceph как распределенная файловая система не подходит для вас по какой-либо причине, вы можете взглянуть на некоторые другие распределенные файловые системы в Linux.
http://en.wikipedia.org/wiki/List_of_file_systems#Distributed_file_systems