So führen Sie Ihren eigenen Mailserver und Dateispeicher mit PEPS unter Ubuntu 14.04 aus

Ein Artikel vom PEPS Team bei MLstate

Einführung

Wir alle nutzen E-Mail- und Online-Dateispeicherdienste wie Google Mail oder Dropbox. Diese Dienste sind jedoch möglicherweise nicht für die Speicherung vertraulicher persönlicher und beruflicher Daten geeignet. Vertrauen wir ihren Datenschutzrichtlinien, wenn wir einen wichtigen Geschäftsvertrag oder vertrauliche Informationen beifügen? Akzeptieren wir, dass alle unsere Daten gesammelt, verarbeitet und analysiert werden?

Für dieses Problem gibt es eine Lösung: PEPS ist eine E-Mail-, Dateifreigabe- und Chat-Plattform, die End-to-End-Verschlüsselung verwendet. Durch die durchgehende Verschlüsselung wird sichergestellt, dass die Ver- und Entschlüsselung auf Ihrem Computer (dem Client) und nicht auf dem Server erfolgt, auf dem vertrauliche Daten niemals im Klartext angezeigt werden.

image: https: //assets.digitalocean.com/articles/peps_ubuntu_1404/peps-macbook.png [PEPS: E-Mail, Dateifreigabe und Chat können auf Ihrer eigenen Cloud-Instanz ausgeführt werden]

Dieses Tutorial führt Sie durch den Prozess der Bereitstellung Ihrer PEPS-Instanz auf einem DigitalOcean Droplet, damit Sie Ihre Daten sicher speichern können.

Voraussetzungen

PEPS wird als Docker-Container verteilt, um die Einrichtung zu vereinfachen. Sie benötigen ein DigitalOcean Droplet mit Ubuntu 14.04 x64 und der darauf installierten Docker-Anwendung. Speziell:

  • Ein Ubuntu 14.04 x64 Droplet mit 2 GB Speicher, wenn Sie nur wenige Benutzer haben. Wählen Sie 4 GB RAM oder mehr, wenn Sie mehr Benutzer oder nur mehr Speicherplatz für Ihre Daten benötigen.

  • Erwerben Sie ein SSL-Zertifikat, das anstelle des selbstsignierten verwendet werden soll. Dies wird für Produktionsumgebungen empfohlen. Alternativ können Sie ein kostenlos signiertes SSL-Zertifikat erstellen. Anweisungen zum Erstellen des Zertifikats finden Sie weiter unten in diesem Lernprogramm.

Der Name Ihres Droplets ist wichtig: Wenn Sie beabsichtigen, Nachrichten per E-Mail an externe Empfänger zu senden, soll Reverse DNS so konfiguriert werden, dass Ihre Nachrichten nicht als Spam gekennzeichnet werden. Gute Nachrichten: DigitalOcean https://www.digitalocean.com/community/questions/how-do-i-set-up-reverse-dns-for-my-ip Konfiguriert den PTR-Eintrag automatisch, wenn Ihr Droplet-Name festgelegt ist zu Ihrem FQDN (Fully Qualified Domain Name). Wenn Sie vorhaben, E-Mails von "+ mail.example.com " zu senden, sollte dies auch der Name Ihres Droplets sein (auch wenn Ihre Adressen die Form " user @ example.com +" haben).

Alle Befehle in diesem Lernprogramm sollten als Benutzer ohne Rootberechtigung ausgeführt werden. Wenn für den Befehl root-Zugriff erforderlich ist, wird vor + sudo + angezeigt. Initial Server Setup mit Ubuntu 14.04 erläutert, wie Benutzer hinzugefügt und ihnen sudo-Zugriff gewährt werden.

Schritt 1 - Docker installieren

Der erste Schritt ist die Installation von Docker. Dieses Tutorial basiert auf Docker 1.6.2. Sie haben zwei Möglichkeiten, Docker zu installieren:

Sie müssen auch den von Ihnen erstellten Nicht-Root-Benutzer (derjenige, der den gesamten Befehl in diesem Tutorial ausführt) zur Benutzergruppe "+ docker +" hinzufügen. Ersetzen Sie durch Ihren Benutzernamen:

sudo usermod -aG docker

Sie müssen sich auch abmelden und erneut als Benutzer ohne Rootberechtigung anmelden, damit diese Änderung aktiv wird.

Schritt 2 - Bereitstellen von PEPS

Stellen Sie über SSH mit + ssh @ + eine Verbindung zu Ihrem Droplet her (ersetzen Sie Ihren Benutzernamen und Ihre Server-IP), und führen Sie die folgenden Befehle aus, um die Umgebung vorzubereiten.

Klonen Sie zuerst das Repository:

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

Wechseln Sie in das Verzeichnis + PEPS +:

cd PEPS

Konfigurieren Sie Ihren Domainnamen und ersetzen Sie ihn durch Ihren Domainnamen:

echo  > domain

Dieser Befehl erstellt eine Textdatei mit dem Namen "+ domain +" und Ihrem Domainnamen als erste und einzige Zeile in der Datei.

Installieren Sie make:

sudo apt-get update
sudo apt-get install make

Jetzt ist es an der Zeit, die Behälter zu bauen, was etwa 10 bis 20 Minuten dauert, damit Sie einen Kaffee genießen oder ein Stand-up-Meeting planen können:

make build

Wenn alles gut läuft, endet es mit etwas wie dem Folgenden (die IDs werden zufällig generiert und unterscheiden sich):

Removing intermediate container 38d212189d43
Successfully built 24fd74241e48

Für den ersten Start werden wir temporäre SSL / TLS-Zertifikate erstellen und die Container ausführen. (Beide Schritte sind beinahe augenblicklich ausgeführt. Glauben Sie also nicht, dass Sie eine weitere Kaffeepause einlegen werden.)

Wenn Sie bereits über SSL-Zertifikate für Ihre Domain verfügen, überspringen Sie diese und kopieren Sie stattdessen Ihr Zertifikat und Ihren Schlüssel (siehe Schritt 5).

Erstellen Sie temporäre SSL-Zertifikate mit dem Befehl:

make certificate

Wählen Sie eine einfache Passphrase, da Sie viermal zur Eingabe aufgefordert werden und die Zertifikate Platzhalter sind. Die meisten Fragen können übersprungen werden: Die einzige Frage, die zählt, ist `+ Common Name (z. Server-FQDN oder IHR Name) []: + `, der mit Ihrer Domain identisch sein sollte.

Hier ist ein Beispieldialog:

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

Jetzt können wir PEPS mit dem folgenden Befehl starten:

sudo make run

Schritt 3 - Zum ersten Mal anmelden

Stellen Sie mit der IP-Adresse Ihres Droplets eine Verbindung her, indem Sie in Ihrem Browser "+ https: // " aufrufen, wobei "+" die IP-Adresse Ihres Droplets ist.

Da wir momentan temporäre SSL-Zertifikate verwenden, warnt Sie Ihr Browser, dass die Site unsicher ist. Akzeptiere es trotzdem. Klicken Sie in Chrome auf "Erweitert", um fortzufahren.

image: https: //assets.digitalocean.com/articles/peps_ubuntu_1404/ssl_chrome.png [Chrome warnt Sie vor dem falschen SSL-Zertifikat, das wird später behoben.]

Beim ersten Start werden Sie aufgefordert, ein Administratorkennwort zu erstellen. Wählen Sie nach Belieben, sofern die Komplexität ausreicht.

image: https: //assets.digitalocean.com/articles/peps_ubuntu_1404/first_run.png [PEPS funktioniert, wählen Sie Ihr Administratorkennwort]

Aufgrund der End-to-End-Verschlüsselung in PEPS kann das Administratorkonto Benutzer erstellen und löschen, kann jedoch nicht auf vorhandene verschlüsselte Benutzerdaten zugreifen.

Sobald Ihr Administratorkennwort eingerichtet ist, wird die PEPS-Hauptoberfläche angezeigt.

Als Nächstes konzentrieren wir uns auf die ordnungsgemäße Einrichtung der Domäne und der Zertifikate.

Schritt 4 - Einrichten Ihrer Domain

Da Ihre Instanz nun einwandfrei ausgeführt wird, müssen wir die Domäne noch ordnungsgemäß einrichten. Dies umfasst die Verwendung von echten SSL-Zertifikaten, die Konfiguration von DNS und vieles mehr.

Beginnen wir mit dem DNS. Verwenden Sie abhängig von Ihrem Domain-Namen-Provider entweder eine eigene Schnittstelle, um die DNS-Einträge für Ihre Domain einzurichten, oder richten Sie Ihren eigenen DNS-Server ein. Wenn Sie Ihren eigenen DNS-Server einrichten möchten, können Sie die https://www.digitalocean.com/community/tutorials/how-to-configure-bind-as-a-private-network-dns-server-on- ubuntu-14-04 [So konfigurieren Sie BIND als privaten Netzwerk-DNS-Server unter Ubuntu 14.04] Artikel, der Teil der https://www.digitalocean.com/community/tutorial_series/an-introduction-to-managing-dns ist [Eine Einführung in die DNS-Verwaltung] Artikelreihe.

Sie müssen sowohl A- als auch MX-Datensätze festlegen. Zum Beispiel für die fiktive Domain "+ example.com ", die unter " mail.example.com +" gehostet wird:

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

Ihr Droplet-Name sollte "+ mail.example.com +" lauten. Mach dir keine Sorgen. Sie können das Droplet von Ihrem DigitalOcean-Konto aus umbenennen. Klicken Sie auf den Namen des Droplets, um dessen Details anzuzeigen. Klicken Sie auf die Registerkarte * Einstellungen * und anschließend auf die Registerkarte * Umbenennen *. Möglicherweise müssen Sie warten, bis DNS aktualisiert wurde.

Sie können auch zusätzliche Datensätze festlegen. Der Online-Checker MXToolBox ist nützlich, um zu überprüfen, ob Ihre Domain richtig eingerichtet ist, und gibt in mehreren Punkten Ratschläge.

Beachten Sie, dass die DNS-Weitergabe etwas langsam sein kann. Nach einer Weile (häufig 1 Stunde) können Sie jedoch über "+ https: // example.com +" auf PEPS zugreifen.

Schritt 5 - Einrichten von SSL-Zertifikaten

In Ihrem Browser wird weiterhin eine ungültige SSL-Zertifikatwarnung angezeigt.

Jetzt ist es Zeit, SSL-Zertifikate einzurichten. Wenn Sie noch keine SSL-Zertifikate besitzen, können Sie diese bei einem Anbieter oder sogar unter https://www.digitalocean.com/community/tutorials/how-to-set-up-apache-with-a-free-signed- kaufen. ssl-certificate-on-a-vps [Einrichten eines kostenlosen SSL-Zertifikats] für nichtkommerzielle Zwecke.

Der Artikel Installation eines SSL-Zertifikats von einer kommerziellen Zertifizierungsstelle Hier erfahren Sie alles über SSL-Zertifikate, einschließlich des Erwerbs eines Zertifikats.

Achten Sie darauf, den Schlüssel und das Zertifikat mit den Namen "+ server.key" und "+ server.crt" in das Verzeichnis "+ / etc / peps / +" zu kopieren.

Bereiten Sie sie auf Ihrem lokalen Computer vor und kopieren Sie die Dateien auf Ihren Server, indem Sie sie aus dem Verzeichnis ausführen, das die Zertifikate enthält:

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

Dabei ist "++" die IP-Adresse Ihres Droplets.

Überprüfen Sie anschließend, ob Ihr Browser ohne SSL-Fehler auf "+ https: // example.com +" zugreifen kann.

Schritt 6 - Testen

Um weitere Benutzer zu erstellen, melden Sie sich als Administrator mit "+ admin +" als Benutzername und mit dem Kennwort an, das Sie in Schritt 3: Erstmalige Anmeldung erstellt haben. Der Administrator kann E-Mail-Konten für Ihre Domain erstellen. Weitere Informationen finden Sie im PEPS Admin Manual.

Versuchen Sie zunächst, E-Mails zwischen zwei verschiedenen Benutzern in Ihrer Domain zu senden und zu empfangen. Versuchen Sie beispielsweise, eine E-Mail von [email protected] an [email protected] zu senden. Wenn dies erfolgreich ist, lassen Sie sammy auf admin antworten, um sicherzustellen, dass der umgekehrte Vorgang erfolgreich ist.

Senden Sie jetzt eine E-Mail an ein Konto außerhalb Ihrer Domain. Wenn dies fehlschlägt, wurden Ihre A- und MX-Einträge nicht richtig konfiguriert. Kehren Sie zu Schritt 4: Einrichten Ihrer Domain zurück. Vergessen Sie nicht, auch den Empfang von E-Mails von einem Benutzer außerhalb Ihrer Domain zu testen.

Fazit

Herzliche Glückwünsche! Sie haben jetzt eine Instanz von PEPS, die auf einem DigitalOcean Droplet ausgeführt wird. Sie können sicher Nachrichten senden, Dateien freigeben und mehr (indem Sie Plugins wie chat ausführen).

Es stehen mehrere Handbücher zur Verfügung:

  • Benutzerhandbuch

  • Admin Manual

  • Weitere Dokumentation für Entwickler, die die PEPS-API verwenden möchten, oder für Operatoren in Bezug auf Backups und mehr finden Sie im Projekt-Wiki unter GitHub.

Besuchen Sie auch die PEPS Facebook-Seite, um die neuesten Nachrichten über PEPS zu erhalten.