Статья от команды 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:
-
Следуйте инструкциям для Ubuntu 14.04 в How для установки и использования. Докер: Начало работы
-
Добавьте приложение Docker при создании капли Ubuntu 14.04 x64
Вам также необходимо добавить созданного вами пользователя без полномочий 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).
Есть несколько доступных руководств:
-
Дополнительную документацию для разработчиков, желающих использовать API PEPS, или для операторов, касающихся резервного копирования, и многое другое можно найти в вики проекта на GitHub.
Также посетите страницу PEPS Facebook, чтобы узнать последние новости о PEPS.