Team Pass – Gerenciador Senhas Corporativo
Estapa 01 / Capítulo 02 – Resolvendo Dependências
Índice:
- Capítulo 01 – Introdução
- Capítulo 02 – Resolvendo Dependências
- Capítulo 03 – Instalação
- Capítulo 04 – Restringindo acesso por IP
Introdução
TeamPass é um gerenciador de senhas dedicado para gerenciar senhas de forma colaborativa em qualquer servidor com Apache, MySQL e PHP.
Ele é especialmente projetado para fornecer senhas de segurança de acesso para pessoas permitidas. Isso torna o TeamPass realmente útil em um ambiente empresarial e fornecerá ao gerente de TI ou de equipe uma ferramenta poderosa e fácil para personalizar o acesso de senhas, dependendo do papel do usuário.
Preparando Ambiente
Estou utilizando o OS Debian 8 (Jessie) 64bit virtualizado.
Também testado no OS Debian 10 bullseye
64bit virtualizado.
Antes de começarmos a instalação precisamos suprir alguns pré-requisitos.
Banco de Dados
A primeira coisa que precisamos fazer é criar a base de dados, que posteriormente será populada durante a instalação. Essa base pode ser local ou remota, faça como melhor te convir.
Caso não tenha o banco de dados instalado, dar uma lida nesse Post LAMP – Passo 1 – Instalando Mysql.
Acessando o cliente modo texto do Mysql:
mysql -uroot -p
Será solicitado a senha, após digita-la sem erros, teremos acesso ao console do cliente.
No exemplo abaixo vamos criar uma base de dados chamada teampass_db:
CREATE DATABASE teampass_db CHARACTER SET utf8 COLLATE utf8_general_ci;
Agora criaremos um usuário chamado ‘teampass’ com senha ‘TeAmPaSs’ no servidor local:
Não esqueça de configurar uma senha deferente e complexa.
CREATE USER 'teampass'@'localhost' IDENTIFIED BY 'TeAmPaSs';
Configurando as novas permissões para o novo usuário a base de tados “teampass_db”:
GRANT ALL PRIVILEGES ON teampass_db.* TO teampass@localhost IDENTIFIED BY 'TeAmPaSs';
Vamos aplicar as devidas permissões:
FLUSH PRIVILEGES;
Para maiores detalhes sobre criação e configuração de permissão de usuário pode ser consultado aqui: Mysql – Gerenciando Usuários.
Instalando o Apache2
Você pode instalar qualquer servidor web de sua preferência, mas esse Post vai seguir a instalação com Apache.
Caso ainda não tenha instalado Veja esse LAMP – Passo 2 – Instalando Apache
Instalando PHP
Caso não tenha o PHP5 instalado LAMP – Capítulo 3 – Instalando PHP.
Importante: não instale o pacote APCU, esse é um modulo PHP para criar cache, o TeamPass não funciona bem com esse modulo instalado.
Resolvendo dependências PHP5.
apt-get install php5-mcrypt php5-ldap php5-common php5-cli php5-fpm php5-xmlrpc php5-mysqlnd unzip
Resolvendo dependências PHP versão mais recente.
apt-get install php-mcrypt php-ldap php-common php-cli php-mbstring php-fpm php-xml php-gd openssl php-bcmath php-xmlrpc php-gd unzip
Ajustes no PHP
Na documentação do TeamPass, é solicitado que o arquivo php.ini seja alterado nas seguintes linhas:
vim /etc/php5/apache2/php.ini
Os seguintes campos:
date.timezone = America/Sao_Paulo max_execution_time = 60
Eu, porém, não aconselho alterar o arquivo de configuração do PHP. o Teampass e uma aplicação FrontEnd, aplicação web, e por esse motivo eu gosto de usar um recurso do Apache2, que é o conf-available, esse diretório é responsável por carregar as configurações complementares do PHP e do Apache na página web em que a Alias foi configurada.
Vamos criar o arquivo teampass.conf em:
vim /etc/apache2/conf-available/teampass.conf
Vamos preenche-lo com as seguintes linhas:
# Define /TeamPass alias, this is the default <IfModule mod_alias.c> Alias /teampass /var/www/teampass </IfModule> <Directory "/var/www/teampass"> Options FollowSymLinks AllowOverride None Order allow,deny Allow from all <IfModule mod_php5.c> php_value max_execution_time 60 php_value date.timezone America/Sao_Paulo </IfModule> </Directory>
Para que essas configurações entre em vigor, temos que habilitar essa configuração no apache
a2enconf teampass.conf
E reiniciar o serviço do apache para que a nova configuração seja carregada.
service apache2 reload
Instalando o módulo PHP para Mysql
Leia esse Post Lamp – Capitulo 4 Instalando módulo PHP Mysql
Até esse momento, se o TeamPass já tivesse com seus aqrquivos HTML no diretório /var/www/teampass, você poderia acessa-lo do seguinte modo: https://localhost/teampass
No lugar do localhost poderíamos acessar colocando o IP do seu servidor de hospedagem da ferramenta.
Mais pra ficar algo mais profissional, vamos configurar o Virtualhost no apache para podemos acessar o TeamPass pelo seu nome de DNS da sua preferência.
Vou utilizar o nome de acesso como teampass mesmo, mas você configure o seu servidor DNS como te convém.
Vamos criar o arquivo teampass.conf em:
vim /etc/apache2/sites-available/teampass.conf
Preencha o arquivo conforme abaixo:
<VirtualHost *:80> # The ServerName directive sets the request scheme, hostname and port that # the server uses to identify itself. This is used when creating # redirection URLs. In the context of virtual hosts, the ServerName # specifies what hostname must appear in the request's Host: header to # match this virtual host. For the default virtual host (this file) this # value is not decisive as it is used as a last resort host regardless. # However, you must set it for any further virtual host explicitly. #ServerName www.example.com
ServerAdmin postmaster@seudominio #substitua pelo seu emial de admin do site DocumentRoot /var/www/teampass/ ServerName seudominio # Substitua algo como teste.com.br ServerAlias teampass.seudominio # Nome que configurou no servidor DNS e o dominio # Evitando que a arvore de diretorio seja exibida <Directory /var/www/teampass/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, # error, crit, alert, emerg. # It is also possible to configure the loglevel for particular # modules, e.g. LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/teampass.error.log CustomLog ${APACHE_LOG_DIR}/tempass.access.log combined # For most configuration files from conf-available/, which are # enabled or disabled at a global level, it is possible to # include a line for only one particular virtual host. For example the # following line enables the CGI configuration for this host only # after it has been globally disabled with "a2disconf". #Include conf-available/serve-cgi-bin.conf </VirtualHost>
Vamos habilitar o site virtual com o seguinte comando:
a2ensite teampass.conf
E reiniciar o serviço do apache para que as novas configurações sejam carregado no apache.
service apache2 reload
Para que a resolução de nomes ocorra localmente, termos que realizar uma inclusão no arquivo hosts no OS:
127.0.0.1 localhost 127.0.1.1 nomeHost.seudomino nomeHost 192.168.0.10 nomeHost.seudomino nomeHost # The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters
Você deverá substituir as linha 2 e 3. Na linha dois não precisa alterar o IP somente nomeHost.seudomino nomeHost para (supondo que seu site seja teampass e seu domínio teste.com.br) teampass.teste.com.br teampass
Na linha 3 você irá alterar para o IP cadastrado no host e no servidor DNS mais o domínio teampass.teste.com.br teampass.
Pronto! Até aqui estamos com o PHP, Mysql e Apache redondos para receber os dados para o TeamPass ser instalado.
Dados tipo SAL
Introdução
Em criptografia, SAL é um dado aleatório que é usado como uma entrada adicional junto a uma senha ou algo semelhante em uma “função de mão única”, que gera como saída um HASH. A função primária do SAL é defender contra ataques de dicionário aliados a aplicação da função HASH nesta lista (já que a função HASH é conhecida segundo os princípios de Kerckhoffs) e contra ataques pré-computados como rainbow table.
Um novo SAL é gerado aleatoriamente para cada senha. Em uma configuração típica, o SAL e a senha são concatenados e processados com uma função de HASH criptográfica, então apenas o resultado e o SAL são guardados no banco de dados. O HASH permitirá futuras autenticações, como também protege a senha puro-texto em situações em que o banco de dados pode estar comprometido. Afinal, apenas o usuário saberá a senha puro-texto e o HASH poderá ser recalculado com o SAL guardado, e o resultado garantirá a integridade do banco de dados.
SAIS criptográficos são amplamente usados em muitos sistemas modernos de computadores, desde sistemas Unix até segurança de internet.
Mais detalhes sobre esse modo de criptografia pode ser visto aqui.
Em grosso modo, o SAL é um arquivo fundamental para ampliar a segurança da forma de autenticação e criptografia das senhas armazenadas no banco de dados do TeamPass, isso é só mais um recurso que torna esse sistema mais seguro e apropriada a gerência de senha em ambiente corporativo remoto e local. Vamos ver mais detalhes desse arquivo mais pra frente quando falar sobre o backup do TeamPass. Por hora vamos só nos atentar na criação do diretório.
Diretório SalKey
Precisamos criar um diretório que também é dependência da instalação, esse diretório irá armazenar um dado do tipo SAL que será utilizado juntamente com a senha. Daremos o nome desse diretório de salkey.
Criando o diretório:
mkdir /var/www/salkey
Iremos conceder permissão apenas para o usuário do Apache ao diretório salkey:
chown -R www-data:www-data /var/www/salkey
Até aqui todas etapas de dependência foram sanadas. Vamos continuar com o download dos arquivos do TeamPass e configuração para preparação do ambiente de produção.
Criando os diretórios
Agora vamos realizar o download dos arquivos e copiar os arquivos PHP para o diretório WEB.
Eu prefiro deixar os arquivos de download, no diretório do usuário do host, para manter a organização e profissionalismo no ambiente.
Caso não tenha criado, vamos criar o diretório:
mkdir /home/seuUsuario/Downloads
Vamos acessar o diretório criado para receber os arquivos PHP do TeamPass:
cd /home/seuUsuario/Downloads
Criando o diretório para hospedar as páginas:
mkdir /var/www/teampass
Download dos Arquivos e Instalação
wget https://github.com/nilsteampassnet/TeamPass/archive/master.zip
Descompactando os arquivos:
unzip master.zip
Movendo os arquivos para o diretório para o acesso WEB:
mv /home/seuUsuário/Download/TeamPass-master/* /var/www/teampass
Concedendo acesso ao diretório /var/www/teampass para o usuário do Apache:
chown -R www-data:www-data /var/www/teampass
Agora basta acessar o endereço do seu servidor:
https://ip_servidor/teampass/install/install.php https://teampass/install/install.php
O próximo capítulo daremos continuidade com o processo de instalação.
Se está gostando das postagens, se inscreva em nosso site para receber mais materiais de nosso blog, é grátis, você vai ser notificado quando novas postagens forem publicadas, recebendo assim mais conteúdos de qualidades e ainda vai dar aquela força pra nossa comunidade. E não esquece de compartilhar em suas redes sociais os botões estão no final desse página.
No final dessa página temos um campo onde você é bem vindo para deixar seus comentários. Pode ser uma opinião, elogios, críticas ou correções. Pode ficar a vontade para tirar suas dúvidas ou colaborar acrescentando algo que tenhamos deixado passar desapercebido.
Sua visita e feedback é muito importante para o nosso espaço.