summaryrefslogtreecommitdiff
path: root/cryptocalypse.mdwn
blob: 152e693d3d779ef20406c49c6bb85a2472d285bb (plain)
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
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).