Поиск по сайту:

Установка менеджера сертификатов Lemur на Ubuntu


На этой странице

  1. Зависимости
  2. Установка зависимостей сборки
  3. Настройка среды сборки
  4. Установка Lemur из исходного кода
  5. Создание конфигурации Lemur
  6. Обновление конфигурации Lemur
  7. Настройка базы данных Postgres
  8. Инициализация диспетчера сертификатов Lemur
  9. Конфигурация веб-сервера NGINX для Lemur
  10. Запуск веб-службы
  11. Заключение

В этом руководстве показана установка программного обеспечения для управления сертификатами Lemur в Ubuntu 16.04 LTS. Lemur — это проект NetFlix с открытым исходным кодом, который используется для создания сертификатов для заказчиков/клиентов. В этой статье мы настроим виртуальную среду на основе Python, установим необходимые пакеты, настроим базовый веб-сервис и получим доступ к панели управления диспетчера сертификатов. Предполагается, что у вас запущен чистый экземпляр Ubuntu 16.04 LTS, например. в облаке (например, AWS) или в локальной виртуализированной среде.

Зависимости

Некоторые основные предварительные условия, которые вам понадобятся для запуска Lemur:

  • Операционная система Linux (в этом руководстве используется Ubuntu 16.04 LTS).
  • Python 3.5 или более поздней версии.
  • PostgreSQL 9.4 или более поздней версии.
  • Веб-сервер Nginx.

Установка зависимостей сборки

Когда вы устанавливаете Lemur на чистую ОС Ubuntu, вам нужно будет получить следующие пакеты, чтобы Lemur мог правильно построить свои зависимости:

.. кодовый блок:: 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/nodejs вместо /usr/bin/node. Выполните следующую команду, чтобы создать программную ссылку по нужному пути.

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

Теперь установите пакет virtualenv, используя следующую команду.

sudo pip install -U virtualenv

Настройка среды сборки

В этом руководстве Lemur будет установлен в каталог /www, поэтому вам нужно сначала создать этот каталог:

sudo mkdir /www
cd /www

Теперь клонируйте последний исходный код Lemur в только что созданный каталог и дайте себе разрешение на запись (в этом руководстве создается пользователь lemur):

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 лемур лемур/

Также создайте виртуальную среду, активируйте ее и войдите в каталог Lemurs:

su lemur
virtualenv -p python3 lemur

source /www/lemur/bin/activate
cd lemur

Активация среды настраивает переменную среды PATH, так что такие вещи, как pip, теперь устанавливаются в virtualenv по умолчанию.

Установка Lemur из исходников

После настройки системы убедитесь, что вы находитесь в виртуальной среде, чтобы выполнить команду «сделать релиз».

which python

И выполните следующую команду, чтобы установить зависимости npm, а также скомпилировать статические ресурсы.

 make release

Создание конфигурации Лемур

Прежде чем мы запустим Lemur, мы должны создать для него действительный файл конфигурации. Интерфейс командной строки Lemur поставляется с простой командой, которая поможет вам быстро приступить к работе. Следующая команда создаст конфигурацию по умолчанию в \~/.lemur/lemur.conf.py\, и это расположение можно указать, передав параметр config_path команде create_config.

 lemur create_config

Обновить конфигурацию лемура

После создания вам нужно будет обновить файл конфигурации с информацией о вашей среде, например, с какой базой данных общаться, где хранятся ключи и т. д.

vi ~/.lemur/lemur.conf.py

Строка SQLALCHEMY_DATABASE_URI Postgresql может быть разбита следующим образом:
\postgresql://userame:[email :/\

На приведенном ниже снимке экрана показано, что в файле конфигурации заполнены следующие обязательные переменные:

LEMUR_SECURITY_TEAM_EMAIL
LEMUR_DEFAULT_COUNTRY
LEMUR_DEFAULT_STATE
LEMUR_DEFAULT_LOCATION
LEMUR_DEFAULT_ORGANIZATION
LEMUR_DEFAULT_ORGANIZATIONAL_UNIT

Настройка базы данных Postgres

Для производства рекомендуется выделенная база данных. В этом руководстве я предполагаю, что postgres установлен и находится на той же машине, на которой установлен Lemur.

Сначала установите пароль для пользователя postgres. В этом руководстве мы будем использовать lemur в качестве примера, но вы должны использовать пароль базы данных, сгенерированный Lemur:

sudo -u postgres -i
psql
postgres=# CREATE USER lemur WITH PASSWORD 'lemur';

В случае успеха введите CTRL-D, чтобы выйти из оболочки Postgres.

Далее мы создадим нашу новую базу данных:

sudo -u postgres createdb lemur

Инициализация диспетчера сертификатов Lemur

Lemur предоставляет полезную команду, которая инициализирует вашу базу данных. Он создает пользователя по умолчанию (lemur), который используется Lemur, чтобы помочь связать сертификаты, у которых в настоящее время нет владельца. Чаще всего это происходит, когда Lemur обнаруживает сертификаты из стороннего источника. Это также пользователь по умолчанию, которого можно использовать для администрирования Lemur.

Помимо создания нового пользователя, Lemur также создает несколько уведомлений по электронной почте по умолчанию. Эти уведомления основаны на нескольких параметрах конфигурации, таких как LEMUR_SECURITY_TEAM_EMAIL. По сути, они гарантируют, что каждый сертификат в Lemur отправит группе безопасности одно уведомление об истечении срока его действия.

Запишите используемый пароль, так как он будет использоваться при первом входе в пользовательский интерфейс Lemur.

cd /www/lemur/lemur 
lemur init

Следующий снимок показывает вывод команды \lemur init\.

Конфигурация веб-сервера NGINX для Lemur

По умолчанию Lemur работает на порту 8000. Даже если вы измените это, в нормальных условиях вы не сможете привязаться к порту 80. Чтобы обойти это (и избежать запуска Lemur в качестве привилегированного пользователя, чего вам не следует), нам нужно настроить простой веб-прокси. Для этого можно использовать множество различных веб-серверов, нам нравится и мы рекомендуем 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

Запуск веб-службы

Lemur предоставляет встроенный веб-сервер (на основе gunicorn и eventlet), чтобы вы могли быстро начать работу. Чтобы запустить веб-сервер, вы просто используете \запуск лемура\.

Вы можете войти в систему с пользователем по умолчанию, созданным во время инициализации Lemur, или с любым другим пользователем, которого вы могли создать. Теперь вы сможете протестировать веб-службу, посетив http://192.168.10.51:8000/. (192.168.10.51 — это IP-адрес машины Lemur).

Приборная панель лемура показана выше. Он используется для создания сертификатов с использованием самозаверяющих или корневых центров сертификации.

Заключение

В этом руководстве менеджер сертификатов Lemur устанавливается в последней версии Ubuntu LTS. Целью Lemur является создание сертификатов и управление ими. Он также поддерживает различные роли пользователей.