Outils pour utilisateurs

Outils du site


securite:vault

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
securite:vault [2018/05/25 02:41] sgariepysecurite:vault [2022/04/10 22:35] (Version actuelle) – [Démarrage] sgariepy
Ligne 87: 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 /var/lib/vault -s /bin/nologin vault
 +  sudo install -o vault -g vault -m 750 -d /var/lib/vault
 +  sudo mkdir /etc/vault
 +  sudo nano /etc/vault.file.hcl
 +  
 +<code>
 +storage "file" {
 +  path = "/var/lib/vault/data"
 +}
 +
 +listener "tcp" {
 +  address = "127.0.0.1:8200"
 +  tls_disable = 0
 +  tls_cert_file = "/var/lib/vault/vault.crt"
 +  tls_key_file = "/var/lib/vault/vault.key"
 +}
 +</code>
 +
 +
 +
 +
 +
 +  sudo chown vault:vault /etc/vault/vault.file.hcl
 +  sudo chmod 640 /etc/vault/vault.file.hcl
 +
 +
 +  sudo nano /etc/systemd/system/vault.service 
 +
 +
 +<code>
 +[Unit]
 +Description=a tool for managing secrets
 +Documentation=https://vaultproject.io/docs/
 +After=network.target
 +ConditionFileNotEmpty=/etc/vault/vault.file.hcl
 +
 +[Service]
 +User=vault
 +Group=vault
 +ExecStart=/usr/local/bin/vault server -config=/etc/vault/vault.file.hcl
 +ExecReload=/usr/local/bin/kill --signal HUP $MAINPID
 +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
 +</code>
 +
 +
 +Create a group for key access:
 +
 +
 +  sudo groupadd pki
 +
 +
 +  sudo chgrp pki /etc/vault/pki
 +  sudo chmod g+rx /etc/vault/pki
 +  sudo gpasswd -a vault pki
 +
 +
 +
 +===== Démarrage =====
 +
 +
 +  $ sudo systemctl start vault
 +  $ sudo systemctl status vault
 +
 +
 +
 +
 +[[https://www.digitalocean.com/community/tutorials/how-to-securely-manage-secrets-with-hashicorp-vault-on-ubuntu-16-04|Source]]
 +
 +
 +
 +====== 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 ''/var/lib/vault/data''.
 +  * Compresser les données de ''/etc/vault''.
 +  * Copier le fichier ''/usr/local/share/ca-certificates/vault-root.crt''.
 +  * Copier le fichier de configuration d'Apache.
 +
 +
 +
 +
 +===== Sur la machine cible =====
 +
 +
 +
 +
 +
 +Voir la [[https://www.vaultproject.io/downloads.html|page de téléchargement]] pour la dernière version et télécharger le fichier Vault:
 +
 +
 +  $ wget https://releases.hashicorp.com/vault/0.11.0/vault_0.11.0_linux_amd64.zip
 +
 +Décompresser avec ''unzip'' (''apt install unzip'' s'il n'y est pas) et déplacer ''vault'':
 +
 +
 +  $ sudo mv vault /usr/local/bin/
 +
 +Ajouter le flag suivant pour que Vault puisse verrouiller la mémoire: 
 +
 +  $ sudo setcap cap_ipc_lock=+ep /usr/local/bin/vault
 +
 +
 +Pour vérifier que Vault fonctionne jusqu'à présent:
 +
 +  $ vault --version
 +
 +
 +==== Configuration ====
 +
 +Créer un utilisateur Vault:
 +
 +
 +  $ sudo useradd -r -d /var/lib/vault -s /bin/nologin vault
 +  $ sudo install -o vault -g vault -m 750 -d /var/lib/vault
 +
 +
 +Décompresser les fichiers tar aux endroits appropriés et donner les permissions correctes:
 +
 +  $ sudo chown vault:vault /etc/vault/vault.hcl
 +  
 +  
 +Ensuite, créer le fichier de configuration de systemctl:
 +
 +  $ sudo nano /etc/systemd/system/vault.service
 +
 +Inclure ce contenu:
 +
 +<code>
 +[Unit]
 +Description=a tool for managing secrets
 +Documentation=https://vaultproject.io/docs/
 +After=network.target
 +ConditionFileNotEmpty=/etc/vault/vault.file.hcl
 +
 +[Service]
 +User=vault
 +Group=vault
 +ExecStart=/usr/local/bin/vault server -config=/etc/vault/vault.file.hcl
 +ExecReload=/usr/local/bin/kill --signal HUP $MAINPID
 +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
 +</code>
 +
 +Par défaut, les certificats et les clés sont accessible que par ''root'' Pour que ces certificats soit accessible par Vault, on crée un groupe ''pki'' qui permettra de le faire:
 +
 +
 +  $ sudo groupadd pki
 +  $ sudo chgrp pki /etc/vault/pki
 +  $ sudo chmod g+rx /etc/vault/pki
 +  $ sudo gpasswd -a vault pki
 +
 +
 +Copier le certificat root:
 +
 +  $ sudo mv vault-root.crt /usr/local/share/ca-certificates
 +  $ sudo update-ca-certificates
 +
 +Démarrer Vault:
 +
 +  $ sudo systemctl start vault
 +
 +Unseal:
 +
 +  $ vault operator unseal <unseal-key-1>
 +  $ vault operator unseal <unseal-key-n>
 +
 +
 +==== Apache ====
 +
 +
 +  * Copier le fichier conf dans ''/etc/apache2/sites-available''.
 +  * Créer le répertoire ''/var/log/apache2/vault.sgy.io'' (''chown root:root'' it)
 +
 +
 +
 +
 +
  
 ====== Gestion des secrets ====== ====== Gestion des secrets ======
Ligne 93: Ligne 299:
  
   $ vault mount kv   $ vault mount kv
 +  $ vault secrets enable kv //nouvelle commande
 +
  
  
Ligne 123: Ligne 331:
  
  
-  $ vault token-create [-policy="policyname"]+  $ vault token create [-policy="policyname"]
   Key            Value   Key            Value
   ---            -----   ---            -----
Ligne 161: Ligne 369:
 Autre façon: Autre façon:
  
-  $ vault policy-write <policy-name> ./policy.hcl+  $ vault policy write <policy-name> ./policy.hcl
  
 Créer un token avec la policy: Créer un token avec la policy:
Ligne 183: Ligne 391:
 ====== Audit ====== ====== Audit ======
  
 +
 +De base:
 +
 +  $ vault audit enable file file_path=/var/log/vault_audit.log
 ====== Restart ====== ====== Restart ======
  
securite/vault.1527208869.txt.gz · Dernière modification : 2022/02/02 00:43 (modification externe)