Как запустить собственный почтовый сервер и хранилище файлов с PEPS в Ubuntu 14.04

Статья от команды PEPS в MLstate

Вступление

Мы все используем электронную почту и онлайн-сервисы хранения файлов, такие как Gmail или Dropbox. Однако эти услуги могут не подходить для хранения конфиденциальных данных, как личных, так и профессиональных. Доверяем ли мы их политике конфиденциальности при прикреплении важного делового контракта или конфиденциальной информации? Принимаем ли мы, что все наши данные будут собираться, обрабатываться и анализироваться?

Существует решение этой проблемы: PEPS - это платформа электронной почты, обмена файлами и чата, использующая сквозное шифрование. Сквозное шифрование гарантирует, что шифрование и дешифрование происходит на вашем компьютере (клиенте), а не на сервере, который никогда не видит конфиденциальные данные в виде открытого текста.

image: https: //assets.digitalocean.com/articles/peps_ubuntu_1404/peps-macbook.png [PEPS: электронная почта, обмен файлами и чат вы можете запустить в своем собственном облачном экземпляре]

Этот учебник проведет вас через процесс развертывания вашего экземпляра PEPS на DigitalOcean Droplet, чтобы вы могли безопасно хранить свои данные.

Предпосылки

PEPS распространяется в виде контейнеров Docker, что упрощает настройку. Вам понадобится DigitalOcean Droplet с Ubuntu 14.04 x64 и установленным на нем приложением Docker. В частности:

  • Капля Ubuntu 14.04 x64 с 2 ГБ памяти, если у вас всего несколько пользователей. Выберите 4 ГБ ОЗУ или больше, если вам нужно больше пользователей или вам просто нужно больше места для хранения ваших данных.

  • Приобретите SSL-сертификат для использования вместо самоподписанного. это рекомендуется для производственных сред. Кроме того, вы можете создать бесплатный подписанный сертификат SSL. Инструкции по созданию сертификата включены далее в это руководство.

Название вашей капли имеет значение: если вы планируете отправлять сообщения по электронной почте внешним получателям, вы хотите настроить Reverse DNS, чтобы ваши сообщения не были помечены как спам. Хорошие новости: DigitalOcean autoically настраивает запись PTR, если задано имя вашей капли на ваше полное доменное имя (полностью определенное доменное имя). Если вы планируете отправлять электронную почту с + mail.example.com +, это также должно быть имя вашей капли (даже если ваши адреса имеют вид + user @ example.com +).

Все команды в этом руководстве должны выполняться от имени пользователя без полномочий root. Если для этой команды требуется root-доступ, ему будет предшествовать + sudo +. Initial Server Setup с Ubuntu 14.04 объясняет, как добавлять пользователей и предоставлять им доступ sudo.

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

Первым шагом является установка Docker. Этот учебник основан на Docker 1.6.2. У вас есть 2 варианта установки Docker:

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

sudo usermod -aG docker

Вам также нужно будет выйти и снова войти в систему как пользователь без полномочий root, чтобы это изменение было активным.

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

Подключитесь к Droplet через SSH с помощью + ssh @ + (замените ваше имя пользователя и IP-адрес сервера) и выполните следующие команды для подготовки среды.

Сначала клонируем репозиторий:

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

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

cd PEPS

Настройте свое доменное имя, заменив его своим доменным именем:

echo  > domain

Эта команда создает текстовый файл с именем + 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

Выберите простую фразу-пароль, поскольку вам будет предложено ввести ее 4 раза, а сертификаты будут заполнителями. Большинство вопросов можно пропустить. Единственный вопрос, который имеет значение, это `+ 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]:
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) []:
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 - Вход в первый раз

Подключитесь к своей капле, используя ее IP-адрес, посетив + https: // + в вашем браузере, где ++ - это IP-адрес вашей капли.

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

изображение: https: //assets.digitalocean.com/articles/peps_ubuntu_1404/ssl_chrome.png [Chrome предупредит вас о неправильном SSL-сертификате, мы исправим это позже]

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

изображение: https: //assets.digitalocean.com/articles/peps_ubuntu_1404/first_run.png [PEPS работает, выберите пароль администратора]

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

Как только ваш пароль администратора установлен, отображается основной интерфейс PEPS.

изображение: https: //assets.digitalocean.com/articles/peps_ubuntu_1404/peps_interface.png [Интерфейс PEPS без данных]

Далее, давайте сосредоточимся на правильной настройке домена и сертификатов.

Шаг 4 - Настройка вашего домена

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

Давайте начнем с DNS. В зависимости от вашего провайдера доменных имен, либо используйте их собственный интерфейс для настройки записей DNS для вашего домена, либо настройте собственный DNS-сервер. Если вы хотите настроить свой собственный DNS-сервер, вы можете использовать https://www.digitalocean.com/community/tutorials/how-to-configure-bind-as-a-private-network-dns-server-on- ubuntu-14-04 [Как настроить BIND как частный сетевой DNS-сервер в Ubuntu 14.04], которая является частью https://www.digitalocean.com/community/tutorial_series/an-introduction-to-managing-dns Серия статей [Введение в управление DNS].

Вы должны установить записи A и MX. Например, для вымышленного домена + example.com +, размещенного на + mail.example.com +:

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

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

Вы также можете установить дополнительные записи. Онлайновая проверка MXToolBox полезна для проверки правильности настройки домена и дает советы по нескольким пунктам.

Обратите внимание, что распространение DNS может быть немного медленным, но через некоторое время (часто 1 час) вы сможете получить доступ к PEPS из + https: // example.com +.

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

Вы по-прежнему будете получать предупреждение о недействительном сертификате SSL от вашего браузера.

Настало время настроить SSL-сертификаты. Если у вас еще нет SSL-сертификатов, вы можете купить их у поставщика или даже по адресу https://www.digitalocean.com/community/tutorials/how-to-set-up-apache-with-a-free-signed- ssl-certificate-on-a-vps [установить бесплатный SSL-сертификат] для некоммерческих целей.

Статья Как установить сертификат SSL из Коммерческого центра сертификации объясняет все о SSL-сертификатах, в том числе о том, как их приобрести.

Обязательно скопируйте ключ и сертификат с именем + server.key и` + server.crt` в каталог + / etc / peps / +.

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

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

где ++ - это IP-адрес вашей капли.

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

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

Чтобы создать больше пользователей, войдите в систему как пользователь admin с + admin + в качестве имени пользователя и паролем, который вы создали в Step 3: Вход в первый раз. Пользователь с правами администратора может создавать учетные записи электронной почты для вашего домена. Перейдите к PEPS Руководству администратора, чтобы узнать, как это сделать.

Сначала попробуйте отправлять и получать электронную почту между двумя разными пользователями вашего домена. Например, попробуйте отправить электронное письмо от [email protected] на [email protected]. Если это успешно, попробуйте sammy ответить администратору, чтобы убедиться, что обратная операция прошла успешно.

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

Заключение

Поздравляем! Теперь у вас есть экземпляр PEPS, работающий на дроплете DigitalOcean. Вы можете безопасно отправлять сообщения, обмениваться файлами и т. Д. (Запустив плагины, такие как chat).

Есть несколько доступных руководств:

  • User Manual

  • Admin Manual

  • Дополнительную документацию для разработчиков, желающих использовать API PEPS, или для операторов, касающихся резервного копирования, и многое другое можно найти в вики проекта на GitHub.

Также посетите страницу PEPS Facebook, чтобы узнать последние новости о PEPS.

Related