summaryrefslogtreecommitdiff
path: root/cryptocalypse.mdwn
diff options
context:
space:
mode:
authorSilvio Rhatto <rhatto@riseup.net>2015-03-20 11:14:02 -0300
committerSilvio Rhatto <rhatto@riseup.net>2015-03-20 11:14:02 -0300
commit26bca9756744798496788b7adce229a7b21b9d4e (patch)
tree42725dfd5bf5522cf1e99303a0a2fae834116b5d /cryptocalypse.mdwn
parentfa01b25cac0cbd86375c2204707d5c46b023de4d (diff)
downloadpadrao-26bca9756744798496788b7adce229a7b21b9d4e.tar.gz
padrao-26bca9756744798496788b7adce229a7b21b9d4e.tar.bz2
Puppet certs / Cryptocalypse
Diffstat (limited to 'cryptocalypse.mdwn')
-rw-r--r--cryptocalypse.mdwn95
1 files changed, 95 insertions, 0 deletions
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).