如何经营自己的邮件服务器,并在Ubuntu 14.04与PEPS文件存储

从一篇文章在MLstate PEPS团队

介绍

我们都使用电子邮件和在线文件存储服务,如Gmail或Dropbox。 然而,这些服务可能不适合于存储个人和专业的敏感数据。 在附加重要的业务合同或机密信息时,我们是否相信他们的隐私政策? 我们接受我们的所有数据将被收集,处理和分析?

有一个解决这个问题的解决方案:PEPS是一个电子邮件,文件共享和聊天平台,使用端到端加密。 端到端加密确保加密和解密在您的计算机(客户端)上发生,而不是在服务器上发生,从来不会以明文形式看到机密数据。

PEPS:电子邮件,文件共享和聊天,您可以在自己的云实例上运行

本教程将指导您完成在DigitalOcean Droplet上部署PEPS实例的过程,以便您可以安全地存储数据。

先决条件

PEPS作为Docker容器分发,使安装变得容易。 您将需要一个带有Ubuntu 14.04 x64的DigitalOcean Droplet和安装在其上的Docker应用程序。 特别:

  • 一个Ubuntu 14.04 x64 Droplet与2 GB的内存,如果你只有几个用户。 如果您需要更多用户或只需要更多存储空间,请选择4 GB或更多内存。

  • 购买SSL证书以代替自签名证书; 这是推荐用于生产环境。 或者,您可以创建免费签名的SSL证书。 有关创建证书的说明将在本教程的后面部分中介绍。

您Droplet事项的名称:如果您打算通过电子邮件发送给外部收件人,你要配置,以避免您的邮件反向DNS得到标记为垃圾邮件。 好消息:Dig​​italOcean 自动配置 ,如果你的Droplet名称设置为你的FQDN(完全合格域名)PTR记录。 如果你打算从发送电子邮件mail.example.com ,这也应该是你Droplet的名称(即使你的地址是形式user@example.com )。

本教程中的所有命令都应以非root用户身份运行。 如果需要该命令的root访问权限,它会在前面加sudo与Ubuntu 14.04初始服务器设置介绍了如何添加用户,并给他们sudo访问。

第1步 - 安装Docker

第一步是安装Docker。 本教程基于Docker 1.6.2。 你有两个安装Docker的选项:

您还需要添加您创建的非root用户的(将在本教程中运行的所有命令的) docker的用户群。 与您的用户名替换sammy

sudo usermod -aG docker sammy

您还需要注销并重新登录作为非root用户,以使此更改处于活动状态。

第2步 - 部署PEPS

通过使用SSH连接到您的Dropletssh sammy @ your_server_ip (更换您的用户名和服务器IP),然后运行下面的命令来准备环境。

首先,克隆存储库:

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

更改为PEPS目录:

cd PEPS

配置您的域名,您的域名替换example.com:

echo example.com > domain

此命令创建一个名为的文本文件domain与您的域名作为文件中的第一个也是唯一行。

安装make:

sudo apt-get update
sudo apt-get install make

现在是建造容器的时候了,这将需要大约10-20分钟,所以你可以享受一杯咖啡或安排一个单独的会议:

make build

如果一切运行正常,它结束于类似下面的东西(ids是随机生成的,将不同):

Removing intermediate container 38d212189d43
Successfully built 24fd74241e48

对于第一次启动,我们将创建临时SSL / TLS证书并运行容器。 (两个步骤几乎是即时的,所以不要以为你要再喝一杯咖啡。)

如果您的域已有SSL证书,请跳过此步骤,并复制您的证书和密钥(请参阅第5步)。

使用以下命令创建临时SSL证书:

make certificate

选择一个简单的密码,因为您将被要求键入4次,证书是占位符。 大部分的问题都可以忽略:唯一重要的问题是, Common Name (eg server FQDN or YOUR name) []:这应该是您的域名相同。

下面是一个示例对话框:

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步 - 首次登录

连接到使用IP地址访问你Droplethttps:// your_server_ip从浏览器那里your_server_ip是你的Droplet的IP地址。

由于我们现在正在使用临时SSL证书,您的浏览器将警告您该网站不安全。 接受它。 有了Chrome,单击高级继续。

Chrome会向您发出有关SSL证书错误的警告,我们稍后会予以解决

首次运行时,系统将提示您创建管理员密码。 选择任何你喜欢的,只要它的复杂性是足够的。

PEPS正在工作,请选择您的管理员密码

由于PEPS中的端到端加密,管理员帐户可以创建和删除用户,但不能访问任何现有的加密用户数据。

设置管理员密码后,将显示主PEPS接口。

PEPS接口没有数据

接下来,让我们专注于正确设置域和证书。

第4步 - 设置您的域

现在您的实例运行正常,我们仍然需要正确设置域,这涉及使用真实的SSL证书,配置DNS和更多。

让我们从DNS开始。 根据您的域名提供商,使用自己的接口为您的域设置DNS条目或设置您自己的DNS服务器。 如果你想建立自己的DNS服务器,您可以使用如何配置BIND作为在Ubuntu 14.04专用网络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.

你Droplet名字应该是mail.example.com 别担心。 您可以从DigitalOcean帐户重命名Droplet。 点击Droplet名称以查看其详细信息,单击设置选项卡,然后单击重命名选项卡。 您可能需要等待DNS更新。

您还可以设置其他记录。 在线检查MXToolBox是验证您的域名设置正确,有益的,在几个点给出了建议。

需要注意的是DNS传播可能有点慢,但经过一段时间(通常1小时)后,你将能够从访问PEPS https://example.com

注:完成配置PEPS后,如果您不能发送或从外部域接收电子邮件,请仔细检查A和MX记录。 如果设置不正确,您将无法从自己的域之外发送或接收电子邮件。

第5步 - 设置SSL证书

您的浏览器仍然存在无效的SSL证书警告。

现在是设置SSL证书的时候了。 如果您还没有SSL证书,你可以从一个供应商购买,甚至建立一个免费的SSL证书用于非商业用途。

如何从商业证书颁发机构安装SSL证书文章解释了有关SSL证书的,包括如何购买一台的一切。

一定要复制两个密钥和证书命名为server.keyserver.crt/etc/peps/目录下。

在本地计算机上准备它们,并通过从包含证书的目录运行将文件复制到服务器:

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

其中, your_server_ip是你Droplet的IP地址。

完成后,请检查您的浏览器可以访问https://example.com没有SSL错误。

第6步 - 测试

为了创建更多用户,登录与管理员用户admin的用户名和你在第3步中创建的密码:初次登录 管理员用户可以为您的域创建电子邮件帐户。 进入PEPS管理员手册 ,学习如何。

首先,尝试在您网域内的两个不同用户之间发送和接收电子邮件。 例如,尝试发送电子邮件, admin@example.comsammy@example.com 如果这是成功的,尝试让sammy回应admin,以确保反向操作成功。

现在,请发送电子邮件至您网域以外的帐户。 如果此操作失败,您的A和MX记录未正确配置。 回到第4步:设置域 不要忘记测试接收来自域外用户的电子邮件。

结论

恭喜! 您现在有一个PEPS在DigitalOcean Droplet上运行的实例。 你可以(通过运行插件,如发送邮件,共享文件,多聊天 )安全。

有几个手册可用:

还参观了PEPS Facebook页面关于PEPS的最新消息。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏