Cài đặt Lemur Certificate Manager trên Ubuntu

theanh

Administrator
Nhân viên
Hướng dẫn này trình bày cách cài đặt phần mềm quản lý chứng chỉ Lemur trên Ubuntu 16.04 LTS. Lemur là một dự án mã nguồn mở của NetFlix và được sử dụng để tạo chứng chỉ cho khách hàng/khách hàng tiềm năng. Trong bài viết này, chúng tôi sẽ thiết lập một môi trường ảo dựa trên Python, cài đặt các gói cần thiết, cấu hình dịch vụ web cơ bản và truy cập bảng điều khiển của trình quản lý chứng chỉ. Giả sử bạn có một phiên bản Ubuntu 16.04 LTS sạch đang chạy, ví dụ: trên Đám mây (như AWS) hoặc môi trường ảo hóa cục bộ.

Phụ thuộc​

Một số điều kiện tiên quyết cơ bản mà bạn cần để chạy Lemur:
  • Hệ điều hành Linux (Ubuntu 16.04 LTS được sử dụng trong hướng dẫn này).
  • Python 3.5 trở lên.
  • PostgreSQL 9.4 trở lên.
  • Máy chủ web Nginx.

Cài đặt phụ thuộc xây dựng​

Khi bạn cài đặt Lemur trên hệ điều hành Ubuntu đơn thuần, bạn sẽ cần lấy các gói sau để Lemur có thể xây dựng chính xác các phụ thuộc của nó:

.. code-block:: bash
Mã:
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


Lệnh trên sẽ cài đặt nodejs, pip, nginx, git, npm và các gói cơ sở dữ liệu PostgreSQL.

Lưu ý: Việc cài đặt trình quản lý góinode có thể tạo bin nodejs tại đường dẫn /usr/bin/nodejs thay vì /usr/bin/node. Chạy lệnh sau để tạo liên kết mềm tại đường dẫn mong muốn.
Mã:
sudo ln -s /user/bin/nodejs /usr/bin/node
Bây giờ, hãy cài đặt gói virtualenv bằng lệnh sau.
Mã:
sudo pip install -U virtualenv

Thiết lập môi trường dựng​

Trong hướng dẫn này, Lemur sẽ được cài đặt trong thư mục /www, vì vậy trước tiên bạn cần tạo thư mục đó:
Mã:
sudo mkdir /www
cd /www


Bây giờ, hãy sao chép Lemurnguồn mới nhất bên trong thư mục vừa tạo và cấp cho mình quyền ghi (lemuruseris the đã tạo trong hướng dẫn này):
Mã:
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/



Ngoài ra, hãy tạo môi trường ảo, kích hoạt nó và vào thư mục của Lemur:
Mã:
su lemur
virtualenv -p python3 lemur

Mã:
source /www/lemur/bin/activate
cd lemur


Kích hoạt môi trường điều chỉnh biến môi trường PATH, để các thứ như pip hiện cài đặt vào virtualenv theo mặc định.

Cài đặt Lemur từ Nguồn​

Sau khi thiết lập hệ thống, hãy đảm bảo rằng bạn đang ở trong virtualenv để chạy lệnh "make release".
Mã:
which python


Và chạy lệnh sau để cài đặt các phụ thuộc npm cũng như biên dịch các tài sản tĩnh.
Mã:
make release

Tạo cấu hình Lemur​

Trước khi chạy Lemur, chúng ta phải tạo một tệp cấu hình hợp lệ cho nó. Giao diện dòng lệnh Lemur đi kèm với một lệnh đơn giản để giúp bạn bắt đầu và chạy nhanh chóng. Lệnh sau sẽ tạo cấu hình mặc định trong "~/.lemur/lemur.conf.py" và vị trí này có thể được chỉ định bằng cách truyền tham số config_path cho lệnh create_config.
Mã:
lemur create_config

Cập nhật cấu hình Lemur​

Sau khi tạo, bạn sẽ cần cập nhật tệp cấu hình bằng thông tin về môi trường của mình, chẳng hạn như cơ sở dữ liệu nào để giao tiếp, nơi lưu trữ khóa, v.v.
Mã:
vi ~/.lemur/lemur.conf.py
Chuỗi SQLALCHEMY_DATABASE_URI của Postgresql có thể được chia nhỏ như sau cái này:
"postgresql://userame:password@<database-fqdn>:<database-port>/<database-name>"

Ảnh chụp màn hình bên dưới cho thấy các biến bắt buộc sau được điền vào tệp cấu hình:
Mã:
LEMUR_SECURITY_TEAM_EMAIL
Mã:
LEMUR_DEFAULT_COUNTRY
LEMUR_DEFAULT_STATE
LEMUR_DEFAULT_LOCATION
LEMUR_DEFAULT_ORGANIZATION
LEMUR_DEFAULT_ORGANIZATIONAL_UNIT

Thiết lập cơ sở dữ liệu Postgres​

Đối với sản xuất, nên sử dụng cơ sở dữ liệu chuyên dụng. Đối với hướng dẫn này, tôi sẽ giả định rằng postgres đã được cài đặt và nằm trên cùng một máy mà Lemur được cài đặt.

Đầu tiên, hãy đặt mật khẩu cho người dùng postgres. Trong hướng dẫn này, chúng tôi sẽ sử dụng lemur làm ví dụ nhưng bạn nên sử dụng mật khẩu cơ sở dữ liệu do Lemur tạo ra:
Mã:
sudo -u postgres -i

Mã:
psql
postgres=# CREATE USER lemur WITH PASSWORD 'lemur';


Sau khi thành công, hãy gõ CTRL-D để thoát khỏi shell Postgres.

Tiếp theo, chúng ta sẽ tạo cơ sở dữ liệu mới:
Mã:
sudo -u postgres createdb lemur

Initializing Lemur Certificate Manager​

Lemur cung cấp một lệnh hữu ích sẽ khởi tạo cơ sở dữ liệu cho bạn. Nó tạo ra một người dùng mặc định (lemur) được Lemur sử dụng để giúp liên kết các chứng chỉ hiện không có chủ sở hữu. Trường hợp này thường xảy ra nhất khi Lemur phát hiện ra các chứng chỉ từ nguồn của bên thứ ba. Đây cũng là một người dùng mặc định có thể được sử dụng để quản lý Lemur.

Ngoài việc tạo một người dùng mới, Lemur cũng tạo một số thông báo email mặc định. Các thông báo này dựa trên một số tùy chọn cấu hình như LEMUR_SECURITY_TEAM_EMAIL. Về cơ bản, họ đảm bảo rằng mọi chứng chỉ trong Lemur sẽ gửi một thông báo hết hạn đến nhóm bảo mật.

Ghi lại mật khẩu đã sử dụng vì mật khẩu này sẽ được sử dụng khi đăng nhập lần đầu vào Giao diện người dùng Lemur.
Mã:
cd /www/lemur/lemur
Mã:
lemur init


Ảnh chụp nhanh sau đây hiển thị đầu ra của lệnh "lemur init".


Cấu hình máy chủ web NGINX cho Lemur​

Theo mặc định, Lemur chạy trên cổng 8000. Ngay cả khi bạn thay đổi điều này, trong điều kiện bình thường, bạn sẽ không thể liên kết với cổng 80. Để khắc phục điều này (và để tránh chạy Lemur với tư cách là người dùng có đặc quyền, điều mà bạn không nên làm), chúng tôi cần thiết lập một proxy web đơn giản. Có nhiều máy chủ web khác nhau mà bạn có thể sử dụng cho mục đích này, chúng tôi thích và đề xuất Nginx.

Thêm các dòng sau vào tệp cấu hình "/etc/nginx/sites-available/default".
Mã:
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;
 }
Mã:
location / {
 root /www/lemur/lemur/static/dist;
 include mime.types;
 index index.html;
 }


Sau khi thực hiện những thay đổi này, hãy khởi động lại dịch vụ Nginx để áp dụng chúng:
Mã:
sudo service nginx restart

Khởi động Dịch vụ Web​

Lemur cung cấp một máy chủ web tích hợp (được hỗ trợ bởi gunicorn và eventlet) để giúp bạn khởi động nhanh chóng. Để khởi động máy chủ web, bạn chỉ cần sử dụng "lemur start".



Bạn có thể đăng nhập bằng người dùng mặc định được tạo trong quá trình Khởi tạo Lemur hoặc bất kỳ người dùng nào khác mà bạn có thể đã tạo. Bây giờ, bạn có thể kiểm tra dịch vụ web bằng cách truy cập . (192.168.10.51 là địa chỉ IP của máy Lemur).



Bảng điều khiển của Lemur được hiển thị ở trên. Bảng điều khiển này được sử dụng để tạo chứng chỉ bằng cách sử dụng Cơ quan cấp chứng chỉ gốc hoặc tự ký.

Kết luận​

Trong hướng dẫn này, trình quản lý chứng chỉ Lemur được cài đặt trên phiên bản Ubuntu LTS mới nhất. Mục đích của Lemur là tạo và quản lý chứng chỉ. Nó cũng hỗ trợ các vai trò khác nhau của người dùng.
 
Back
Bên trên