Passbolt – Gerenciador de Credenciais – Instalação e Configuração

O Passbolt é um gerenciador de credenciais (usuários e senhas) desenvolvido para para uso corporativo e/ou para times. Ele possui versões Community Edition (CE), que é gratuito e de código livre (open source), e versões pagas, incluindo a com hospedagem própria (Cloud Version).

Neste artigo, faremos a instalação do PassBolt no Linux Ubuntu 18.04 LTS Server utilizando o seu próprio instalador, que sugere o Nginx como servidor web e o MariaDB (versão “fork” – opensource – do MySQL) como sistema gerenciador de banco de dados, e o Let’s Encrypt para a ativação do HTTPS/SSL no acesso ao sistema.

Nginx é um servidor web, tal como o Apache e IIS. É considerado um servidor “leve”, pois consome menos memória que o Apache. Em redes corporativas, é comum usá-lo em parceria ao Apache, visando aumentar a performance dos serviços e servidores e, consequentemente, economizando recursos.

Importante destacar que, na construção do ambiente utilizado neste artigo, o sistema operacional estava em sua versão original, sem nenhum sistema pré-instalado ou instalado anteriormente.

Pré-requisitos para execução deste tutorial: conhecimento em Linux, conhecimento geral em redes de computadores e compreensão do conceito de servidor Web, banco de dados e criptografia / certificados SSL.

Preparando o ambiente para a instalação

Para iniciar, adicione alguns repositórios padrões ao Ubuntu (apt / sources.list):

sudo add-apt-repository universe

*No Ubuntu 18.04, o repositório universe é habilitado para qualquer fonte (source).

Para conferir, ou inserir manualmente os sources, abra / edite o arquivo sources.list:

sudo nano /etc/apt/sources.list

Insira os endereços abaixo ao final do arquivo:

# Passbolt
deb http://archive.ubuntu.com/ubuntu bionic main universe
deb http://archive.ubuntu.com/ubuntu bionic-security main universe
deb http://archive.ubuntu.com/ubuntu bionic-updates main universe

Atualize a lista de repositórios e o sistema:

apt update && apt upgrade

Acesse o diretório home ou opt:

cd ~ ou cd /opt/

Baixe os arquivos da instalação do Passbolt do seu site oficial:

wget -O passbolt-ce-installer-ubuntu-18.04.tar.gz https://www.passbolt.com/ce/download/installers/ubuntu/latest

wget -O passbolt-installer-checksum https://www.passbolt.com/ce/download/installers/ubuntu/latest-checksum

sha512sum passbolt-installer-checksum

Descompacte o arquivo de instalação:

tar -xzvf passbolt-ce-installer-ubuntu-18.04.tar.gz

Instruções para o instalador

Para iniciar o instalador do Passbolt, execute o script abaixo:

sudo ./passbolt_ce_ubuntu_installer.sh

Instalador oficial do Passbolt para Ubuntu 18.04

Abaixo estão as sugestões e configurações utilizadas neste ambiente.

O certificado SSL, via Let’s Encrypt, será gerado e ativado posteriormente pois, através do próprio instalador do Passbolt (SSL Setup = option 2 [auto]), tivemos dificuldades em realizar esta configuração.

Instalar Maria DB? = 1, yes
MariaDB root = [insira uma senha para usuário root do MariaDB]
Database user name = passbolt
Database user password = [insira uma senha para o usuário passbolt]
Database name = passbolt
Haveged = 1, yes
Hostname = [use o IP do servidor ou, como neste exemplo, um dominio, como pb.scota.com.br]
Setting SSL = 3, none [vamos habilitar depois!]

Após a inserção destas respostas a instalação iniciará. Se efetuada com sucesso, será exibida a mensagem de que a instalação está quase completa e deve ser finalizada via browser, como ilustra a imagem abaixo.

Porém, como vimos acima, decidimos não habilitar o SSL através do instalador do Passbolt e, por isso, antes de finalizar a configuração via browser, vamos usar o certbot para gerar este certificado e permitir acessar o sistema através de SSL/HTTPS.

 

Ativando SSL no Passbolt com o Let’s Encrypt

Para ativar o SSL é importante lembrar que o domínio utilizado seja acessível via Internet, portanto, as portas 80 http e 443 https devem estar abertas (liberadas) e redirecionadas (NAT) para o servidor (IP local) do sistema.

Caso esteja fazendo esta instalação em um ambiente de testes, você pode gerar um certificado self-signed (auto-assinado). Ele pode ser usado normalmente, porém, como não possui vínculo com uma autoridade certificadora oficial, o navegador sempre exibirá um alerta ao acessá-lo.

Para gerar um certificado self-signed, consulte as referências deste artigo.

Insira o repositório do certbot ao Ubuntu:

sudo add-apt-repository ppa:certbot/certbot

Instale o certbot para Nginx:

apt-get update && apt-get install python-certbot-nginx

Configurando o Nginx:

Como a instalação do Passbolt já criou o arquivo de configuração para o Nginx (/etc/nginx/conf.d/passbolt.conf) você não precisa executar o comando abaixo. Caso você tenha criando uma nova entrada (arquivo) de host virtual (como de um subdomínio), execute o comando abaixo para verificar a sintaxe do arquivo e reiniciar o Nginx.

nginx -t && nginx -s reload

Obtendo o certificado SSL/TLS:

sudo certbot --nginx -d example.com -d www.example.com

*Exemplos: sudo certbot --nginx -d pb.scota.com.br

Você precisará inserir as informações do certificado, como o código do país, estado, cidade, companhia, departamento, domínio (site) e email.

Feito isso, confira o arquivo passbolt.conf, que deve estar semelhante a este abaixo:

server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
server_name  example.com www.example.com;
listen 443 ssl; # managed by Certbot
# RSA certificate
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
# Redirect non-https traffic to https
if ($scheme != "https") {
return 301 https://$host$request_uri;
} # managed by Certbot
}

Concluindo a instalação via browser

Acessando o IP ou domínio do servidor / sistema (definido na instalação), você deverá seguir com a configuração final do Passbolt. Deve-se informar, basicamente:

1 – Banco de Dados:

Informações de acesso ao MariaDB, como host (127.0.0.1 ou localhost), usuário, senha e nome do banco de dados (definidos na instalação).

2 – Criação de chave GPG

Informe um nome para o sistema / servidor e um e-mail.

3 – Servidor SMTP de email

Insira uma conta para envio de emails (obrigatório para ativação de usuários do sistema), informando dados da conta e do servidor SMTP.

4 – Criação do primeiro usuário (administrador)

Insira um nome, sobrenome e email.

As instruções oficiais desta configuração podem ser consutadas no site oficial do Passbolt neste link.

Fim! Feito isso, o Passbolt estará completamente instalado e configurado!

Passbolt – Interface de login (plugin já instalado)

Você pode acessar sua interface de administração através do endereço https://dominio-do-passbolt/app/passwords, porém precisa, obrigatoriamente, instalar seu plugin para o navegador utilizado (Chrome ou Firefox), conforme instruções da sua página inicial.

Arquivos de configuração:

CertBoot do LetsEncrypt:
/etc/letsencrypt/live/pb.scota.com.br/fullchain.pem

Config do Passbolt no Nginx:

/etc/nginx/conf.d/passbolt.conf
*É comum este arquivo ficar dentro de /etc/nginx/sites-available/domain-example.conf

Configs gerais do Passbolt, incluindo Database, URL e SMTP:
/var/www/passbolt/config/passbolt.php
*Diretório de config do Passbolt pode variar de acordo com a versão do sistema operacional / configurações de instalação, como o /etc/passbolt.

Webroot do Passbolt no Ubuntu:
/var/www/passbolt/webroot

*Agradecimento especial ao Angelo Gelasko e ao Maike Cristian de Lima pela ajuda na construção desta pesquisa e ambiente de testes.

*Com referências de: Passbolt Help – Install on Ubuntu, Nginx – Using SSL/TLS Certificates by Let’s Encrypt, Techrepublic – How to enable SSL on Nginx (Self-Signed Certificate), How to Forge – Install Passbolt on Ubuntu 20.04, Passbolt Help – Install on Debian

2 Comments

  1. Parabéns pelo post, excelente abordagem, tentarei replicar no meu ambiente.

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload the CAPTCHA.