Dieses Tutorial zeigt die Installation der Zertifikatverwaltungssoftware Lemur auf Ubuntu 16.04 LTS. Lemur ist ein Open-Source-Projekt von NetFlix und wird verwendet, um die Zertifikate für Kunden/Auftraggeber zu generieren. In diesem Artikel richten wir eine Python-basierte virtuelle Umgebung ein, installieren die erforderlichen Pakete, konfigurieren den grundlegenden Webdienst und greifen auf das Dashboard des Zertifikatsmanagers zu. Es wird davon ausgegangen, dass Sie eine saubere Ubuntu 16.04 LTS-Instanz ausführen, z. in der Cloud (wie AWS) oder einer lokalen virtualisierten Umgebung.
Abhängigkeiten
Einige Grundvoraussetzungen, 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.
Build-Abhängigkeiten installieren
Wenn Sie Lemur auf einem reinen Ubuntu-Betriebssystem installieren, müssen Sie die folgenden Pakete herunterladen, damit Lemur seine Abhängigkeiten korrekt erstellen 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
Der obige Befehl installiert nodejs-, pip-, nginx-, git-, npm- und PostgreSQL-Datenbankpakete.
Hinweis:Installation des Knotens Der Paketmanager kann die nodejs erstellen bin im Pfad /usr/bin/nodejs anstelle von /usr/bin/node. Führen Sie den folgenden Befehl aus, um einen Softlink am gewünschten Pfad zu erstellen.
sudo ln -s /user/bin/nodejs /usr/bin/node
Installieren Sie jetzt virtualenv Paket mit folgendem Befehl.
sudo pip install -U virtualenv
Einrichten der Build-Umgebung
In diesem Handbuch wird Lemur unter /www installiert Verzeichnis, also müssen Sie dieses Verzeichnis zuerst erstellen:
sudo mkdir /www
cd /www
Klonen Sie jetzt Lemur neueste Quelle in dem gerade erstellten Verzeichnis und geben Sie sich selbst Schreibrechte (lemur Benutzer ist der in dieser Anleitung erstellte):
sudo useradd lemur
sudo passwd lemur
sudo mkdir /home/lemur
sudo chown lemur:lemur /home/lemur
sudo git clone https://github.com/Netflix/lemur
sudo chown -R lemur lemur/
Erstellen Sie außerdem die virtuelle Umgebung, aktivieren Sie sie und geben Sie Lemurs Verzeichnis ein:
su lemur
virtualenv -p python3 lemur
source /www/lemur/bin/activate
cd lemur
Durch Aktivieren der Umgebung wird PATH angepasst Umgebungsvariable , sodass Dinge wie pip jetzt standardmäßig in der virtuellen Umgebung installiert werden.
Installieren von Lemur aus der Quelle
Stellen Sie nach dem Einrichten des Systems sicher, dass Sie sich in der virtuellen Umgebung befinden, um den Befehl „make release“ auszuführen.
which python
Und führen Sie den folgenden Befehl aus, um npm zu installieren Abhängigkeiten sowie zum Kompilieren statischer Assets.
make release
Lemur-Konfiguration erstellen
Bevor wir Lemur ausführen, müssen wir eine gültige Konfigurationsdatei dafür erstellen. Die Lemur-Befehlszeilenschnittstelle enthält einen einfachen Befehl, mit dem Sie schnell einsatzbereit sind. Der folgende Befehl erstellt eine Standardkonfiguration unter "~/.lemur/lemur.conf.py " und dieser Speicherort kann durch Übergabe des config_path angegeben werden -Parameter in die create_config Befehl.
lemur create_config
Lemur-Konfiguration aktualisieren
Nach der Erstellung müssen Sie die Konfigurationsdatei mit Informationen über Ihre Umgebung aktualisieren, z. B. mit welcher Datenbank Sie kommunizieren möchten, wo Schlüssel gespeichert werden usw.
vi ~/.lemur/lemur.conf.py
Der SQLALCHEMY_DATABASE_URI Zeichenfolge von Postgresql kann wie folgt aufgeteilt werden:
"postgresql://userame:[email protected]
Der folgende Screenshot zeigt, dass die folgenden erforderlichen Variablen in der Konfigurationsdatei ausgefüllt sind:
LEMUR_SECURITY_TEAM_EMAIL
LEMUR_DEFAULT_COUNTRY
LEMUR_DEFAULT_STATE
LEMUR_DEFAULT_LOCATION
LEMUR_DEFAULT_ORGANIZATION
LEMUR_DEFAULT_ORGANIZATIONAL_UNIT
Postgres-Datenbank einrichten
Für die Produktion wird eine dedizierte Datenbank empfohlen. Für diese Anleitung 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 diese Anleitung verwenden wir Lemur als Beispiel, aber Sie sollten das von Lemur generierte Datenbankpasswort verwenden:
sudo -u postgres -i
psql
postgres=# CREATE USER lemur WITH PASSWORD 'lemur';
Geben Sie bei Erfolg STRG-D ein, um die Postgres-Shell zu verlassen.
Als nächstes erstellen wir unsere neue Datenbank:
sudo -u postgres createdb lemur
Lemur Certificate Manager wird initialisiert
Lemur bietet einen hilfreichen Befehl, der Ihre Datenbank für Sie initialisiert. Es erstellt einen Standardbenutzer (lemur ), die von Lemur verwendet wird, um Zertifikate zuzuordnen, die derzeit keinen Besitzer haben. Dies ist am häufigsten der Fall, wenn Lemur Zertifikate von einer Drittquelle entdeckt hat. Dies ist auch ein Standardbenutzer, der zur Verwaltung von Lemur verwendet werden kann.
Zusätzlich zum Erstellen eines neuen Benutzers erstellt Lemur auch einige Standard-E-Mail-Benachrichtigungen. Diese Benachrichtigungen basieren auf einigen Konfigurationsoptionen wie LEMUR_SECURITY_TEAM_EMAIL . Sie garantieren grundsätzlich, dass jedes Zertifikat innerhalb von Lemur eine Ablaufbenachrichtigung an das Sicherheitsteam sendet.
Notieren Sie sich das verwendete Passwort, da dieses bei der ersten Anmeldung bei der Lemur-Benutzeroberfläche verwendet wird.
cd /www/lemur/lemur
lemur init
Der folgende Schnappschuss zeigt die Ausgabe des Befehls "lemur init".
NGINX-Webserverkonfiguration 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 ), müssen wir einen einfachen Web-Proxy einrichten. Es gibt viele verschiedene Webserver, die Sie dafür verwenden können, wir mögen und empfehlen Nginx.
Fügen Sie in der Konfigurationsdatei folgende Zeilen hinzu:„/etc/nginx/sites-available/default ".
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;
}
Nachdem Sie diese Änderungen vorgenommen haben, starten Sie den Nginx-Dienst neu, um sie zu übernehmen:
sudo service nginx restart
Webdienst starten
Lemur bietet einen integrierten Webserver (unterstützt von Gunicorn und Eventlet), um Sie schnell auf den Weg zu bringen. Um den Webserver zu starten, verwenden Sie einfach "lemur start ".
Sie können sich mit dem Standardbenutzer anmelden, der während der Initialisierung von Lemur erstellt wurde, oder mit jedem anderen Benutzer, den Sie möglicherweise erstellt haben. Sie sollten jetzt in der Lage sein, den Webdienst zu testen, indem Sie http://192.168.10.51:8000/ besuchen . (192.168.10.51 ist die IP-Adresse der Lemur-Maschine).
Das Dashboard des Lemur ist oben abgebildet. Es wird verwendet, um Zertifikate mit selbstsignierten oder Root-Zertifizierungsstellen zu erstellen.
Schlussfolgerung
In diesem Tutorial wird der Lemur-Zertifikatsmanager auf der neuesten Ubuntu LTS-Version installiert. Der Zweck von Lemur ist das Erstellen und Verwalten von Zertifikaten. Es unterstützt auch verschiedene Rollen von Benutzern.