Безопасно ли разделять ключи easy-rsa между машинами? Как?
У меня есть два хоста vpn, vpn1, являющийся основным, vpn2, являющийся горячим отказоустойчивым компьютером для случаев, когда vpn1 выходит из строя, запланированный или незапланированный.
Прямо сейчас мы управляем клиентскими ключами с помощью пакета сценариев оболочки easy-rsa, предоставляемого openvpn, но процесс, запущенный моим предшественником, состоит в том, чтобы запустить сценарий ключа сборки на vpn1, а затем снова запустить его на vpn2 с теми же ответами, но только выдавая ключ /crt из vpn1 клиенту.
Мне кажется, что это неправильно на двух уровнях: во-первых, я не думаю, что это сработает вообще; ключ от vpn1 вряд ли будет работать для аутентификации в vpn2 таким образом, и во-вторых, это большая дополнительная работа.
Я бы предпочел синхронизировать хранилища ключей между двумя машинами. Это возможно? Если это так, что мне нужно для обеспечения синхронизации между двумя компьютерами?
1 ответ
В моей конфигурации openvpn вопрос, который сервер задает себе, когда сертификат представляется конечным пользователем, таков: подписан ли этот сертификат правильным ЦС?
Если на обоих серверах установлен одинаковый корневой сертификат CA, вам не нужно синхронизировать хранилища ключей, потому что вам совсем не нужны два хранилища ключей. Вам нужно одно хранилище ключей, которое не должно находиться ни в одном из двух окон openvpn (и, возможно, не должно). Из этого хранилища ключей вы делаете корень CA доступным для обоих серверов openvpn и сообщаете им, где он находится:
ca /etc/openvpn/keys/ca.crt
и вы делаете клиентские сертификаты, подписанные этим ЦС, и соответствующие секретные ключи клиента доступными для клиентов. Вы также создаете пару сертификат / ключевой файл сервера и помещаете ее на один или оба сервера (или, если хотите, генерируете одну пару для каждого сервера; если клиенты настроены для проверки сервера и имеют копию ЦС). Сертификат, либо в порядке). Сервер может проверить клиентские сертификаты, потому что у него есть копия сертификата CA. Серверу не нужно просматривать хранилище ключей, равно как и клиентам.