Questo tutorial mostra l'installazione del software di gestione dei certificati Lemur su Ubuntu 16.04 LTS. Lemur è un progetto open source di NetFlix e utilizzato per generare i certificati per clienti/clienti. In questo articolo configureremo un ambiente virtuale basato su Python, installeremo i pacchetti richiesti, configureremo il servizio web di base e accederemo alla dashboard del gestore certificati. Si presume che tu abbia un'istanza LTS di Ubuntu 16.04 pulita in esecuzione, ad es. nel cloud (come AWS) o in un ambiente virtualizzato locale.
Dipendenze
Alcuni prerequisiti di base di cui avrai bisogno per eseguire Lemur:
- Sistema operativo Linux (in questo tutorial viene utilizzato Ubuntu 16.04 LTS).
- Python 3.5 o versioni successive.
- PostgreSQL 9.4 o versioni successive.
- Server Web Nginx.
Installazione delle dipendenze di build
Quando installi Lemur su un sistema operativo Ubuntu nudo, dovrai prendere i seguenti pacchetti in modo che Lemur possa costruire correttamente le sue dipendenze:
.. blocco di codice::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
Il comando precedente installerà i pacchetti di database nodejs, pip, nginx , git, npm e PostgreSQL.
Nota:installazione del nodo il gestore dei pacchetti può creare i nodejs bin nel percorso /usr/bin/nodejs invece di /usr/bin/node. Eseguire il comando seguente per creare un collegamento software nel percorso desiderato.
sudo ln -s /user/bin/nodejs /usr/bin/node
Ora installa virtualenv pacchetto utilizzando il seguente comando.
sudo pip install -U virtualenv
Configurazione dell'ambiente di compilazione
In questa guida, Lemur verrà installato in /www directory, quindi devi prima creare quella directory:
sudo mkdir /www
cd /www
Ora clona Lemur l'ultima fonte all'interno della directory appena creata e concediti il permesso di scrittura (lemure user è il creato in questo tutorial):
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/
Inoltre, crea l'ambiente virtuale, attivalo ed entra nella directory di Lemur:
su lemur
virtualenv -p python3 lemur
source /www/lemur/bin/activate
cd lemur
L'attivazione dell'ambiente modifica il PERCORSO variabile di ambiente , in modo che cose come pip ora vengano installate in virtualenv per impostazione predefinita.
Installazione di Lemur dal sorgente
Dopo aver configurato il sistema, assicurati di essere in virtualenv per eseguire il comando "make release".
which python
Ed esegui il seguente comando per installare npm dipendenze e compilare asset statici.
make release
Creazione della configurazione del lemure
Prima di eseguire Lemur, dobbiamo creare un file di configurazione valido per esso. L'interfaccia della riga di comando di Lemur viene fornita con un semplice comando per farti funzionare rapidamente. Il comando seguente creerà una configurazione predefinita in "~/.lemur/lemur.conf.py " e questa posizione può essere specificata passando il percorso_config parametro al create_config comando.
lemur create_config
Aggiorna configurazione Lemur
Una volta creato, dovrai aggiornare il file di configurazione con informazioni sul tuo ambiente, come ad esempio con quale database parlare, dove sono archiviate le chiavi, ecc.
vi ~/.lemur/lemur.conf.py
SQLALCHEMY_DATABASE_URI stringa di Postgresql può essere suddiviso in questo modo:
"postgresql://userame:[email protected]
Lo screenshot riportato di seguito mostra che le seguenti variabili richieste vengono compilate nel file di configurazione:
LEMUR_SECURITY_TEAM_EMAIL
LEMUR_DEFAULT_COUNTRY
LEMUR_DEFAULT_STATE
LEMUR_DEFAULT_LOCATION
LEMUR_DEFAULT_ORGANIZATION
LEMUR_DEFAULT_ORGANIZATIONAL_UNIT
Imposta il database Postgres
Per la produzione si consiglia un database dedicato. Per questa guida, presumo che Postgres sia stato installato e si trovi sulla stessa macchina su cui è installato Lemur.
Innanzitutto, imposta una password per l'utente postgres. Per questa guida utilizzeremo lemure come esempio ma dovresti usare la password del database generata da Lemur:
sudo -u postgres -i
psql
postgres=# CREATE USER lemur WITH PASSWORD 'lemur';
Una volta completata l'operazione, digita CTRL-D per uscire dalla shell di Postgres.
Successivamente, creeremo il nostro nuovo database:
sudo -u postgres createdb lemur
Inizializzazione del Gestore certificati Lemur
Lemur fornisce un comando utile che inizializzerà il database per te. Crea un utente predefinito (lemure ) che viene utilizzato da Lemur per aiutare ad associare certificati che attualmente non hanno un proprietario. Questo è più comunemente il caso quando Lemur ha scoperto certificati da una fonte di terze parti. Questo è anche un utente predefinito che può essere utilizzato per amministrare Lemur.
Oltre a creare un nuovo utente, Lemur crea anche alcune notifiche e-mail predefinite. Queste notifiche si basano su alcune opzioni di configurazione come LEMUR_SECURITY_TEAM_EMAIL . Fondamentalmente garantiscono che ogni certificato all'interno di Lemur invierà una notifica di scadenza al team di sicurezza.
Prendere nota della password utilizzata in quanto verrà utilizzata durante il primo accesso all'interfaccia utente di Lemur.
cd /www/lemur/lemur
lemur init
La seguente istantanea mostra l'output del comando "lemur init".
Configurazione del server web NGINX per Lemur
Per impostazione predefinita, Lemur funziona sulla porta 8000. Anche se la modifichi, in condizioni normali non sarai in grado di collegarti alla porta 80. Per aggirare questo problema (ed evitare di eseguire Lemur come utente privilegiato, cosa che non dovresti ), abbiamo bisogno di configurare un semplice proxy web. Esistono molti server Web diversi che puoi utilizzare per questo, ci piace e consigliamo Nginx.
Aggiungi le seguenti righe nel file di configurazione "/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;
}
Dopo aver apportato queste modifiche, riavvia il servizio Nginx per applicarle:
sudo service nginx restart
Avvio del servizio Web
Lemur fornisce un server web integrato (alimentato da gunicorn e eventlet) per farti decollare rapidamente. Per avviare il server web, usa semplicemente "lemur start ".
Puoi accedere con l'utente predefinito creato durante l'inizializzazione di Lemur o qualsiasi altro utente che potresti aver creato. Ora dovresti essere in grado di testare il servizio web visitando http://192.168.10.51:8000/ . (192.168.10.51 è l'indirizzo IP della macchina Lemur).
Il cruscotto del lemure è mostrato sopra. Viene utilizzato per creare certificati utilizzando autorità di certificazione autofirmate o radice.
Conclusione
In questo tutorial, il gestore di certificati Lemur è installato sull'ultima versione di Ubuntu LTS. Lo scopo di Lemur è creare e gestire i certificati. Supporta anche diversi ruoli di utenti.