> Подскажите пожалуйста, есть ли уже готовый открытый софт для такой идеи:Нет, но можно собрать из почтовиков общего назначения. Exim, Postfix, и т.д. Даже комбайны типа CPanel и Plesk можно сконфигурировать штатными средствами.
В данном случае, шифровать канал и хранилище проще чем шифровать сообщения индивидуально. Доступные инструменты проще и надёжнее.
> Хочу что бы почтовый сервер был разделён на 2 части: 1. В
> интернете для принятия сообщения от других серверов, после получения сообщения сразу
> же его шифрует асимметричным шифрованием и сохраняет его в хранилище.
Пусть в Интернете живёт сервер с зашифрованным жёстким диском, и считает себя вторичным MX (Mail eXchanger) для вашего домена.
Когда он получит сообщение, он его как есть попытается переслать первичному MX, который дома. Если до него не достучится, то положит сообщение в очередь, на диск, который запифрованный. И будет пробовать переслать опять через 15 мин, потом через 4 часа, потом через 12 часов и т.д. (настраиваемо).
Обычно на таком сервере держат антиспам, антивирус, средства против DoS, и т.п.
Их таких можно держать больше одного.
Этот сервер будет прописан в качестве главного MX в вашей зоне DNS.
> 2. Дома, периодически подключается к хранилищу первого,
> забирает сообщения и действует как обычный сервер.
Пусть дома живёт сервер, считающий себя первичным MX для вашего домена. Как только вторичный до него достучится, то передаст все накопившиеся сообщения. Опционально, пусть при включении он строит туннель VPN (или SSH, например) до того, который живёт в Интернете. Опционально, пусть при влкючении он по SSH лезет на Интернетовский и форсирует flush queue вот прямо сейчас, а не когда тот соскучится.
Обычно на таком сервере хранят почтовые ящики, извлекают бакапы, индексируют сообщения для быстрого поиска и т.п.
Упоминаний этого сервера в вашей зоне DNS не будет.
> Когда надо отправить сообщения на внешний сервер, то сообщение так же может
> в зашифрованном виде передаваться первому, он его расшифровывает и отправляет.
Пользователь почтового ящика в качестве SMTP может использовать как интернетовский, так и домашний. Сервису SMTP на домашнем имеет смысл прописать интернетовский в качестве smart host.
> Основная задача, это что бы на первом сервере не оставалось никакой информации
> о сообщениях в открытом виде, сразу при установки соединения, полученные данные
> должны шифроваться.
При том, как я изложил, на первом сервере вообще ничего не будет оставаться, кроме новых сообщений которые уже пришли но ещё не были отправлены на первичный MX.
> Читал как то на этом сайте новость о каком то relay-сервере, но
> не могу найти этой статьи теперь, и не уверен что он
> работает именно так.
Ищите по ключевым словам smtp relay и secondary MX. "Relay" в данном случае значит "передать эстафету".