From 26bca9756744798496788b7adce229a7b21b9d4e Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Fri, 20 Mar 2015 11:14:02 -0300 Subject: Puppet certs / Cryptocalypse --- certs.mdwn | 5 +++ certs/puppet.mdwn | 30 +++++++++++++++++ cryptocalypse.mdwn | 95 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ index.mdwn | 1 + todo.mdwn | 12 +++++++ 5 files changed, 143 insertions(+) create mode 100644 certs/puppet.mdwn create mode 100644 cryptocalypse.mdwn create mode 100644 todo.mdwn diff --git a/certs.mdwn b/certs.mdwn index 2e6c3c3..2f413d9 100644 --- a/certs.mdwn +++ b/certs.mdwn @@ -101,3 +101,8 @@ Copie as notificações para ser incluída em `https://$DOMAIN/certs`: git push Por fim, atualize os `postfix::tlspolicy_snippet` do `$DOMAIN`, caso aplicável. + +Puppet +------ + +[Renovação de certificados do puppet](puppet). diff --git a/certs/puppet.mdwn b/certs/puppet.mdwn new file mode 100644 index 0000000..490341f --- /dev/null +++ b/certs/puppet.mdwn @@ -0,0 +1,30 @@ +Puppet: trocando certificados +============================= + +Resetando o master +------------------ + +Conforme [referência](http://blkperl.github.io/replace-puppet-ca.html): + + hydractl puppet-reset-master + +Caso seja necessário limpar todos os requests durante testes: + + rm /var/lib/puppetmaster/ssl/ca/requests/* + +Reiniciando os agentes +---------------------- + +Cada agente precisa ter seus certificados criados: + + admin@box$ hydra $HYDRA mass hydractl puppet-reset-agent + admin@box$ hydra $HYDRA mass hydractl puppet-finger + +Colete os fingerprints gerados e confirme com o master: + + root@master$ puppet cert list + root@master$ puppet cert sign --all + +Finalmente, + + admin@box$ hydra $HYDRA mass /etc/init.d/puppet restart diff --git a/cryptocalypse.mdwn b/cryptocalypse.mdwn new file mode 100644 index 0000000..152e693 --- /dev/null +++ b/cryptocalypse.mdwn @@ -0,0 +1,95 @@ +Cryptocalypse! +============== + +Procedimento emergencial de rotação de chaves. Ou, como sobreviver a brechas do tipo [Heartbleed](http://heartbleed.com/)! + +Começando +--------- + + HYDRA="nome-do-grupo" + FOLDER="`hydra $HYDRA folder`" + DOMAIN="`hydra $HYDRA config domain`" + +Atualizando +----------- + +Se for possível e desejável, faça upgrade geral + + hydra $HYDRA mass-upgrade + +Gerando novas chaves SSH +------------------------ + +Na máquina do/a administrador: + + hydra $HYDRA newkeys all-ssh + +Para cada nodo usado no git público: + + cp $FOLDER/puppet/keys/ssh/$nodo/"$nodo"_id_rsa.pub $FOLDER/git/public/keydir/root@$nodo.$DOMAIN.pub + + ( cd $FOLDER/puppet && git add . && git commit -m "Gerando chaves ssh" && git push ) + ( cd $FOLDER/git/public && git add . && git commit -m "Gerando chaves ssh" && git push ) + +Chaves do Puppet +---------------- + +[Reset da infra de CA do puppet](certs/puppet). + +Certificados SSL +---------------- + +[Gere novos certificados SSL](certs). + +Chaves SSH dos ikiwikis +----------------------- + + WIKIS="lista de ikiwikis" + NODE="aziz" + + for wiki in $WIKIS; do + ssh-keygen -t rsa -P '' -b 4096 -f $FOLDER/puppet/keys/ssh/$NODE/ikiwiki/"$wiki"_id_rsa -C "$wiki@$wiki.$DOMAIN" + cp $FOLDER/puppet/keys/ssh/aziz/ikiwiki/"$wiki"_id_rsa.pub $FOLDER/git/public/keydir/$wiki@$wiki.$DOMAIN.pub + done + + ( cd $FOLDER/puppet && git add . && git commit -m "Gerando chaves para ikiwiki" && git push ) + ( cd $FOLDER/git/public && git add . && git commit -m "Gerando chaves para ikiwiki" && git push ) + +Tor +--- + +A parte fácil: + + hydra $HYDRA mass-web /etc/init.d/tor stop + hydra $HYDRA mass-web rm -rf /var/lib/tor/hidden + hydra $HYDRA mass-web mkdir /var/lib/tor/hidden + hydra $HYDRA mass-web chown debian-tor. /var/lib/tor/hidden + hydra $HYDRA mass-web /etc/init.d/tor start + +Isso precisa ser feito manualmente para outros serviços (por exemplo email e ssh): + + cd `hydra $HYDRA folder`/puppet + grep -R onion hiera + grep -R onion manifests + grep -R onion modules/site_* + +Monte uma lista de servidores e proceda com a regeneração: + + SERVERS="galdino satanito magaiver" + + for server in $SERVERS; do + hydra $HYDRA exec $server /etc/init.d/tor stop + hydra $HYDRA exec $server rm -rf /var/lib/tor/hidden + hydra $HYDRA exec $server mkdir /var/lib/tor/hidden + hydra $HYDRA exec $server chown debian-tor. /var/lib/tor/hidden + hydra $HYDRA exec $server /etc/init.d/tor start + done + +Em seguida, colete os novos hostnames e atualize os `ServerAlias` dos sites e outras referências: + + hydra $HYDRA mass-web hydractl hidden-services + +Senhas de usuário +----------------- + +O procedimento deve variar de aplicação para aplicação. Por exemplo, para o drupal há o [Force password change](https://drupal.org/project/force_password_change). diff --git a/index.mdwn b/index.mdwn index ca224e2..ce62b83 100644 --- a/index.mdwn +++ b/index.mdwn @@ -26,6 +26,7 @@ A antiga documenta * [Backup](backup). * [Chaves](keys). * [Certificados](certs). +* [Cryptocalypse](cryptocalypse). * [Auditoria](audit). * [Bootstrap](bootstrap). * [Adicionando um nodo](nodo). diff --git a/todo.mdwn b/todo.mdwn new file mode 100644 index 0000000..4e9af1b --- /dev/null +++ b/todo.mdwn @@ -0,0 +1,12 @@ +[[!toc levels=4]] + +TODO +==== + +[Certificados](certs) +--------------------- + +* Disponinibilizar modelos (`templates/certs` e `notices/certs`). +* Procedimento para salvar contratos, invoices, etc no repositório de documentação. +* Onde for possível, substituir "SSL" por "TLS", "x509", "certs" ou "Certificados" quando aplicável. +* Traduzir [Certificates](https://help.riseup.net/pt/security/network-security/certificates) e usar como referência de protocolo. -- cgit v1.2.3