비밀번호 관리자 · 11 min read · Jan 12, 2026
Ubuntu 20.04에 Passbolt 팀 비밀번호 관리자 설치 및 구성

Passbolt는 라우터, 웹사이트, Wi-Fi 등의 로그인 자격 증명을 안전하게 공유하고 저장하는 데 도움을 주는 무료, 오픈 소스, 자체 호스팅 및 확장 가능한 비밀번호 관리자입니다. 다른 비밀번호 관리자와는 다르게 개인보다는 팀 사용에 중점을 두고 있습니다. 커뮤니티 및 유료 버전 모두에서 사용할 수 있습니다. 아래에 나열된 몇 가지 기능이 있습니다:
- Firefox 및 Google Chrome 확장 프로그램 제공.
- OpenPGP를 사용하여 비밀번호 암호화.
- 간단하고 사용자 친화적인 웹 인터페이스.
- 비밀번호 가져오기 및 내보내기 허용.
- 로그인 자격 증명을 수동으로 추가할 수 있습니다.
이 튜토리얼에서는 Ubuntu 20.04에서 Apache 및 Let’s Encrypt와 함께 Passbolt 비밀번호 관리자를 설치하는 방법을 설명합니다.
전제 조건
- Ubuntu 20.04가 실행되는 서버.
- 서버 IP에 포인팅된 유효한 도메인 이름.
- 서버에 구성된 루트 비밀번호.
LAMP 서버 설치
먼저 시스템에 Apache 및 MariaDB 서버를 설치해야 합니다. 다음 명령어로 설치할 수 있습니다:
apt-get install apache2 mariadb-server -y위의 패키지를 설치한 후, 시스템에 PHP 및 기타 필수 패키지를 설치해야 합니다.
기본적으로 Ubuntu 20.04는 기본 저장소에 PHP7.4가 포함되어 있습니다. 그러나 Passbolt는 PHP7.4를 지원하지 않습니다. 따라서 시스템에 PHP 저장소를 추가해야 합니다.
먼저, 다음 명령어로 필수 패키지를 설치합니다:
apt-get install software-properties-common gnupg -y다음으로, 다음 명령어로 PHP 저장소를 추가합니다:
add-apt-repository ppa:ondrej/php --yes다음으로, 다음 명령어로 Composer와 기타 필수 확장 프로그램과 함께 PHP 7.3 버전을 설치합니다:
apt-get install php7.3 php7.3-mysql libapache2-mod-php7.3 php7.3-intl php7.3-mbstring php7.3-gd php7.3-imagick php7.3-xml php7.3-common php7.3-curl php7.3-json php7.3-ldap php7.3-gnupg zlib1g unzip git composer curl -y모든 패키지가 설치되면 다음 단계로 진행할 수 있습니다.
MariaDB 데이터베이스 구성
먼저 MariaDB 설치를 보안하고 MariaDB 루트 비밀번호를 설정해야 합니다. 다음 명령어로 할 수 있습니다:
mysql_secure_installation이 스크립트는 MariaDB 루트 비밀번호를 설정하고, 익명 사용자를 제거하며, 원격에서 루트 로그인을 금지하고, 테스트 데이터베이스 및 그에 대한 접근을 제거합니다. 아래와 같이 진행됩니다:
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Set root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
MariaDB 보안이 완료되면 다음 명령어로 MariaDB 셸에 로그인합니다:
mysql -u root -p프롬프트에서 루트 비밀번호를 입력한 후, 다음 명령어로 Passbolt용 데이터베이스와 사용자를 생성합니다:
MariaDB [(none)]> CREATE DATABASE passboltdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
MariaDB [(none)]> GRANT ALL on passboltdb.* to passbolt@localhost identified by 'password';다음으로, 권한을 플러시하고 다음 명령어로 MariaDB에서 종료합니다:
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;작업이 완료되면 다음 단계로 진행할 수 있습니다.
Passbolt 다운로드 및 구성
이 섹션에서는 Passbolt를 다운로드하고 구성하는 방법을 배웁니다:
Passbolt 다운로드
먼저, 다음 명령어로 Passbolt의 최신 버전을 Apache 웹 루트 디렉토리에 다운로드합니다:
mkdir /var/www/passbolt
git clone https://github.com/passbolt/passbolt_api.git /var/www/passbolt다운로드가 완료되면, 다음 명령어로 passbolt의 소유권을 www-data로 변경합니다:
chown -R www-data:www-data /var/www/다음으로, passbolt 디렉토리로 변경하고 다음 명령어로 필수 종속성을 설치합니다:
cd /var/www/passbolt
sudo -u www-data composer install --no-dev다음과 같은 출력을 받아야 합니다:
> Cake\Composer\Installer\PluginInstaller::postAutoloadDump
9 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
thadafinser/package-info: Generating class...
thadafinser/package-info: ...generating class
> App\Console\Installer::postInstall
Created `config/app.php` file
Created `/var/www/passbolt/logs` directory
Created `/var/www/passbolt/tmp/cache/models` directory
Created `/var/www/passbolt/tmp/cache/persistent` directory
Created `/var/www/passbolt/tmp/cache/views` directory
Created `/var/www/passbolt/tmp/sessions` directory
Created `/var/www/passbolt/tmp/tests` directory
Set Folder Permissions ? (Default to Y) [Y,n]? Y
Y를 입력하고 Enter를 눌러 폴더 권한을 설정합니다.
OpenPGP 키 생성
다음으로, JSON 요청을 인증하고 서명하기 위해 OpenPGP 키를 생성해야 합니다. 다음 명령어로 생성할 수 있습니다:
cd /var/www/passbolt
gpg --full-generate-key과정 중에 비밀번호를 입력하라는 메시지가 표시되면, 단순히 Tab 키를 눌러 OK를 선택하고 설정하지 않겠다고 확인합니다. php-gnupg 모듈이 현재 비밀번호 사용을 지원하지 않기 때문입니다.
gpg (GnuPG) 2.2.19; Copyright (C) 2019 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.
gpg: directory '/root/.gnupg' created
gpg: keybox '/root/.gnupg/pubring.kbx' created
Please select what kind of key you want:
(1) RSA and RSA (default)
(2) DSA and Elgamal
(3) DSA (sign only)
(4) RSA (sign only)
(14) Existing key from card
Your selection? 1
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (3072) 4096
Requested keysize is 4096 bits
Please specify how long the key should be valid.
0 = key does not expire
= key expires in n days
w = key expires in n weeks
m = key expires in n months
y = key expires in n years
Key is valid for? (0) 0
Key does not expire at all
Is this correct? (y/N) y
GnuPG needs to construct a user ID to identify your key.
Real name: Hitesh
Email address: [email protected]
Comment: Hi
You selected this USER-ID:
"Hitesh (Hi) <[email protected]>"
Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
gpg: /root/.gnupg/trustdb.gpg: trustdb created
gpg: key 2DA8E7FB8E23B2FD marked as ultimately trusted
gpg: directory '/root/.gnupg/openpgp-revocs.d' created
gpg: revocation certificate stored as '/root/.gnupg/openpgp-revocs.d/9622291A72D99A4EC78ABCB92DA8E7FB8E23B2FD.rev'
public and secret key created and signed.
pub rsa4096 2020-07-25 [SC]
D2394A45B7CBBAB7F00CC79B23D4750486780854
uid Hitesh (Hi) <[email protected]>
sub rsa4096 2020-07-25 [E]
위의 공개 키 지문을 기억해 두세요. 나중에 설정하는 데 필요합니다.
다음으로, 다음 명령어로 공개 및 개인 키를 ‘/var/www/passbolt’ 디렉토리로 내보냅니다:
gpg --armor --export-secret-keys [email protected] > /var/www/passbolt/config/gpg/serverkey_private.asc
gpg --armor --export [email protected] > /var/www/passbolt/config/gpg/serverkey.asc다음으로, Apache 사용자에 대한 gpg 키의 키링을 초기화해야 합니다. 다음 명령어로 할 수 있습니다:
sudo su -s /bin/bash -c "gpg --list-keys" www-data다음과 같은 출력을 받아야 합니다:
gpg: directory '/var/www/.gnupg' created
gpg: keybox '/var/www/.gnupg/pubring.kbx' created
gpg: /var/www/.gnupg/trustdb.gpg: trustdb created
Passbolt 구성
먼저, 다음 명령어로 샘플 Passbolt 구성 파일을 복사합니다:
cp /var/www/passbolt/config/passbolt{.default,}.php다음으로, 다음 명령어로 Passbolt 구성 파일을 편집합니다:
nano /var/www/passbolt/config/passbolt.php아래와 같이 fullbaseurl, 데이터베이스 및 공개 키 지문을 정의합니다:
'fullBaseUrl' => 'https://passbolt.linuxbuz.com',
// 데이터베이스 구성.
'Datasources' => [
'default' => [
'host' => 'localhost',
//'port' => 'non_standard_port_number',
'username' => 'passbolt',
'password' => 'password',
'database' => 'passboltdb',
'serverKey' => [
// 서버 개인 키 지문.
'fingerprint' => 'D2394A45B7CBBAB7F00CC79B23D4750486780854',
'public' => CONFIG . 'gpg' . DS . 'serverkey.asc',
'private' => CONFIG . 'gpg' . DS . 'serverkey_private.asc',
작업이 완료되면 파일을 저장하고 닫습니다.
공개 키 지문을 기억하지 못하는 경우, 다음 명령어로 가져올 수 있습니다:
gpg --list-keys --fingerprint | grep -i -B 2 [email protected]다음과 같은 출력을 받아야 합니다:
gpg: checking the trustdb
gpg: marginals needed: 3 completes needed: 1 trust model: pgp
gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u
pub rsa4096 2020-07-25 [SC]
D239 4A45 B7CB BAB7 F00C C79B 23D4 7504 8678 0854
uid [ultimate] Hitesh (Hi) <[email protected]>
Passbolt용 Apache 구성
다음으로, Passbolt에 대한 Apache 가상 호스트 구성 파일을 생성해야 합니다. 다음 명령어로 생성할 수 있습니다:
nano /etc/apache2/sites-available/passbolt.conf다음 줄을 추가합니다:
ServerName passbolt.linuxbuz.com
DocumentRoot /var/www/passbolt
ErrorLog ${APACHE_LOG_DIR}/passbolt_error.log
CustomLog ${APACHE_LOG_DIR}/passbolt_access.log combined
Options FollowSymLinks MultiViews
AllowOverride All
Require all granted
파일을 저장하고 닫은 후, 다음 명령어로 가상 호스트 파일을 활성화하고 Apache 서비스를 재시작합니다:
a2ensite passbolt
systemctl restart apache2작업이 완료되면 다음 단계로 진행할 수 있습니다.
Let’s Encrypt로 Passbolt 보안
Let’s Encrypt SSL로 웹사이트를 보안하기 위해, 시스템에 SSL 인증서를 관리하기 위한 Certbot 클라이언트 유틸리티를 설치해야 합니다.
다음 명령어로 설치할 수 있습니다:
apt-get install python3-certbot-apache -y설치가 완료되면, 다음 명령어로 Let’s Encrypt SSL로 웹사이트를 보안합니다:
certbot --apache -d passbolt.linuxbuz.com이메일을 제공하고 서비스 약관에 동의하라는 메시지가 표시됩니다:
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator standalone, Installer None
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Plugins selected: Authenticator apache, Installer apache
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for passbolt.linuxbuz.com
Enabled Apache rewrite module
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-available/passbolt-le-ssl.conf
Enabled Apache socache_shmcb module
Enabled Apache ssl module
Deploying Certificate to VirtualHost /etc/apache2/sites-available/passbolt-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/passbolt-le-ssl.conf
다음으로, HTTP 트래픽을 HTTPS로 리디렉션할지 여부를 선택합니다:
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
2를 입력하고 Enter를 눌러 웹사이트에 Let’s Encrypt SSL을 설치합니다:
Enabled Apache rewrite module
Redirecting vhost in /etc/apache2/sites-enabled/passbolt.conf to ssl vhost in /etc/apache2/sites-available/passbolt-le-ssl.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://passbolt.linuxbuz.com
You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=passbolt.linuxbuz.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/passbolt.linuxbuz.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/passbolt.linuxbuz.com/privkey.pem
Your cert will expire on 2020-10-23. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option. To non-interactively renew *all* of
your certificates, run "certbot renew"
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
이 시점에서 웹사이트는 Let’s Encrypt SSL로 보안되었습니다.
Passbolt 설치
다음으로, Passbolt 설치 스크립트를 실행하여 Passbolt를 설치할 수 있습니다.
먼저, 디렉토리를 /var/www/passbolt로 변경합니다:
cd /var/www/passbolt다음으로, 다음 명령어로 Passbolt 설치 스크립트를 실행합니다:
sudo su -s /bin/bash -c "./bin/cake passbolt install --no-admin" www-data설치가 성공적으로 완료되면 다음과 같은 출력을 받아야 합니다:
All Done. Took 1.6533s
Import the server private key in the keyring
---------------------------------------------------------------
Importing /var/www/passbolt/config/gpg/serverkey_private.asc
Keyring init OK
Passbolt installation success! Enjoy! ?
다음으로, 브라우저에서 Passbolt 설정을 마무리해야 합니다. 웹 브라우저를 열고 URL https://passbolt.linuxbuz.com을 방문합니다. 다음 화면이 표시되어야 합니다:

여기에서 브라우저용 플러그인을 다운로드하고 설치해야 합니다. Download the plugin을 클릭하여 Passbolt 플러그인을 다운로드하고 설치합니다. 설치가 완료되면 다음 단계로 진행할 수 있습니다.
Passbolt 웹 인터페이스 접근
시작하기 전에 관리 사용자를 생성하고 Passbolt의 비밀번호를 설정해야 합니다. 다음 명령어로 할 수 있습니다:
cd /var/www/passbolt
sudo su -s /bin/bash -c "./bin/cake passbolt register_user -u [email protected] -f howtoforge -l Demo -r admin" www-data다음과 같은 출력을 받아야 합니다:
____ __ ____
/ __ \____ _____ ____/ /_ ____ / / /_
/ /_/ / __ \/ ___/ ___/ __ \/ __ \/ / __/
/ ____/ /_/ (__ |__ ) /_/ / /_/ / / /
/_/ \__,_/____/____/_.___/\____/_/\__/
Open source password manager for teams
---------------------------------------------------------------
User saved successfully.
To start registration follow the link provided in your mailbox or here:
https://passbolt.linuxbuz.com/setup/install/5bcfb186-3d9f-448f-8388-f705abd855c8/a2ba80dc-5ef2-433a-9138-11282747b377
이제 위의 출력에서 링크를 복사하여 브라우저에서 Passbolt 설정을 마무리하는 데 사용합니다. 다음 화면이 표시되어야 합니다:

URL과 GPG 키 지문이 올바른지 확인하고 Next 버튼을 클릭합니다. 다음 화면이 표시되어야 합니다:

소유자 이름, 이메일을 제공하고 Next 버튼을 클릭합니다. 다음 화면이 표시되어야 합니다:

비밀번호를 설정하고 Next 버튼을 클릭합니다. 다음 화면이 표시되어야 합니다:

비밀 키를 다운로드하고 Next 버튼을 클릭합니다. 다음 화면이 표시되어야 합니다:

보안 토큰을 설정하고 Next 버튼을 클릭합니다. 다음 화면이 표시되어야 합니다:

사용자 이름과 비밀번호를 제공하고 login 버튼을 클릭합니다. 다음 화면에서 Passbolt 대시보드를 확인할 수 있습니다:

결론
축하합니다! Ubuntu 20.04 서버에 Let’s Encrypt SSL로 Passbolt 비밀번호 관리자를 성공적으로 설치했습니다. 이제 팀 및 개인 사용자와 비밀번호를 저장하고 공유할 수 있습니다. 질문이 있으면 언제든지 물어보세요.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.