Мы все используем электронную почту и облачное хранилище файлов таких сервисов,  как Gmail или Dropbox. Тем не менее, эти сервисы не могут быть пригодны для хранения конфиденциальных данных, личных и профессиональных. Небезопасно использовать облачное хранилище онлайн сервиса для бизнеса. Существует решение этой проблемы. PEPS является платформой, для обмена почтой и файлами, которая использует шифрование end-to-end. Эта технология предполагает, что шифрование и дешифрирование данных происходит на Вашем компьютере (клиент), а не на сервере. В данном случае сервер не видит незашифрованные данные. Это дает уверенность в том, что, даже если сервер будет взломан, злоумышленники не получат доступ к Вашим историям переписки или каким-либо данным, которые хранятся на сервере в открытом виде. А на расшифровку данных придется потратить годы.

В этой инструкции будут рассказаны основные функции, принцип установки и работы данного программного обеспечения.

Предварительные условия:

PEPS распространяется как Docker контейнер, чтобы сделать установку более легкой.

Docker — программное обеспечение для автоматизации развертывания и управления приложениями в среде виртуализации на уровне операционной системы, например, LXC. Позволяет «упаковать» приложение со всем его окружением и зависимостями в контейнер, который может быть перенесен на любой Linux-системе с поддержкой cgroups в ядре, а также предоставляет среду по управлению контейнерами.

Вам понадобится Digital Ocean Droplet с Ubuntu 14.04 x64 и применение Docker программы, установленной на нем. Системные требования:

  1. Ubuntu 14.04 x64 Droplet с 2 Гб памяти, если у Вас есть всего несколько пользователей. Выберите пункт 4 Гб оперативной памяти или больше, если Вам нужно больше пользователей или Вам просто нужно больше места для хранения Ваших данных;
  2. сертификат SSL для использования вместо самоподписанного. Это рекомендуется для производственных условий. Кроме того, Вы можете создать бесплатный самоподписанный сертификат SSL.

Если Вы планируете отправлять сообщения по электронной почте на внешние почтовые сервисы, Вам необходимо будет настроить RDNS, чтобы избежать попадания Ваших сообщений в спам. Digital Ocean автоматически настроит PTR запись.

Все команды в этом руководстве должны выполняться пользователем без прав суперпользователя. Если для команды требуется доступ суперпользователя, нужно задействовать команду Sudo. Первоначальная настройка сервера с Ubuntu 14.04 объясняет, как добавить пользователей и предоставить им доступ SUDO.

Шаг 1 – Установка Docker

Первым шагом является установка Docker. Инструкции по установке на Ubuntu.

Обновите ОС:

sudo aptitude update
sudo aptitude -y upgrade

Убедитесь, что AUFS доступна на Вашем сервере. Aufs — полностью переписанный код UnionFS, который нацелен на улучшение стабильности и производительности.

sudo aptitude install linux-image-extra-`uname -r`

Добавьте ключ Docker репозитория для проверки пакета:

# sudo sh -c "wget -qO- https://get.docker.io/gpg | apt-key add -"
sudo: unable to resolve host localhost.localdomain
OK

Добавьте репозиторий Docker:

sudo sh -c "echo deb http://get.docker.io/ubuntu docker main\
> /etc/apt/sources.list.d/docker.list"

Обновите список репозиториев:

sudo aptitude update

Теперь нужно загрузить и установить docker:

sudo aptitude install lxc-docker

По умолчанию брандмауэр в Ubuntu (UFW: Несложный брандмауэр) отвергает все переадресации трафика, которые необходимы для Docker.

Включить переадресацию с UFW:

Измените конфигурацию UFW с использованием nano – текстовый редактор.

sudo nano /etc/default/ufw

Прокрутите вниз и найдите строку “DEFAULT_FORWARD_POLICY” и измените конфигурацию с DROP на ACCEPT.

DEFAULT_FORWARD_POLICY="ACCEPT"

Сохраните комбинацией клавиш CTRL+X и нажмите Y для подтверждения сохранения файла. После этого перезагрузите UFW:

service ufw restart

Чтобы запустить демон Docker, используйте:

sudo docker -d &

Вам нужно добавить пользователя, который будет работать сейчас в группе docker (замените имя пользователя root на свое):

sudo usermod -aG docker root

Шаг 2 – Развертывание PEPS

Переподключитесь в систему с использованием SSH от Вашего пользователя:

ssh Ваш_пользователь@Ваш_IP_Adress

Первое, что Вам нужно выполнить, это клонировать репозиторий:

# git clone https://github.com/MLstate/PEPS
Cloning into 'PEPS'...
remote: Counting objects: 282, done.
remote: Total 282 (delta 0), reused 0 (delta 0), pack-reused 282
Receiving objects: 100% (282/282), 78.74 KiB | 0 bytes/s, done.
Resolving deltas: 100% (137/137), done.
Checking connectivity... done.

Перейдите в каталог PEPS:

cd PEPS

Настройте доменное имя, заменив example.com на Ваше доменное имя:

echo example.com > domain

Эта команда создает текстовый файл с именем domain с указанным Вами доменом в качестве первой и единственной строки в файле.

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

sudo apt-get update
sudo apt-get install make

Теперь пришло время для создания контейнеров, которые будут создаваться около 10-20 минут.

make build

Если Все правильно, по завершении процесса Вы увидите сообщение похожее на:

Removing intermediate container e830b6ce75c0
Successfully built bbafc12c71c8

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

Если у вас уже есть сертификаты SSL для вашего домена, пропустите этот шаг и скопируйте сертификат и ключ (см. Шаг 5).

Создание временных сертификатов SSL происходит с помощью команды:

make certificate

Заполните нужные поля для создания сертификата.

Теперь мы готовы к запуску PEPS с помощью следующей команды:

sudo make run

Шаг 3 – Вход в первый раз

Для подключения в Web-интерфейс введите в браузере https://IP_Adress_сервера

Так как сейчас нами используются временные сертификаты SSL, Ваш браузер предупредит Вас, что сайт является небезопасным. Примите это в любом случае. В браузере Chrome нажмите кнопку Дополнительно, чтобы продолжить.

Облачное хранилище и почтовый сервер на PEPS

При первом запуске появится поле для создания пароля администратора.

Облачное хранилище и почтовый сервер на PEPS

В системе шифрования end-to-end в PEPS Админ аккаунт может создавать и удалять пользователей, но не сможет просмотреть их файлы.

После того, как Вы установите пароль администратора, основной интерфейс будет показан.

Облачное хранилище и почтовый сервер на PEPS

Далее нужно создать домен и сертификат должным образом.

Шаг 4 – Настройка домена

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

Давайте начнем с DNS. Настройка DNS будет отличаться в зависимости от Вашего провайдера доменных имен, а также в том случае, если Вы используете собственный интерфейс для настройки DNS записей.

Вы должны установить и А, и MX записи. Например, example.com размещен на:

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

Ваше имя Droplet должно быть mail.example.com. Не волнуйтесь. Вы можете переименовать Droplet. Нажмите на имя Droplet, чтобы увидеть его детали, выберите вкладку Настройки, а затем щелкните вкладку Переименовать. Возможно, Вам придется подождать обновления записей.

Вы также можете установить дополнительные записи. Используйте Интернет-сервис проверки MXToolBox: с его помощью можно не только корректность настройки Вашего домена, но и получить дополнительные советы по нескольким пунктам.

Как правило, обновления записей на DNS может занимать до 48 часов. Но обычно это происходит быстрее.

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

Шаг 5 – Настройка SSL-сертификатов

Для установки SSL сертификата Вам нужно скопировать файлы, предоставленные сертификационным центром для домена, в директорию PEPS.

Для копирования Вы можете использовать команду:

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

где your_server_ip – IP-адрес вашего сервера.

Когда это сделаете, убедитесь, что ваш браузер может открыть https://example.com без ошибок SSL. Лучше всего попробовать открыть через вкладку инкогнито в Вашем браузере.

Шаг 6 – Тестирование

Чтобы создать больше пользователей, Вам необходимо зайти в панель PEPS с правами пользователя Администратора и перейти в панель “People”. После нужно выбрать поле “Users” и нажать на функциональную кнопку “New User”.

Для проверки почты попробуйте отправить письмо на любой почтовый ящик и получить ответ на письмо. Если письмо отправляется, но ответ не получен, то, скорее всего, проблема в DNS записях. Они могли еще не обновиться или содержать ошибки, допущенные при их создании. Вернитесь к шагу 4: Настройка домена. Не забудьте проверить получение электронной почты от пользователя.

Заключение

Поздравляем! Теперь у вас есть экземпляр PEPS, работающий на Digital Ocean Droplet. Вы можете отправлять сообщения, обмениваться файлами и многое другое (запустив плагины, такие как чат и др.). Вы можете не переживать о краже Ваших данных. Все данные надежно защищены на сервере.

Есть несколько руководств, доступных для более подробного изучения функционала:

Руководство пользователя

Руководство администратора

Так же большее количество документации для разработчиков можно найти на GitHub.