このチュートリアルでは、Ubuntu16.04LTSへのLemur証明書管理ソフトウェアのインストールについて説明します。 LemurはNetFlixのオープンソースプロジェクトであり、顧客/クライアントの証明書を生成するために使用されます。この記事では、Pythonベースの仮想環境をセットアップし、必要なパッケージをインストールし、基本的なWebサービスを構成し、証明書マネージャーのダッシュボードにアクセスします。クリーンなUbuntu16.04LTSインスタンスが実行されていることを前提としています。クラウド(AWSなど)またはローカルの仮想化環境。
Lemurを実行するために必要ないくつかの基本的な前提条件:
- Linuxオペレーティングシステム(このチュートリアルではUbuntu 16.04 LTSを使用しています)。
- Python3.5以降。
- PostgreSQL9.4以降。
- NginxWebサーバー。
ベアUbuntuOSにLemurをインストールする場合、Lemurが依存関係を正しく構築できるように、次のパッケージを入手する必要があります。
.. code-block ::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
上記のコマンドは、nodejs、pip、nginx、git、npm、およびPostgreSQLデータベースパッケージをインストールします。
注:ノードをインストールする パッケージマネージャーはnodejsを作成する場合があります / usr / bin/nodeではなく/usr/ bin/nodejsパスにあるbin。次のコマンドを実行して、目的のパスにソフトリンクを作成します。
sudo ln -s /user/bin/nodejs /usr/bin/node
次に、 virtualenvをインストールします 次のコマンドを使用してパッケージ化します。
sudo pip install -U virtualenv
このガイドでは、Lemurは / wwwにインストールされます ディレクトリなので、最初にそのディレクトリを作成する必要があります:
sudo mkdir /www
cd /www
次に、キツネザルのクローンを作成します 作成したばかりのディレクトリ内の最新のソースで、書き込み権限を自分に与えます(キツネザル ユーザーはこのチュートリアルで作成されます):
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 /
また、仮想環境を作成してアクティブ化し、Lemurのディレクトリに入ります:
su lemur
virtualenv -p python3 lemur
source /www/lemur/bin/activate
cd lemur
環境をアクティブ化すると、パスが調整されます 環境変数。これにより、pipなどがデフォルトでvirtualenvにインストールされるようになりました。
システムをセットアップした後、「makerelease」コマンドを実行するためにvirtualenvにいることを確認してください。
which python
次のコマンドを実行して、 npmをインストールします 依存関係と静的アセットのコンパイル。
make release
Lemur構成の作成
Lemurを実行する前に、有効な構成ファイルを作成する必要があります。 Lemurコマンドラインインターフェイスには、すばやく起動して実行するための簡単なコマンドが付属しています。次のコマンドは、「〜/ .lemur / lemur.conf.py」の下にデフォルト構成を作成します "そしてこの場所はconfig_pathを渡すことで指定できます create_configへのパラメータ コマンド。
lemur create_config
Lemur構成を更新
作成したら、通信するデータベース、キーが保存されている場所など、環境に関する情報で構成ファイルを更新する必要があります。
vi ~/.lemur/lemur.conf.py
SQLALCHEMY_DATABASE_URI Postgresqlの文字列 次のように分割できます:
"postgresql:// userame:[email protected]
以下のスクリーンショットは、次の必須変数が構成ファイルに入力されていることを示しています。
LEMUR_SECURITY_TEAM_EMAIL
LEMUR_DEFAULT_COUNTRY
LEMUR_DEFAULT_STATE
LEMUR_DEFAULT_LOCATION
LEMUR_DEFAULT_ORGANIZATION
LEMUR_DEFAULT_ORGANIZATIONAL_UNIT
本番環境では、専用のデータベースをお勧めします。このガイドでは、postgresがインストールされており、Lemurがインストールされているのと同じマシン上にあると想定します。
まず、postgresユーザーのパスワードを設定します。このガイドでは、キツネザルを使用します 例として、Lemurによって生成されたデータベースパスワードを使用する必要があります:
sudo -u postgres -i
psql
postgres=# CREATE USER lemur WITH PASSWORD 'lemur';
成功したら、CTRL-Dを入力してPostgresシェルを終了します。
次に、新しいデータベースを作成します:
sudo -u postgres createdb lemur
LemurCertificateManagerの初期化
Lemurは、データベースを初期化するための便利なコマンドを提供します。デフォルトのユーザー(キツネザル)を作成します )現在所有者がいない証明書を関連付けるためにLemurによって使用されます。これは、Lemurがサードパーティのソースから証明書を発見した場合に最もよく見られます。これは、Lemurの管理に使用できるデフォルトのユーザーでもあります。
Lemurは、新しいユーザーの作成に加えて、いくつかのデフォルトの電子メール通知も作成します。これらの通知は、 LEMUR_SECURITY_TEAM_EMAILなどのいくつかの構成オプションに基づいています。 。基本的に、Lemur内のすべての証明書がセキュリティチームに1つの有効期限通知を送信することを保証します。
使用されているパスワードをメモしてください。これは、LemurUIへの最初のログイン時に使用されます。
cd /www/lemur/lemur
lemur init
次のスナップショットは、「lemurinit」コマンドの出力を示しています。
LemurのNGINXWebサーバー構成
デフォルトでは、Lemurはポート8000で実行されます。これを変更しても、通常の状態では、ポート80にバインドできません。これを回避するため(および、特権ユーザーとしてLemurを実行しないようにするため)。 )、単純なWebプロキシを設定する必要があります。これに使用できるさまざまなWebサーバーがあります。Nginxが気に入っており、お勧めします。
構成ファイル「/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;
}
これらの変更を行った後、Nginxサービスを再起動して適用します:
sudo service nginx restart
Webサービスの開始
Lemurは、組み込みのWebサーバー(gunicornとeventletを搭載)を提供して、すぐに作業を開始します。 Webサーバーを起動するには、「 lemur start」を使用するだけです。 "。
Lemurの初期化中に作成されたデフォルトのユーザーまたは作成した他のユーザーでログインできます。これで、 http://192.168.10.51:8000/にアクセスしてWebサービスをテストできるようになります。 。 (192.168.10.51はLemurマシンのIPアドレスです。)
キツネザルのダッシュボードは上に表示されています。自己署名またはルート認証局を使用して証明書を作成するために使用されます。
このチュートリアルでは、Lemur証明書マネージャーが最新のUbuntuLTSバージョンにインストールされています。 Lemurの目的は、証明書を作成および管理することです。また、ユーザーのさまざまな役割もサポートします。