1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
|
[[!toc levels=4]]
Repositório de chaves
=====================
Configuração
------------
A maior parte dos procedimentos a seguir depende do aplicativo [keyringer](http://git.sarava.org/?p=keyringer.git;a=summary), da [Hydra Suite](http://git.sarava.org/?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/cert $DOMAIN
Caso você queira gerar apenas a chave e a requisição de certificação (CSR), use
keyringer $HYDRA genpair ssl ssl/cert $DOMAIN
Para a chaves e requisições CaCert, use
keyringer $HYDRA genpair ssl-cacert ssl/cert $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 pessoais
===============
Para gerar uma chave SSH pessoal, use um comando do tipo
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa -C "seu@email"
Esse 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.sarava.org/?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://wiki.sarava.org/Ajuda/ProtegendoConteudo).
Exportação de assinaturas locais
================================
gpg --armor --export-options export-local-sigs --export KEYID
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).
|