Настройка почтового сервера и файлового хранилища PEPS

Сегодня файловые хранилища типа Gmail или Dropbox пользуются большим спросом. Однако такие хранилища не подойдут для размещения конфиденциальных данных: такие сервисы собирают, обрабатывают и анализируют такие данные наряду с другими.

Эту проблему можно решить при помощи PEPS. Это почтовый сервис и платформа общего доступа к файлам, основанная на сквозном шифровании.

Примечание: Сквозное шифрование (end-to-end encryption, или Е2ЕЕ) – это криптографический алгоритм, в котором шифрование/дешифровка данных происходит на компьютере (клиенте), а не на сервере; потому сервер никогда не увидит конфиденциальные данные в незашифрованном виде.

Данное руководство поможет развернуть PEPS на сервере Ubuntu 14.04.

Требования

Для выполнения руководства понадобится:

  • Сервер Ubuntu 14.04 x64 (2 Гб памяти как минимум).
  • SSL-сертификат. Вместо самоподписанного сертификата рекомендуется использовать сертификат, заверенный надёжным ЦС. Инструкции по созданию самоподписанного сертификата можно найти ниже.
  • Чтобы отправлять сообщения с сервера внешним получателям, нужно настроить обратный DNS; в противном случае сообщение будет помечено как спам.
  •  Не-root пользователь с доступом к sudo.

1: Установка Docker

PEPS поставляется в виде контейнера Docker. Потому сначала нужно установить программу Docker.

Примечание: В руководстве используется Docker 1.6.2.

Подробные инструкции по установке можно найти в этом руководстве.

Также для работы Docker необходимо добавить текущего пользователя в группу docker. Замените условное имя 8host именем своего пользователя:

sudo usermod -aG docker 8host

Обновите сессию пользователя, чтобы новые настройки вступили в силу.

2: Развёртывание PEPS

Подключитесь к серверу по SSH и запустите следующие команды, чтобы подготовить среду.

Клонируйте репозиторий:

git clone https://github.com/MLstate/PEPS

Откройте каталог PEPS:

cd PEPS

Настройте доменное имя:

echo example.com > domain

Примечание: Замените example.com своим доменным именем.

Данная команда создаст текстовый файл domain и поместит в него строку с доменным именем.

Установите утилиту make:

sudo apt-get update
sudo apt-get install make

Теперь можно собрать контейнеры. Это займёт 10-20 минут.

make build

Если сборка прошла успешно, на экране появится примерно следующий вывод:

Removing intermediate container 38d212189d43
Successfully built 24fd74241e48

Примечание: Номер генерируется случайно и будет отличаться.

Для первого запуска программы нужно создать временный SSL/TLS-сертификат и запустить контейнеры.

Примечание: Если у вас уже есть SSL-сертификат, пропустите дальнейшие действия, просто скопируйте сертификат и ключ (см. раздел 5).

Создайте временный сертификат SSL:

make certificate

Выберите простой пароль (его нужно часто вводить). Во время создания сертификата система задаст вам ряд вопросов, большинство из которых можно пропустить. Самым важным полем является Common Name (как правило, в нём указывают FQDN сервера).

openssl genrsa -des3 -out server.key 1024
Generating RSA private key, 1024 bit long modulus [...] Enter pass phrase for server.key:
Verifying - Enter pass phrase for server.key:
openssl req -new -key server.key -out server.csr
Enter pass phrase for server.key:
You are about to be asked to enter information that will be [...] Country Name (2 letter code) [AU]: DE
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []: example.com
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key # strip passphrase
Enter pass phrase for server.key.org:
writing RSA key [...] Getting Private key

Теперь можно запустить хранилище PEPS

sudo make run

3: Вход

Посетите в браузере ссылку:

https://your_server_ip

Поскольку на сервере установлен временный сертификат, браузер выведет большое предупреждение о том, что этому сертификату безопасности нельзя доверять. Примите это предупреждение (в браузере Chrome нужно нажать Advanced).

Сначала программа предложит установить пароль администратора. Выберите надёжный пароль.

Хранилище PEPS основано на двойном шифровании, потому администратор может создавать и удалять пользователей, но не имеет доступа к зашифрованным данным других пользователей.

После того, как вы выберете пароль, на экране появится главный интерфейс PEPS.

Теперь нужно настроить домен и сертификаты.

4: Настройка домена

Сначала нужно настроить DNS. Используйте интерфейс провайдера DNS для настройки записей или настройте свой собственный DNS-сервер.

Создайте записи A и MX. К примеру, для условного домена example.com, размещённого на mail.example.com записи выглядят так:

mail.example.com.   10799   IN   A   your_server_ip
mail.example.com.   10799   IN   MX  example.com.

Также можно настроить дополнительные записи. Чтобы убедиться в том, что домен настроен правильно, используйте инструмент MXToolBox.

Обновление записей может занять некоторое время. Но в течение часа у вас появится доступ к PEPS по ссылке:

https://example.com

Примечание: Если после настройки PEPS вы не можете отправлять и получать электронную почту от внешних доменов, проверьте записи A и MX. Если они установлены неправильно, то вы не сможете отправлять и получать электронную почту от внешних доменов.

5: Настройка SSL-сертификатов

На данный момент браузер по-прежнему показывает предупреждение о том, что сайт использует ненадёжный сертификат.

Рекомендуется заказать сертификат у надёжного центра сертификации.

Скопируйте ключ и сертификат (файлы server.key и server.crt) в каталог /etc/peps/.

Подготовьте их на локальном компьютере и скопируйте на сервер, запустив следующую команду в каталоге, в котором хранятся эти файлы.

scp server.key server.crt your_server_ip:/etc/peps/

Примечание: Замените your_server_ip IP-адресом сервера.

После этого снова откройте в браузере страницу:

https://example.com

На данный момент ошибок и предупреждений быть не должно.

6: Тестирование

Чтобы добавить новых пользователей, войдите как пользователь admin и следуйте инструкциям этого руководства.

Попробуйте обменяться сообщениями между пользователями данного домена. К примеру, можно отправить сообщение с admin@example.com на 8host@example.com и наоборот.

После этого попробуйте обменяться сообщениями с внешними пользователями. Если у вас не получается сделать это, ваши записи A и MX установлены неправильно.

Заключение

Теперь на сервере установлена надёжная платформа PEPS. С её помощью можно отправлять и получать сообщения и совместно использовать файлы.

Документация PEPS для разработчиков – по этой ссылке.

Также у PEPS есть страничка на Facebook.

Tags: , , ,

Добавить комментарий