Choisir un mot de passe

XKCD fidèle à son habitude démontre qu’une image vaut plus qu’une longue explication…

Qu’est ce qu’un bon mot de passe ?
Un mot de passe qui résiste le plus longtemps possible à une attaque en brut force.

Ce mot de passe, respectant les standards abscons de  bon informaticien ayatollah  :
YhgTBBgdt!èJ
ne résistera pas longtemps, tout au plus 3/4 jours.

Alors que celui-ci :
YabonCheminCoolEtEnsoleillé
pourra résister beaucoup plus longtemps, jusqu’à plusieurs années…
Notez que j’ai mis une majuscule à chaque mot par soucis de lisibilité, mais même sans celles-ci, ce mot de passe reste très difficile a déchiffrer.

L’avantage du second, c’est qu’il est simple retenir, alors que le premier est bien plus difficile à mémoriser…

L’illustration > xkcd : Password Strength

zfs, détruire un snapshot récalcitrant

Quand on réplique des datasets zfs entre deux serveurs, il arrive qu’une erreur se produise et que le clone temporaire ne soit pas automatiquement effacé, ce qui ensuite bloque les réplications…

On essai de détruire le snapshot

[root@zfs] ~# zfs list -H -o name -t snapshot | xargs -n1 zfs destroy
 cannot destroy 'tank/vol/hsm@auto-20111122.0715-1w': dataset already exists

Comment s’en sortir

On liste les snapshots, notez qu’on ne vois pas le clone

[root@zfs] ~# zfs list -H -o name -t snapshot
 tank/vol/hsm@auto-20111122.0715-1w

Trouver le nom du clone qui empêche la destruction du snapshot, c’est celui avec le % dans le nom

[root@zfs] ~# zfs -d tank
 Dataset mos [META], ID 0, cr_txg 4, 178M, 183 objects
 Dataset tank/shared [ZPL], ID 32, cr_txg 49, 31.4K, 4 objects
 Dataset tank/vol/hsm/%auto-20111122.0730-1w [ZPL], ID 17221, cr_txg 2005726, 584G, 2009587 objects
 Dataset tank/vol/hsm@auto-20111122.0715-1w [ZPL], ID 17215, cr_txg 2004014, 584G, 2009587 objects
 Dataset tank/vol/hsm [ZPL], ID 77, cr_txg 436135, 584G, 2009587 objects
 Dataset tank/doc [ZPL], ID 52, cr_txg 435968, 32.9K, 5 objects
 Dataset tank/backup [ZPL], ID 44, cr_txg 185, 2.04T, 6375302 objects
 Dataset tank/tof [ZPL], ID 38, cr_txg 52, 32.2K, 5 objects
 Dataset tank [ZPL], ID 16, cr_txg 1, 37.4K, 8 objects

On détruite le coupable

[root@zfs] ~# zfs destroy tank/vol/hsm/%auto-20111122.0730-1w
 cannot open 'tank/vol/hsm/%auto-20111122.0730-1w': dataset does not exist

Une erreur se produit, mais si regarde le clone a disparu

[root@zfs] ~# zfs -d tank
 Dataset mos [META], ID 0, cr_txg 4, 178M, 177 objects
 Dataset tank/shared [ZPL], ID 32, cr_txg 49, 31.4K, 4 objects
 Dataset tank/vol/hsm@auto-20111122.0715-1w [ZPL], ID 17215, cr_txg 2004014, 584G, 2009587 objects
 Dataset tank/vol/hsm [ZPL], ID 77, cr_txg 436135, 584G, 2009587 objects
 Dataset tank/doc [ZPL], ID 52, cr_txg 435968, 32.9K, 5 objects
 Dataset tank/backup [ZPL], ID 44, cr_txg 185, 2.04T, 6375302 objects
 Dataset tank/tof [ZPL], ID 38, cr_txg 52, 32.2K, 5 objects
 Dataset tank [ZPL], ID 16, cr_txg 1, 37.4K, 8 objects

on peut maintenant détruire le snapshot

[root@zfs] ~# zfs destroy tank/vol/hsm@auto-20111122.0715-1w

Pas d’erreur, on vérifie

root@zfs] ~# zfs -d tank
 Dataset mos [META], ID 0, cr_txg 4, 178M, 173 objects
 Dataset tank/shared [ZPL], ID 32, cr_txg 49, 31.4K, 4 objects
 Dataset tank/vol/hsm [ZPL], ID 77, cr_txg 436135, 584G, 2009587 objects
 Dataset tank/doc [ZPL], ID 52, cr_txg 435968, 32.9K, 5 objects
 Dataset tank/backup [ZPL], ID 44, cr_txg 185, 2.04T, 6375302 objects
 Dataset tank/tof [ZPL], ID 38, cr_txg 52, 32.2K, 5 objects
 Dataset tank [ZPL], ID 16, cr_txg 1, 37.4K, 8 objects

Il a disparu, la réplication va pouvoir repartir…

Installer un certificat SSL Gandi sur Zimbra

Gandi propose des certificats SSL pas cher, mais n’est pas autorité de certification root. Pour installer un certificat il faut donc chaîner les certificats root de l’autorité de certification et le certificat Intermédiaire de Gandi.

Créer une demande de certificat
cd /opt/zimbra/mailboxd/webapps/zimbraAdmin/tmp
openssl req -nodes -newkey rsa:2048 -keyout zm.domaine.com.key -out zm.domaine.com.csr

Installer ca-certificates pour manager les certificats
apt-get install ca-certificates

Créer un bundle avec le certificat racine de l’autorité de certification et le certificat inetrmédiaire de Gandi
cat UTN-USERFirst-Hardware.crt GandiStandardSSLCA.pem > GandiBundle.pem

Aller sauvegarder puis supprimer les anciens certificats

cd /opt/zimbra/ssl/zimbra/commercial/
tar -czvf /tmp/ssl.commercial.tar.gz *
rm  *

Copier la demande de certificat le CSR
cp /opt/zimbra/mailboxd/webapps/zimbraAdmin/tmp/zm.domaine.com.csr commercial.csr

Copier la clef privée du certificat
cp /opt/zimbra/mailboxd/webapps/zimbraAdmin/tmp/zm.domaine.com.key commercial.key

Copier et renommer le Bundle des certificats CA
cp /opt/zimbra/mailboxd/webapps/zimbraAdmin/tmp/GandiBundle.pem commercial_ca.crt

Vérifier que le certificat Gandi correspond bien à la clef privée
/opt/zimbra/bin/zmcertmgr verifycrt comm commercial.key /opt/zimbra/mailboxd/webapps/zimbraAdmin/tmp/new-cert-domaine.com.crt

Vérifier que le bundle des CA racine est bien valide
/opt/zimbra/bin/zmcertmgr verifycrtchain commercial_ca.crt /opt/zimbra/mailboxd/webapps/zimbraAdmin/tmp/new-cert-domaine.com.crt

Installer et déployer le nouveau certificat
/opt/zimbra/bin/zmcertmgr deploycrt comm /opt/zimbra/mailboxd/webapps/zimbraAdmin/tmp/new-cert-domaine.com.crt commercial_ca.crt

Relancer Zimbra
su – zimbra
zmcontrol restart

Normalement c’est tout, votre Zimbra doit maintenant avoir son nouveau certificat

Doc sur le wiki de Zimbra >

Edit :
Pour installer des certs en sha2, il faut une nouvelle chaîne de cert intermediaire gandi à mettre dans commercial_ca.crt

-----BEGIN CERTIFICATE-----
MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU
MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs
IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290
MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux
FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h
bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v
dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt
H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9
uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX
mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX
a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN
E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0
WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD
VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0
Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU
cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx
IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN
AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH
YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC
Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX
c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a
mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----
MIIFdzCCBF+gAwIBAgIQE+oocFv07O0MNmMJgGFDNjANBgkqhkiG9w0BAQwFADBv
MQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFk
ZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBF
eHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFow
gYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpOZXcgSmVyc2V5MRQwEgYDVQQHEwtK
ZXJzZXkgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMS4wLAYD
VQQDEyVVU0VSVHJ1c3QgUlNBIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjAN
BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAgBJlFzYOw9sIs9CsVw127c0n00yt
UINh4qogTQktZAnczomfzD2p7PbPwdzx07HWezcoEStH2jnGvDoZtF+mvX2do2NC
tnbyqTsrkfjib9DsFiCQCT7i6HTJGLSR1GJk23+jBvGIGGqQIjy8/hPwhxR79uQf
jtTkUcYRZ0YIUcuGFFQ/vDP+fmyc/xadGL1RjjWmp2bIcmfbIWax1Jt4A8BQOujM
8Ny8nkz+rwWWNR9XWrf/zvk9tyy29lTdyOcSOk2uTIq3XJq0tyA9yn8iNK5+O2hm
AUTnAU5GU5szYPeUvlM3kHND8zLDU+/bqv50TmnHa4xgk97Exwzf4TKuzJM7UXiV
Z4vuPVb+DNBpDxsP8yUmazNt925H+nND5X4OpWaxKXwyhGNVicQNwZNUMBkTrNN9
N6frXTpsNVzbQdcS2qlJC9/YgIoJk2KOtWbPJYjNhLixP6Q5D9kCnusSTJV882sF
qV4Wg8y4Z+LoE53MW4LTTLPtW//e5XOsIzstAL81VXQJSdhJWBp/kjbmUZIO8yZ9
HE0XvMnsQybQv0FfQKlERPSZ51eHnlAfV1SoPv10Yy+xUGUJ5lhCLkMaTLTwJUdZ
+gQek9QmRkpQgbLevni3/GcV4clXhB4PY9bpYrrWX1Uu6lzGKAgEJTm4Diup8kyX
HAc/DVL17e8vgg8CAwEAAaOB9DCB8TAfBgNVHSMEGDAWgBStvZh6NLQm9/rEJlTv
A73gJMtUGjAdBgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/
BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0gBAowCDAGBgRVHSAAMEQGA1Ud
HwQ9MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9BZGRUcnVzdEV4
dGVybmFsQ0FSb290LmNybDA1BggrBgEFBQcBAQQpMCcwJQYIKwYBBQUHMAGGGWh0
dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wDQYJKoZIhvcNAQEMBQADggEBAJNl9jeD
lQ9ew4IcH9Z35zyKwKoJ8OkLJvHgwmp1ocd5yblSYMgpEg7wrQPWCcR23+WmgZWn
RtqCV6mVksW2jwMibDN3wXsyF24HzloUQToFJBv2FAY7qCUkDrvMKnXduXBBP3zQ
YzYhBx9G/2CkkeFnvN4ffhkUyWNnkepnB2u0j4vAbkN9w6GAbLIevFOFfdyQoaS8
Le9Gclc1Bb+7RrtubTeZtv8jkpHGbkD4jylW6l/VXxRTrPBPYer3IsynVgviuDQf
Jtl7GQVoP7o81DgGotPmjw7jtHFtQELFhLRAlSv0ZaBIefYdgWOWnU914Ph85I6p
0fKtirOMxyHNwu8=
-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----
MIIF6TCCA9GgAwIBAgIQBeTcO5Q4qzuFl8umoZhQ4zANBgkqhkiG9w0BAQwFADCB
iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl
cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV
BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQw
OTEyMDAwMDAwWhcNMjQwOTExMjM1OTU5WjBfMQswCQYDVQQGEwJGUjEOMAwGA1UE
CBMFUGFyaXMxDjAMBgNVBAcTBVBhcmlzMQ4wDAYDVQQKEwVHYW5kaTEgMB4GA1UE
AxMXR2FuZGkgU3RhbmRhcmQgU1NMIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IB
DwAwggEKAoIBAQCUBC2meZV0/9UAPPWu2JSxKXzAjwsLibmCg5duNyj1ohrP0pIL
m6jTh5RzhBCf3DXLwi2SrCG5yzv8QMHBgyHwv/j2nPqcghDA0I5O5Q1MsJFckLSk
QFEW2uSEEi0FXKEfFxkkUap66uEHG4aNAXLy59SDIzme4OFMH2sio7QQZrDtgpbX
bmq08j+1QvzdirWrui0dOnWbMdw+naxb00ENbLAb9Tr1eeohovj0M1JLJC0epJmx
bUi8uBL+cnB89/sCdfSN3tbawKAyGlLfOGsuRTg/PwSWAP2h9KK71RfWJ3wbWFmV
XooS/ZyrgT5SKEhRhWvzkbKGPym1bgNi7tYFAgMBAAGjggF1MIIBcTAfBgNVHSME
GDAWgBRTeb9aqitKz1SA4dibwJ3ysgNmyzAdBgNVHQ4EFgQUs5Cn2MmvTs1hPJ98
rV1/Qf1pMOowDgYDVR0PAQH/BAQDAgGGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYD
VR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMCIGA1UdIAQbMBkwDQYLKwYBBAGy
MQECAhowCAYGZ4EMAQIBMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwudXNl
cnRydXN0LmNvbS9VU0VSVHJ1c3RSU0FDZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNy
bDB2BggrBgEFBQcBAQRqMGgwPwYIKwYBBQUHMAKGM2h0dHA6Ly9jcnQudXNlcnRy
dXN0LmNvbS9VU0VSVHJ1c3RSU0FBZGRUcnVzdENBLmNydDAlBggrBgEFBQcwAYYZ
aHR0cDovL29jc3AudXNlcnRydXN0LmNvbTANBgkqhkiG9w0BAQwFAAOCAgEAWGf9
crJq13xhlhl+2UNG0SZ9yFP6ZrBrLafTqlb3OojQO3LJUP33WbKqaPWMcwO7lWUX
zi8c3ZgTopHJ7qFAbjyY1lzzsiI8Le4bpOHeICQW8owRc5E69vrOJAKHypPstLbI
FhfFcvwnQPYT/pOmnVHvPCvYd1ebjGU6NSU2t7WKY28HJ5OxYI2A25bUeo8tqxyI
yW5+1mUfr13KFj8oRtygNeX56eXVlogMT8a3d2dIhCe2H7Bo26y/d7CQuKLJHDJd
ArolQ4FCR7vY4Y8MDEZf7kYzawMUgtN+zY+vkNaOJH1AQrRqahfGlZfh8jjNp+20
J0CT33KpuMZmYzc4ZCIwojvxuch7yPspOqsactIGEk72gtQjbz7Dk+XYtsDe3CMW
1hMwt6CaDixVBgBwAc/qOR2A24j3pSC4W/0xJmmPLQphgzpHphNULB7j7UTKvGof
KA5R2d4On3XNDgOVyvnFqSot/kGkoUeuDcL5OWYzSlvhhChZbH2UF3bkRYKtcCD9
0m9jqNf6oDP6N8v3smWe2lBvP+Sn845dWDKXcCMu5/3EFZucJ48y7RetWIExKREa
m9T8bJUox04FB6b9HbwZ4ui3uRGKLXASUoWNjDNKD/yZkuBjcNqllEdjB+dYxzFf
BT02Vf6Dsuimrdfp5gJ0iHRc2jTbkNJtUQoj1iM=
-----END CERTIFICATE-----