Este tutorial muestra la instalación del software de gestión de certificados Lemur en Ubuntu 16.04 LTS. Lemur es un proyecto de código abierto de NetFlix y se utiliza para generar certificados para clientes/clientes. En este artículo, configuraremos un entorno virtual basado en Python, instalaremos los paquetes necesarios, configuraremos el servicio web básico y accederemos al panel del administrador de certificados. Se supone que tiene una instancia limpia de Ubuntu 16.04 LTS ejecutándose, p. en la nube (como AWS) o en un entorno virtualizado local.
Dependencias
Algunos requisitos previos básicos que necesitará para ejecutar Lemur:
- Sistema operativo Linux (en este tutorial se usa Ubuntu 16.04 LTS).
- Python 3.5 o superior.
- PostgreSQL 9.4 o superior.
- Servidor web Nginx.
Instalación de dependencias de compilación
Cuando instale Lemur en un sistema operativo Ubuntu simple, deberá obtener los siguientes paquetes para que Lemur pueda construir correctamente sus dependencias:
.. bloque de código::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
El comando anterior instalará los paquetes de base de datos nodejs, pip, nginx, git, npm y PostgreSQL.
Nota:Instalación del nodo el administrador de paquetes puede crear el nodejs bin en la ruta /usr/bin/nodejs en lugar de /usr/bin/node. Ejecute el siguiente comando para crear un enlace suave en la ruta deseada.
sudo ln -s /user/bin/nodejs /usr/bin/node
Ahora, instala virtualenv paquete usando el siguiente comando.
sudo pip install -U virtualenv
Configurando el entorno de construcción
En esta guía, Lemur se instalará en /www directorio, por lo que primero debe crear ese directorio:
sudo mkdir /www
cd /www
Ahora, clona Lemur fuente más reciente dentro del directorio recién creado y dése permiso de escritura (lemur usuario es el creado en este tutorial):
sudo useradd lemur
sudo passwd lemur
sudo mkdir /home/lemur
sudo chown lemur:lemur /home/lemur
sudo git clon https://github.com/Netflix/lemur
sudo chown -R lemur lemur/
Además, crea el entorno virtual, actívalo y entra en el directorio de Lemur:
su lemur
virtualenv -p python3 lemur
source /www/lemur/bin/activate
cd lemur
Al activar el entorno se ajusta RUTA variable de entorno, por lo que cosas como pip ahora se instalan en virtualenv de forma predeterminada.
Instalando Lemur desde la fuente
Después de configurar el sistema, asegúrese de estar en virtualenv para ejecutar el comando "make release".
which python
Y ejecute el siguiente comando para instalar npm dependencias, así como compilar activos estáticos.
make release
Creando la configuración de Lemur
Antes de ejecutar Lemur, debemos crear un archivo de configuración válido para él. La interfaz de línea de comandos de Lemur viene con un comando simple para ponerlo en funcionamiento rápidamente. El siguiente comando creará una configuración predeterminada en "~/.lemur/lemur.conf.py " y esta ubicación se puede especificar pasando config_path parámetro a create_config comando.
lemur create_config
Actualizar la configuración de Lemur
Una vez creado, deberá actualizar el archivo de configuración con información sobre su entorno, como con qué base de datos hablar, dónde se almacenan las claves, etc.
vi ~/.lemur/lemur.conf.py
El SQLALCHEMY_DATABASE_URI cadena de Postgresql se puede dividir así:
"postgresql://userame:[email protected]
La siguiente captura de pantalla muestra que las siguientes variables requeridas se completan en el archivo de configuración:
LEMUR_SECURITY_TEAM_EMAIL
LEMUR_DEFAULT_COUNTRY
LEMUR_DEFAULT_STATE
LEMUR_DEFAULT_LOCATION
LEMUR_DEFAULT_ORGANIZATION
LEMUR_DEFAULT_ORGANIZATIONAL_UNIT
Configurar la base de datos de Postgres
Para producción, se recomienda una base de datos dedicada. Para esta guía, asumiré que se ha instalado Postgres y que está en la misma máquina en la que está instalado Lemur.
Primero, establezca una contraseña para el usuario de postgres. Para esta guía, usaremos lemur como ejemplo, pero debe usar la contraseña de la base de datos generada por Lemur:
sudo -u postgres -i
psql
postgres=# CREATE USER lemur WITH PASSWORD 'lemur';
Una vez que tenga éxito, presione CTRL-D para salir del shell de Postgres.
A continuación, crearemos nuestra nueva base de datos:
sudo -u postgres createdb lemur
Inicializando el administrador de certificados de Lemur
Lemur proporciona un comando útil que inicializará su base de datos por usted. Crea un usuario por defecto (lemur ) que utiliza Lemur para ayudar a asociar certificados que actualmente no tienen propietario. Este suele ser el caso cuando Lemur ha descubierto certificados de una fuente de terceros. Este también es un usuario predeterminado que se puede usar para administrar Lemur.
Además de crear un nuevo usuario, Lemur también crea algunas notificaciones de correo electrónico predeterminadas. Estas notificaciones se basan en algunas opciones de configuración, como LEMUR_SECURITY_TEAM_EMAIL . Básicamente garantizan que cada certificado dentro de Lemur enviará una notificación de caducidad al equipo de seguridad.
Tome nota de la contraseña utilizada, ya que se usará durante el primer inicio de sesión en la interfaz de usuario de Lemur.
cd /www/lemur/lemur
lemur init
La siguiente instantánea muestra el resultado del comando "lemur init".
Configuración del servidor web Nginx para Lemur
De forma predeterminada, Lemur se ejecuta en el puerto 8000. Incluso si cambia esto, en condiciones normales no podrá vincularse al puerto 80. Para evitar esto (y evitar ejecutar Lemur como un usuario privilegiado, que no debería ), necesitamos configurar un proxy web simple. Hay muchos servidores web diferentes que puede usar para esto, nos gusta y recomendamos Nginx.
Agregue las siguientes líneas en el archivo de configuración "/etc/nginx/sites-disponible/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;
}
Después de realizar estos cambios, reinicie el servicio Nginx para aplicarlos:
sudo service nginx restart
Iniciar el servicio web
Lemur proporciona un servidor web incorporado (impulsado por gunicorn y eventlet) para que pueda despegar rápidamente. Para iniciar el servidor web, simplemente use "lemur start ".
Puede iniciar sesión con el usuario predeterminado creado durante la inicialización de Lemur o cualquier otro usuario que haya creado. Ahora debería poder probar el servicio web visitando http://192.168.10.51:8000/ . (192.168.10.51 es la dirección IP de la máquina Lemur).
Arriba se muestra el panel de control del lémur. Se utiliza para crear certificados utilizando autoridades de certificación raíz o autofirmadas.
Conclusión
En este tutorial, el administrador de certificados Lemur está instalado en la última versión de Ubuntu LTS. El propósito de Lemur es crear y administrar certificados. También admite diferentes roles de usuarios.