Installation des Lemur Certificate Managers auf Ubuntu

Dieses Tutorial zeigt die Installation der Lemur Zertifikatsverwaltungssoftware auf Ubuntu 16.04 LTS. Lemur ist ein Open-Source-Projekt von NetFlix und dient zur Generierung der Zertifikate für Kunden/Kunden. In diesem Artikel werden wir eine Python-basierte virtuelle Umgebung einrichten, die erforderlichen Pakete installieren, den grundlegenden Webdienst konfigurieren und auf das Dashboard des Zertifikatsmanagers zugreifen. Es wird davon ausgegangen, dass Sie eine saubere Ubuntu 16.04 LTS-Instanz laufen haben, z.B. in der Cloud (wie AWS) oder einer lokalen virtualisierten Umgebung.

Abhängigkeiten

Einige grundlegende Voraussetzungen, die Sie benötigen, um Lemur auszuführen:

  • Linux-Betriebssystem (in diesem Tutorial wird Ubuntu 16.04 LTS verwendet).
  • Python 3.5 oder höher.
  • PostgreSQL 9.4 oder höher.
  • Nginx Webserver.

Installation von Build-Abhängigkeiten

Wenn Sie Lemur auf einem bloßen Ubuntu-Betriebssystem installieren, müssen Sie die folgenden Pakete herunterladen, damit Lemur seine Abhängigkeiten korrekt aufbauen kann:

… Codeblock::: bash

sudo apt-get update
sudo apt-get install nodejs nodejs-legacy python-pip python-dev python3-dev libpq-dev build-essential libssl-dev libffi-dev libsasl2-dev libldap2-dev nginx git supervisor npm postgresql

Installieren von Build-Abhängigkeiten

Der obige Befehl installiert die Datenbankpakete nodejs, pip, nginx, git, npm und PostgreSQL.

Hinweis: Bei der Installation des Knotenpaketmanagers kann der nodejs bin unter /usr/bin/nodejs path anstelle von /usr/bin/bin/node erstellt werden. Führen Sie den folgenden Befehl aus, um einen Softlink auf dem gewünschten Pfad zu erstellen.

sudo ln -s /user/bin/nodejs /usr/bin/node

Installieren Sie nun das Paket virtualenv mit folgendem Befehl.

sudo pip install -U virtualenv

Installieren Sie virtualenv

Einrichten der Buildumgebung

In diesem Handbuch wird Lemur im Verzeichnis /wwww installiert, so dass Sie dieses Verzeichnis zuerst erstellen müssen:

sudo mkdir /www
cd /www

Erstellen Sie das www-Verzeichnis

Klonen Sie nun die neueste Lemur-Quelle innerhalb des gerade erstellten Verzeichnisses und geben Sie sich die Schreibberechtigung (lemur user ist der in diesem Tutorial erstellte):

sudo useradd lemur
sudo passwd lemur
sudo mkdir /home/lemur
sudo chown lemur:lemur /home/lemur

Einen Benutzer für lemur hinzufügen

sudo git clone h
ttps://github.com/Netflix/lemur sudo chown -R lemur lemur/

Klonen von lemur Quellcode Quellcode Quellcode lemur

Erstellen Sie auch die virtuelle Umgebung, aktivieren Sie sie und geben Sie das Verzeichnis von Lemur ein:

su lemur
virtualenv -p python3 lemur

Virtuelle Virtualität schaffen

source /www/lemur/bin/activate
cd lemur

Quelle lemur Verzeichnis

Die Aktivierung der Umgebung passt die Umgebungsvariable PATH an, so dass Dinge wie pip nun standardmäßig in das Virtualenv installiert werden.

Installation von Lemur aus dem Quellcode

Nachdem Sie das System eingerichtet haben, stellen Sie sicher, dass Sie sich im virtualenv befinden, um den Befehl „make release“ auszuführen.

which python

Pythonfreigabe prüfen

Und führen Sie den folgenden Befehl aus, um npm-Abhängigkeiten zu installieren und statische Assets zu kompilieren.

 make release

Aufbau des Freigabecodes

Lemur-Konfiguration erstellen

Bevor wir Lemur ausführen, müssen wir eine gültige Konfigurationsdatei dafür erstellen. Die Lemur-Befehlszeilenschnittstelle verfügt über einen einfachen Befehl, um Sie schnell in Betrieb zu nehmen. Der folgende Befehl erstellt eine Standardkonfiguration unter „~/.lemur/lemur.conf.py“ und dieser Speicherort kann durch Übergabe des config_path-Parameters an den Befehl create_config angegeben werden.

 lemur create_config

Lemur-Konfiguration erstellen

Lemur-Konfiguration aktualisieren

Nach der Erstellung müssen Sie die Konfigurationsdatei mit Informationen über Ihre Umgebung aktualisieren, z.B. mit welcher Datenbank Sie sprechen möchten, wo Schlüssel gespeichert sind usw.

vi ~/.lemur/lemur.conf.py

Die Zeichenkette SQLALCHEMY_DATABASE_URI von Postgresql kann wie folgt aufgelöst werden:
„postgresql://Benutzername:password@<database-fqdn>:<database-port>/<database-name>“.

Der untenstehende Screenshot zeigt, dass folgende erforderliche Variablen in der Konfigurationsdatei ausgefüllt werden:

LEMUR_SECURITY_TEAM_EMAIL
LEMUR_DEFAULT_COUNTRY
LEMUR_DEFAULT_STATE
LEMUR_DEFAULT_LOCATION
LEMUR_DEFAULT_ORGANIZATION
LEMUR_DEFAULT_ORGANIZATIONAL_UNIT

Lemur-Konfiguration aktualisieren

Einrichten der Postgres-Datenbank

Für die Produktion wird eine eigene Datenbank empfohlen. Für dieses Handbuch gehe ich davon aus, dass postgres installiert wurde und sich auf demselben Computer befindet, auf dem Lemur installiert ist.

Legen Sie zunächst ein Passwort für den postgres-Benutzer fest. Für diesen Leitfaden werden wir Lemur als Beispiel verwenden, aber Sie sollten das von Lemur generierte Datenbankpasswort verwenden:

sudo -u postgres -i

Lemur-Benutzer in Postgres hinzufügen

psql
postgres=# CREATE USER lemur WITH PASSWORD 'lemur';

Benutzer anlegen

Nach erfolgreichem Abschluss geben Sie STRG-D ein, um die Postgres-Shell zu verlassen.

Als nächstes werden wir unsere neue Datenbank erstellen:

sudo -u postgres createdb lemur

Erstellen der Datenbank

Initialisierung des Lemur Certificate Managers

Lemur bietet einen hilfreichen Befehl, der Ihre Datenbank für Sie initialisiert. Es wird ein Standardbenutzer (lemur) erstellt, der von Lemur verwendet wird, um Zertifikate zuzuordnen, die derzeit keinen Eigentümer haben. Dies ist vor allem dann der Fall, wenn Lemur Zertifikate von Drittanbietern entdeckt hat. Dies ist auch ein Standardbenutzer, mit dem Lemur verwaltet werden kann.

Zusätzlich zur Erstellung eines neuen Benutzers erstellt Lemur auch einige Standard-E-Mail-Benachrichtigungen. Diese Benachrichtigungen basieren auf einigen wenigen Konfigurationsoptionen wie z.B. LEMUR_SECURITY_TEAM_EMAIL. Sie garantieren grundsätzlich, dass jedes Zertifikat innerhalb von Lemur eine Ablaufmeldung an das Sicherheitsteam sendet.

Notieren Sie sich das verwendete Passwort, da dieses bei der ersten Anmeldung an der Lemur-Benutzeroberfläche verwendet wird.

cd /www/lemur/lemur
lemur init

Lemur einleiten

Der folgende Schnappschuss zeigt die Ausgabe des Befehls „lemur init“.

Lemur init-Befehl

NGINX Webserver-Konfiguration für Lemur

Standardmäßig läuft Lemur auf Port 8000. Selbst wenn Sie dies ändern, können Sie sich unter normalen Bedingungen nicht an Port 80 binden. Um dies zu umgehen (und um zu vermeiden, dass Lemur als privilegierter Benutzer ausgeführt wird, was Sie nicht sollten), benötigen wir einen einfachen Web-Proxy. Es gibt viele verschiedene Webserver, die Sie dafür verwenden können, wir mögen und empfehlen Nginx.

Füge folgende Zeilen in die Konfigurationsdatei „/etc/nginx/sites-available/default“ ein.

location /api {
 proxy_pass http://127.0.0.1:8000;
 proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
 proxy_redirect off;
 proxy_buffering off;
 proxy_set_header Host $host;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 }
location / {
 root /www/lemur/lemur/static/dist;
 include mime.types;
 index index.html;
 }

nginx als Proxy für lemur konfigurieren

Nachdem Sie diese Änderungen vorgenommen haben, starten Sie den Nginx-Dienst neu, um sie anzuwenden:

sudo service nginx restart

Restart nginx

Starten des Web Service

Lemur bietet einen integrierten Webserver (mit Gunicorn und Eventlet), um Sie schnell vom Boden zu bringen. Um den Webserver zu starten, verwenden Sie einfach „lemur start„.

Lemur Webserver starten

Sie können sich mit dem Standardbenutzer anmelden, der während der Initialisierung von Lemur erstellt wurde, oder mit jedem anderen Benutzer, den Sie erstellt haben. Sie sollten nun in der Lage sein, den Webservice unter http://192.168.10.51:8000/. zu testen. (192.168.10.51 ist die IP-Adresse der Lemur-Maschine).

Anmelden bei lemur certificate manager

Das Dashboard des Lemur ist oben dargestellt. Es wird verwendet, um Zertifikate mit Hilfe von selbstsignierten oder Stammzertifizierungsstellen zu erstellen.

Fazit

In diesem Tutorial wird der Lemur-Zertifikatsmanager auf der neuesten Ubuntu LTS-Version installiert. Der Zweck von Lemur ist die Erstellung und Verwaltung von Zertifikaten. Es unterstützt auch verschiedene Rollen von Benutzern.

Das könnte Dich auch interessieren …