securite:vault
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
securite:vault [2018/04/04 02:51] – [Créer des policies] sgariepy | securite:vault [2022/04/10 22:35] (Version actuelle) – [Démarrage] sgariepy | ||
---|---|---|---|
Ligne 2: | Ligne 2: | ||
* [[https:// | * [[https:// | ||
+ | * [[https:// | ||
====== Installation ====== | ====== Installation ====== | ||
Ligne 64: | Ligne 65: | ||
Ensuite, on peut faire: | Ensuite, on peut faire: | ||
- | $ vault init | + | $ vault operator |
| | ||
Il faut noter les clés, idéalement à des endroits différents et elles-mêmes encryptées. | Il faut noter les clés, idéalement à des endroits différents et elles-mêmes encryptées. | ||
Ligne 71: | Ligne 72: | ||
Après un '' | Après un '' | ||
- | $ vault unseal [unsealkey] | + | $ vault operator |
Par défaut, il faut entrer trois clés //unseal// différentes sur les cinq qui ont été donnés lors du '' | Par défaut, il faut entrer trois clés //unseal// différentes sur les cinq qui ont été donnés lors du '' | ||
Ligne 86: | Ligne 87: | ||
Les données sont persistées et si le serveur redémarre, un init ne sera pas nécessaire. | Les données sont persistées et si le serveur redémarre, un init ne sera pas nécessaire. | ||
+ | |||
+ | |||
+ | |||
+ | ===== Installation de Vault avec systemctl ===== | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | sudo useradd -r -d / | ||
+ | sudo install -o vault -g vault -m 750 -d / | ||
+ | sudo mkdir /etc/vault | ||
+ | sudo nano / | ||
+ | | ||
+ | < | ||
+ | storage " | ||
+ | path = "/ | ||
+ | } | ||
+ | |||
+ | listener " | ||
+ | address = " | ||
+ | tls_disable = 0 | ||
+ | tls_cert_file = "/ | ||
+ | tls_key_file = "/ | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | sudo chown vault:vault / | ||
+ | sudo chmod 640 / | ||
+ | |||
+ | |||
+ | sudo nano / | ||
+ | |||
+ | |||
+ | < | ||
+ | [Unit] | ||
+ | Description=a tool for managing secrets | ||
+ | Documentation=https:// | ||
+ | After=network.target | ||
+ | ConditionFileNotEmpty=/ | ||
+ | |||
+ | [Service] | ||
+ | User=vault | ||
+ | Group=vault | ||
+ | ExecStart=/ | ||
+ | ExecReload=/ | ||
+ | CapabilityBoundingSet=CAP_SYSLOG CAP_IPC_LOCK | ||
+ | AmbientCapabilities=CAP_IPC_LOCK | ||
+ | Capabilities=CAP_IPC_LOCK+ep | ||
+ | SecureBits=keep-caps | ||
+ | NoNewPrivileges=yes | ||
+ | KillSignal=SIGINT | ||
+ | |||
+ | [Install] | ||
+ | WantedBy=multi-user.target | ||
+ | </ | ||
+ | |||
+ | |||
+ | Create a group for key access: | ||
+ | |||
+ | |||
+ | sudo groupadd pki | ||
+ | |||
+ | |||
+ | sudo chgrp pki / | ||
+ | sudo chmod g+rx / | ||
+ | sudo gpasswd -a vault pki | ||
+ | |||
+ | |||
+ | |||
+ | ===== Démarrage ===== | ||
+ | |||
+ | |||
+ | $ sudo systemctl start vault | ||
+ | $ sudo systemctl status vault | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | [[https:// | ||
+ | |||
+ | |||
+ | |||
+ | ====== Migration de Vault ====== | ||
+ | |||
+ | |||
+ | |||
+ | Cette procédure prend en compte Vault 0.11.0 et Ubuntu 18.04. | ||
+ | |||
+ | |||
+ | ===== Sur la machine source ===== | ||
+ | |||
+ | * Compresser les données de ''/ | ||
+ | * Compresser les données de ''/ | ||
+ | * Copier le fichier ''/ | ||
+ | * Copier le fichier de configuration d' | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== Sur la machine cible ===== | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | Voir la [[https:// | ||
+ | |||
+ | |||
+ | $ wget https:// | ||
+ | |||
+ | Décompresser avec '' | ||
+ | |||
+ | |||
+ | $ sudo mv vault / | ||
+ | |||
+ | Ajouter le flag suivant pour que Vault puisse verrouiller la mémoire: | ||
+ | |||
+ | $ sudo setcap cap_ipc_lock=+ep / | ||
+ | |||
+ | |||
+ | Pour vérifier que Vault fonctionne jusqu' | ||
+ | |||
+ | $ vault --version | ||
+ | |||
+ | |||
+ | ==== Configuration ==== | ||
+ | |||
+ | Créer un utilisateur Vault: | ||
+ | |||
+ | |||
+ | $ sudo useradd -r -d / | ||
+ | $ sudo install -o vault -g vault -m 750 -d / | ||
+ | |||
+ | |||
+ | Décompresser les fichiers tar aux endroits appropriés et donner les permissions correctes: | ||
+ | |||
+ | $ sudo chown vault:vault / | ||
+ | | ||
+ | | ||
+ | Ensuite, créer le fichier de configuration de systemctl: | ||
+ | |||
+ | $ sudo nano / | ||
+ | |||
+ | Inclure ce contenu: | ||
+ | |||
+ | < | ||
+ | [Unit] | ||
+ | Description=a tool for managing secrets | ||
+ | Documentation=https:// | ||
+ | After=network.target | ||
+ | ConditionFileNotEmpty=/ | ||
+ | |||
+ | [Service] | ||
+ | User=vault | ||
+ | Group=vault | ||
+ | ExecStart=/ | ||
+ | ExecReload=/ | ||
+ | CapabilityBoundingSet=CAP_SYSLOG CAP_IPC_LOCK | ||
+ | AmbientCapabilities=CAP_IPC_LOCK | ||
+ | Capabilities=CAP_IPC_LOCK+ep | ||
+ | SecureBits=keep-caps | ||
+ | NoNewPrivileges=yes | ||
+ | KillSignal=SIGINT | ||
+ | |||
+ | [Install] | ||
+ | WantedBy=multi-user.target | ||
+ | </ | ||
+ | |||
+ | Par défaut, les certificats et les clés sont accessible que par '' | ||
+ | |||
+ | |||
+ | $ sudo groupadd pki | ||
+ | $ sudo chgrp pki / | ||
+ | $ sudo chmod g+rx / | ||
+ | $ sudo gpasswd -a vault pki | ||
+ | |||
+ | |||
+ | Copier le certificat root: | ||
+ | |||
+ | $ sudo mv vault-root.crt / | ||
+ | $ sudo update-ca-certificates | ||
+ | |||
+ | Démarrer Vault: | ||
+ | |||
+ | $ sudo systemctl start vault | ||
+ | |||
+ | Unseal: | ||
+ | |||
+ | $ vault operator unseal < | ||
+ | $ vault operator unseal < | ||
+ | |||
+ | |||
+ | ==== Apache ==== | ||
+ | |||
+ | |||
+ | * Copier le fichier conf dans ''/ | ||
+ | * Créer le répertoire ''/ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
====== Gestion des secrets ====== | ====== Gestion des secrets ====== | ||
Ligne 92: | Ligne 299: | ||
$ vault mount kv | $ vault mount kv | ||
+ | $ vault secrets enable kv //nouvelle commande | ||
+ | |||
Ligne 122: | Ligne 331: | ||
- | $ vault token-create [-policy=" | + | $ vault token create [-policy=" |
Key Value | Key Value | ||
--- ----- | --- ----- | ||
Ligne 134: | Ligne 343: | ||
S' | S' | ||
- | $ vault auth c4a0d45f-4a16-3e59-d5a0-c70e0efb2d23 | + | $ vault login c4a0d45f-4a16-3e59-d5a0-c70e0efb2d23 |
- | $ vault token-revoke c4a0d45f-4a16-3e59-d5a0-c70e0efb2d23 | + | $ vault token revoke c4a0d45f-4a16-3e59-d5a0-c70e0efb2d23 |
Ligne 160: | Ligne 369: | ||
Autre façon: | Autre façon: | ||
- | $ vault policy-write < | + | $ vault policy write < |
Créer un token avec la policy: | Créer un token avec la policy: | ||
- | $ vault token-create -policy=" | + | $ vault token create -policy=" |
Ligne 170: | Ligne 379: | ||
$ vault policy read [policyname] | $ vault policy read [policyname] | ||
+ | |||
+ | Lister des policies: | ||
+ | |||
+ | $ vault policy list | ||
===== Créer des rôles ===== | ===== Créer des rôles ===== | ||
Ligne 178: | Ligne 391: | ||
====== Audit ====== | ====== Audit ====== | ||
+ | |||
+ | De base: | ||
+ | |||
+ | $ vault audit enable file file_path=/ | ||
====== Restart ====== | ====== Restart ====== | ||
Ligne 184: | Ligne 401: | ||
$ export VAULT_ADDR=https:// | $ export VAULT_ADDR=https:// | ||
+ | $ screen -S consul | ||
$ consul agent -server -bootstrap-expect 1 -data-dir /tmp/consul -bind 127.0.0.1 | $ consul agent -server -bootstrap-expect 1 -data-dir /tmp/consul -bind 127.0.0.1 | ||
+ | [ctrl-a d] | ||
+ | $ screen -S vault | ||
$ vault server --config=vault.file.hcl | $ vault server --config=vault.file.hcl | ||
+ | [ctrl-a d] | ||
$ vault init | $ vault init | ||
- | $ vault unseal <key> | + | $ vault operator |
$ vault auth < | $ vault auth < | ||
$ vault mount kv | $ vault mount kv |
securite/vault.1522803080.txt.gz · Dernière modification : 2022/02/02 00:43 (modification externe)