웹사이트 검색

Rocky Linux에 Passbolt Password Manager를 설치하는 방법


이 페이지에서

  1. 전제 조건
  2. 패키지 종속성 설치
  3. MariaDB 및 PHP-FPM 구성
  4. Passbolt용 새 데이터베이스 만들기
  5. Passbolt 다운로드 및 PHP 종속성 설치
  6. 서버용 GPG 키 생성
  7. Passbolt 및 Nginx 서버 블록 구성
  8. 웹 브라우저에서 Passbolt 액세스
  9. 결론

Passbolt는 PHP, MySQL 및 OpenPGP를 기반으로 하는 무료 오픈 소스 암호 관리자입니다. 자체 호스팅 애플리케이션 서버이므로 서버에 설치할 수 있습니다. Passbolt는 주로 팀용으로 설계되었지만 개인 비밀번호 관리자로도 사용할 수 있습니다.

Passbolt는 OpenPGP를 기반으로 하며 확장 가능한 API를 가지고 있습니다. 클라이언트 측에서는 암호화 기능을 위해 OpenPGP.js를 기반으로 하는 Passbolt 브라우저 확장을 사용할 수 있습니다. 서버 측에서 Passbolt는 GnuPG PHP 확장 및 openpgp-php를 사용하여 키 유효성 검사 및 사용자 인증을 수행합니다. Passbolt는 사용자 인증을 위해 GPGAuth 프로토콜을 사용합니다.

전제 조건

이 기사에서는 Rocky Linux 서버에 Passbolt 자체 호스팅 비밀번호 관리자를 설치하는 방법을 배웁니다. PHP 7.4, MariaDB 서버 및 Nginx 웹 서버와 함께 Passbolt를 설치하게 됩니다.

이 예에서는 다음 서버 세부 정보를 사용합니다.

  • 운영 체제: Rocky Linux 8.4(녹색 흑요석)\n
  • IP 주소: 192.168.1.10
  • 도메인 이름, 이 예에서는 https://pass.example.io를 사용하겠습니다.\n

이제 Passbolt 설치를 시작하겠습니다.

패키지 종속성 설치

먼저 Rocky Linux 시스템에 새 리포지토리를 추가하고 일부 패키지 종속성을 설치합니다.

1. 다음 명령을 실행하여 PowerTools 리포지토리를 활성화하고 EPEL(Extra Packages for Enterprise Linux) 리포지토리를 설치합니다.

sudo dnf config-manager --set-enabled powertools
sudo dnf install epel-release -y

2. 다음 명령을 실행하여 PHP 7.4 리포지토리를 활성화합니다.

sudo dnf module enable php:7.4 -y

3. 다음으로 아래의 DNF 명령을 사용하여 PHP-FPM, MariaDB, Nginx 및 일부 추가 패키지를 설치합니다.

sudo dnf install -y nginx mariadb-server mariadb php php-intl php-gd php-mysqlnd php-pear php-devel php-mbstring php-fpm php-json php-ldap gcc gpgme gpgme-devel git policycoreutils-python-utils unzip haveged make gcc

4. 모든 설치가 완료되면 다음 명령을 실행하여 PHP Composer 설치 스크립트를 다운로드합니다.

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '906a84df04cea2aa72f40b5f787e49f22d4c2f19492ac310e8cba5b96ac8b64115ac402c8cd292b8a03482574915d1a8') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

이제 다음 명령을 다시 실행하여 시스템 전체 환경에 PHP Composer를 설치하십시오.

php composer-setup.php
sudo mv composer.phar /usr/bin/composer

아래와 같이 PHP 작성기 명령을 확인하십시오.

sudo -u nginx composer --version

아래와 비슷한 출력을 얻을 수 있습니다.

Composer version 2.1.12 2021-11-09 16:02:04

5. 다음으로 PECL(PHP Extension Community Library) 리포지토리에서 GnuPG PHP Extensions를 설치합니다.

pecl install gnupg

그런 다음 다음 명령을 사용하여 GnuPG PHP Extension을 활성화합니다.

echo "extension=gnupg.so" > /etc/php.d/gnupg.ini

6. 이제 아래의 systemctl 명령을 사용하여 일부 서비스를 시작하고 활성화합니다.

sudo systemctl enable --now nginx
sudo systemctl enable --now mariadb
sudo systemctl enable --now php-fpm
sudo systemctl enable --now haveged

이제 Passbolt용 패키지 종속성 설치를 완료했습니다.

MariaDB 및 PHP-FPM 구성

이 단계에서는 MariaDB 루트 비밀번호와 PHP-FPM 서비스를 설정합니다.

1. 다음 명령을 실행하여 MariaDB 루트 암호를 설정합니다.

mysql_secure_installation

MariaDB 루트 사용자에 대한 강력한 새 암호를 입력하고 반복한 다음 Y를 입력하여 모든 MariaDB 구성에 동의합니다.

2. 다음으로 nano 편집기를 사용하여 /etc/php.ini 구성 파일을 편집합니다.

nano /etc/php.ini

date.timezone 옵션의 주석을 제거하고 서버 시간대로 값을 변경하십시오.

date.timezone = Europe/Paris

구성을 저장하고 종료합니다.

3. nano 편집기를 사용하여 PHP-FPM 구성 /etc/php-fpm.d/www.conf을 편집합니다.

nano /etc/php-fpm.d/www.conf

PHP-FPM의 기본 사용자 및 그룹을 nginx로 변경합니다.

user = nginx
group = nginx

listen.ownerlisten.group의 주석을 제거하고 값을 사용자 nginx로 변경합니다.

listen.owner = nginx
listen.group = nginx

구성을 저장하고 종료합니다.

이제 아래의 systemctl 명령을 사용하여 PHP-FPM 서비스를 다시 시작하여 새로운 PHP-FPM 구성을 적용합니다.

sudo systemctl restart php-fpm

그리고 PHP-FPM의 기본 구성을 완료하고 MariaDB 루트 사용자를 위한 새 암호를 생성했습니다.

Passbolt용 새 데이터베이스 생성

Passbolt 설치를 위한 새 데이터베이스를 생성하려면 아래의 mysql 명령을 사용하여 MariaDB 셸에 로그인합니다.

mysql -u root -p

1. 다음 쿼리를 사용하여 새 데이터베이스 passdb를 생성합니다.

CREATE DATABASE passdb;

2. 데이터베이스 passdb에 대한 모든 권한을 새 사용자에게 부여합니다. 다음 쿼리는 새 MariaDB 사용자 passbolt를 자동으로 생성합니다.

GRANT ALL ON passdb.* to  IDENTIFIED BY 'PassboltdbPass';

3. 모든 테이블 권한을 다시 로드합니다.

FLUSH PRIVILEGES;

이제 EXIT을 입력하고 Enter를 눌러 MariaDB 셸에서 로그아웃합니다.

Passbolt 설치를 시작하려면 다음 단계로 이동하십시오.

Passbolt 다운로드 및 PHP 종속성 설치

이 단계에서는 Passbolt 소스 코드를 서버에 다운로드하고 PHP 작성기를 사용하여 PHP 종속성을 설치합니다.

1. 현재 작업 디렉토리를 /var/www로 변경하고 아래와 같은 명령을 사용하여 Passbolt 소스를 복제합니다.

cd /var/www/
git clone https://github.com/passbolt/passbolt_api.git passbolt

패스볼트 설치는 /var/www/passbolt

2. Passbolt 설치 디렉토리의 소유권을 사용자 nginx로 변경합니다.

sudo chown -R nginx:nginx /var/www/passbolt

3. Passbolt 설치 디렉터리로 이동하고 PHP 작성기 명령을 사용하여 PHP 종속성을 설치합니다. 그리고 사용자 nginx로 PHP 작성기 명령을 실행해야 합니다.

cd /var/www/passbolt
sudo -u nginx composer install --no-dev

모든 PHP 종속성 설치가 완료되면 다음 단계로 이동하여 GPG 키를 생성합니다.

서버용 GPG 키 생성

이 단계에서는 Passbolt 서버용 새 GPG 키를 생성합니다.

현재 PHP 확장 프로그램인 openpgp-php 및 GnuPG PHP는 여전히 암호를 지원하지 않으므로 암호 없이 새 GPG 키를 생성하게 됩니다.

1. GPG 키를 생성하려면 아래의 gpg 명령을 실행합니다.

gpg --gen-key

이름과 이메일 주소를 입력하고 암호는 사용하지 마십시오.

gpg (GnuPG) 2.2.20; Copyright (C) 2020 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Note: Use "gpg --full-generate-key" for a full featured key generation dialog.

GnuPG needs to construct a user ID to identify your key.

Real name: johndoe
Email address: >
sub   rsa2048 2021-11-16 [E] [expires: 2023-11-16]

또한 새 키의 지문을 기록해 두십시오. 이 예에서 키의 지문은 BCD52DF829FF8F9408A2F1B214F31ED1FBEBAD9A입니다.

2. 다음으로 GPG 키를 passbolt 설치 디렉터리 /var/www/passbolt/config/gpg/로 내보냅니다.

gpg --armor --export-secret-keys  > /var/www/passbolt/config/gpg/serverkey.asc

이 시점에서 아래와 같이 GPG 키 정보에 대해 메모해야 합니다.

  • 지문: BCD52DF829FF8F9408A2F1B214F31ED1FBEBAD9A
  • 이메일: [이메일 보호됨]\n
  • 공개 키: serverkey.asc
  • 비공개 키: serverkey_private.asc

3. 다음으로 다음 명령을 사용하여 사용자 nginx에 대한 GNUPG 디렉토리를 생성해야 합니다.

sudo su -s /bin/bash -c "gpg --list-keys" nginx

아래와 비슷한 출력이 표시됩니다.

gpg: directory '/var/lib/nginx/.gnupg' created
gpg: keybox '/var/lib/nginx/.gnupg/pubring.kbx' created
gpg: /var/lib/nginx/.gnupg/trustdb.gpg: trustdb created

이제 Passbolt에 대한 GPG 키 구성을 완료했습니다. Passbolt 구성의 다음 단계로 이동합니다.

Passbolt 및 Nginx 서버 블록 구성

이 단계에서는 Passbolt 설치 도메인 이름, 데이터베이스 및 GPG 키를 구성합니다.

시작하기 전에 작업 디렉토리를 /var/www/passbolt 디렉토리로 변경하십시오.

export PASSBOLT=/var/www/passbolt/
cd $PASSBOLT

1. 기본 구성을 passbolt.php에 복사한 다음 nano 편집기를 사용하여 편집합니다.

cp config/passbolt.default.php config/passbolt.php
nano config/passbolt.php

Passbolt 도메인 이름 설치로 fullBaseUrl 옵션을 변경하십시오. 이 예의 경우 https://pass.example.io입니다.

    'App' => [
        // comment

        'fullBaseUrl' => 'https://pass.example.io',
        
        // comment..
    ],

아래의 MariaDB 사용자 및 비밀번호로 데이터베이스 구성을 변경하십시오.

    // Database configuration.
    'Datasources' => [
        'default' => [
            'host' => 'localhost',
            //'port' => 'non_standard_port_number',
            'username' => 'passbolt',
            'password' => 'PassboltdbPass',
            'database' => 'passdb',
        ],
    ],

GPG 지문을 복사하여 붙여넣고 공개 및 비공개 옵션의 주석을 제거하십시오.

        'gpg' => [
            //
            // COMMENT REMOVED
            //
            'serverKey' => [
                // Server private key fingerprint.
                'fingerprint' => '38E3736DD02860F8CBA57BB99C8B82A2C3A6959F',
                'public' => CONFIG . 'gpg' . DS . 'serverkey.asc',
                'private' => CONFIG . 'gpg' . DS . 'serverkey_private.asc',
            ],

구성을 저장하고 종료합니다.

2. 다음으로 nano 편집기를 사용하여 새 Nginx 서버 블록 구성 /etc/nginx/conf.d/passbolt.conf을 만듭니다.

nano /etc/nginx/conf.d/passbolt.conf

다음 구성을 복사하여 붙여넣고 SSL 인증서의 도메인 이름과 경로를 변경했는지 확인합니다.

server {
    listen 80;

    server_name pass.example.io;

    return 302 https://$server_name$request_uri;
}

server {
  listen 443 ssl http2;

  server_name pass.example.io;
  root /var/www/passbolt;

  ssl_certificate /etc/letsencrypt/live/pass.example.io/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/pass.example.io/privkey.pem;

  ssl_protocols TLSv1.2;
  ssl_prefer_server_ciphers on;
  ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384;
  ssl_ecdh_curve secp384r1; # Requires nginx >= 1.1.0
  ssl_session_timeout  10m;
  ssl_session_cache shared:SSL:10m;
  ssl_session_tickets off; # Requires nginx >= 1.5.9
  # ssl_stapling on; # Requires nginx >= 1.3.7
  # ssl_stapling_verify on; # Requires nginx => 1.3.7
  resolver 8.8.8.8 8.8.4.4 valid=300s;
  resolver_timeout 5s;
  add_header X-Frame-Options DENY;
  add_header X-Content-Type-Options nosniff;
  add_header X-XSS-Protection "1; mode=block";
 
  location / {
    try_files $uri $uri/ /index.php?$args;
    index index.php;
  }
 
  location ~ \.php$ {
    fastcgi_index           index.php;
    fastcgi_pass            unix:/var/run/php-fpm/www.sock;
    fastcgi_split_path_info ^(.+\.php)(.+)$;
    include                 fastcgi_params;
    fastcgi_param           SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param           SERVER_NAME $http_host;
  }
       
  location ~* \.(jpe?g|woff|woff2|ttf|gif|png|bmp|ico|css|js|json|pdf|zip|htm|html|docx?|xlsx?|pptx?|txt|wav|swf|svg|avi|mp\d)$ {
    access_log off;
    log_not_found off;
    try_files $uri /webroot/$uri /index.php?$args;
  }
}

구성을 저장하고 종료합니다.

이제 Nginx 구성을 확인하고 오류가 없는지 확인한 다음 Nginx 서비스를 다시 시작하십시오.

nginx -t
sudo systemctl restart nginx

3. 다음으로 작업 디렉토리를 /var/www/passbolt로 변경하고 아래와 같은 명령을 사용하여 Passbolt 설치를 시작합니다.

cd /var/www/passbolt
sudo su -s /bin/bash -c "./bin/cake passbolt install" nginx

Passbolt 설치 프로세스가 끝나면 Passbolt에 대한 새 관리자를 생성하게 됩니다.

이메일 주소, 이름 및 성을 입력합니다. 그런 다음 Passbolt 설치 링크를 복사합니다.

웹 브라우저에서 Passbolt에 액세스

웹 브라우저를 열고 Passbolt 설치 프로그램이 생성한 Passbolt 설치 링크를 주소 표시줄에 붙여넣습니다.

1. Passbolt는 웹 브라우저를 자동으로 감지하고 Passbolt 브라우저 확장 프로그램의 설치 링크를 표시합니다.

확장 프로그램 다운로드 버튼을 클릭하고 Passbolt 브라우저 확장 프로그램을 설치합니다.

2. 새로운 강력한 암호를 입력하고 다음 버튼을 클릭합니다.

3. 로컬 컴퓨터에 복구 키트를 다운로드하고 다음 버튼을 클릭합니다. 복구 키트를 사용하여 Passbolt 암호를 재설정할 수 있습니다.

4. Passbolt 보안 토큰의 색상을 선택하고 이 세 글자를 기억하십시오. 다음 버튼을 다시 클릭하십시오.

5. 이제 아래와 같이 Passbolt 사용자 대시보드로 리디렉션됩니다.

6. Passbolt 목록 사용자.

그리고 Passbolt 암호 관리자 설치를 완료했습니다.

결론

축하합니다! Rocky Linux에서 PHP-FPM, MariaDB 서버 및 Nginx 웹 서버와 함께 Passbolt 암호 관리자를 성공적으로 설치했습니다.

다음 단계에서는 팀을 위한 새로운 패스볼트 사용자를 생성할 수 있습니다.