diff options
Diffstat (limited to 'docs/keys.md')
-rw-r--r-- | docs/keys.md | 150 |
1 files changed, 150 insertions, 0 deletions
diff --git a/docs/keys.md b/docs/keys.md new file mode 100644 index 0000000..a708afb --- /dev/null +++ b/docs/keys.md @@ -0,0 +1,150 @@ +# Chaves + +## Repositório de chaves + +### Configuração + +A maior parte dos procedimentos a seguir depende do aplicativo +[keyringer](http://git.fluxo.info/?p=keyringer.git;a=summary), da [Hydra +Suite](http://git.fluxo.info/?p=hydra.git;a=summary) e de uma configuração do +tipo + +Proceda então com a [configuração do ambiente de trabalho administrativo](/install). + +### Inicializando um repositório + + # Inicializando + keyringer $HYDRA init $FOLDER/conf/keyring + +### Gerando chaves https + +Gerar chaves e certificados SSL auto-assinados é simples: + + # Gerando chaves para https + keyringer $HYDRA genpair ssl-self ssl/$DOMAIN $DOMAIN + +Caso você queira gerar apenas a chave e a requisição de certificação (CSR), use + + keyringer $HYDRA genpair ssl ssl/$DOMAIN $DOMAIN + +Para a chaves e requisições CaCert, use + + keyringer $HYDRA genpair ssl-cacert ssl/$DOMAIN $DOMAIN + +### Gerando chaves para novos nodos + + # Gerando chaves ssh e gpg para novos nodos + # A importacao das chaves gpg nos nodos deve ser feita manualmente + hydra $HYDRA newkeys + +### Submetendo mudanças + + # Submetendo + keyringer $HYDRA git remote add origin giolite@admin.$DOMAIN:keyring.git + keyringer $HYDRA git push origin master + +### Importação de chaves GPG + +Importando chaves nos seus respectivos nodos: + + hydra $HYDRA import-key + +## Chaves SSH + +Para gerar uma chave SSH pessoal, use um comando do tipo + + ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa -C "seu@email" + ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -C "seu@email" + +Esse tipo de comando irá gerar uma **chave privada** em `~/.ssh/id_rsa` e uma +respectiva **chave pública** em `~/.ssh/id_rsa.pub`. Se você já possui uma +chave em `~/.ssh/id_rsa` e quiser mantê-la, escolha outro nome para a nova +chave, como por exemplo `~/.ssh/id_rsa_aplicacao`. + +## Senhas + +Exemplo de geração de senhas usando o [pwgen](http://packages.debian.org/lenny/pwgen): + + pwgen -s -y 25 + +Atenção: muitos programas e configurações podem não funcionar por conta do uso +de caracteres especiais nas senhas. Assim, recomenda-se evitar alguns +caracteres especiais -- por exemplo delimitadores de campo -- quando for o caso +e/ou testar a senha após a sua escolha. + +## Impressões digitais + +### Chaves SSL + +Chaves SSL podem ter seu fingerprint determinado através usando o [OpenSSL em +linha de comando](http://www.madboa.com/geek/openssl), com linhas do tipo + + openssl x509 -noout -in /etc/ssl/certs/cert.crt -fingerprint + openssl x509 -noout -in /etc/ssl/certs/cert.crt -fingerprint -md5 + +### Chaves públicas SSH + +O seguinte comando retorna todas as fingerprints dos arquivos de chave pública ssh terminados em `.pub` no diretório `/etc/ssh/`: + + hydractl ssh-finger + +Para obter um fingerprint salvo no seu `~/.ssh/known_hosts` pessoal, use + + ssh-keygen -l -F servidor.exemplo.org -f ~/.ssh/known_hosts + ssh-keygen -l -F [servidor.exemplo.org]:porta -f ~/.ssh/known_hosts + +## Monkeysphere + +O [monkeysphere](http://web.monkeysphere.info) é um programa que permite a +verificação de hosts SSH e usuários/as através da Teia de Confiabilidade do +OpenPGP. Com ele, o gerenciamento de fingerprints fica mais fácil e evita que +páginas como esta centralizem informações que possam se desatualizar. + +Além dos [usos já documentados](http://web.monkeysphere.info/doc/), o +monkeysphere pode ser utilizado também para autenticação em sistemas que não +possuem tal suporte: + + monkeysphere gen-subkey -l 4096 # caso voce ainda nao tenha uma chave + mkdir -m 700 ~/.monkeysphere + echo "SEU-ID" >> ~/.monkeysphere/authorized_user_ids # exemplo: "Seu Nome <seu-email@example.org>" + touch ~/.ssh/id_rsa_monkeysphere.pub + chmod 600 ~/.ssh/id_rsa_monkeysphere.pub + MONKEYSPHERE_AUTHORIZED_KEYS=$HOME/.ssh/id_rsa_monkeysphere.pub monkeysphere update-authorized_keys + +Agora, basta fornecer a chave localizada em `~/.ssh/id_rsa_monkeysphere.pub` para autenticação :) + +## Hashes + +Hashes são úteis para o armazenamento de senhas de usuário. São usados por +exemplo no `shadow(5)`. Para gerar um hash compatível com o shadow (por exemplo +para gestão via +[puppet-user](http://git.fluxo.info/?p=puppet-user.git;a=summary)), utilize o +seguinte comando disponível no pacote [whois do +Debian](https://packages.debian.org/stable/whois): + + mkpasswd -m sha-256 + +Hashes para `htpasswd` são descritos [aqui](http://sarava.fluxo.info/Ajuda/ProtegendoConteudo). + +## Exportação de assinaturas locais + + gpg --armor --export-options export-local-sigs --export KEYID + +## Forçando entrada de senhas via console no GnuPG + + DISPLAY="" gpg <opcoes> + +## Mudando senhas de chaves + + ssh-keygen -p -f ~/.ssh/id_rsa + gpg --edit-key <ID> edit-key passwd + +## Chave OpenPGP de Coletivo + +Vide [Chave OpenPGP de Coletivo](role). + +## Referências + +* [Using ssh-agent with ssh](http://mah.everybody.org/docs/ssh). +* [Using Rsync and SSH ](http://troy.jdmz.net/rsync/index.html). +* [SSH and ssh-agent](http://www.securityfocus.com/infocus/1812). |