OpenBao - Installation
1. Description
2. Informations
2.1. openbao1.home.lab
| Caractéristiques | |
|---|---|
| RAM | 2 Go |
| CPU | 2 coeurs |
| Disque | 10 Go |
| Hostname | openbao1.home.lab |
| IP admin | 192.168.50.32 |
2.2. Fichier terraform
module "openbao1" {
# module proxmox
source = "../../modules/proxmox"
# proxmox
pm_api_token = var.pm_api_token
# tofu
vm_hostname = "openbao1"
vm_domain = "home.lab"
vm_tags = [ "almalinux9" ]
# cloud-init
vm_ipv4_address = "192.168.50.32/24"
vm_ipv4_gateway = "192.168.50.201"
# hardware
vm_memory = 2048
}
3. Installation
3.1. Télécharger openbao
- Télécharger la dernière version de
openbaodepuis la page : https://openbao.org/downloads/
$ wget https://github.com/openbao/openbao/releases/download/v2.2.2/bao_2.2.2_linux_amd64.rpm
$ sudo yum install bao_2.2.2_linux_amd64.rpm
Dernière vérification de l’expiration des métadonnées effectuée il y a 0:12:18 le sam. 07 juin 2025 18:44:30.
Dépendances résolues.
=============================================================================================================================================================================================================================================
Paquet Architecture Version Dépôt Taille
=============================================================================================================================================================================================================================================
Installation:
bao x86_64 2.2.2-1 @commandline 67 M
Résumé de la transaction
=============================================================================================================================================================================================================================================
Installer 1 Paquet
Taille totale : 67 M
Taille des paquets installés : 163 M
Voulez-vous continuer ? [o/N] : y
Téléchargement des paquets :
Test de la transaction
La vérification de la transaction a réussi.
Lancement de la transaction de test
Transaction de test réussie.
Exécution de la transaction
Préparation : 1/1
Exécution du scriptlet: bao-2.2.2-1.x86_64 1/1
Installation : bao-2.2.2-1.x86_64 1/1
Exécution du scriptlet: bao-2.2.2-1.x86_64 1/1
Generating OpenBao TLS key and self-signed certificate...
..+......+..+...+....+...+..+.+..+++++++++++++++++++++++++++++++++++++++++++++*.........+....+.....+...+++++++++++++++++++++++++++++++++++++++++++++*....+.................+.+..............+......+.+..............+.+.........+.....+..........+.....+.........+.......+...........+...................+...+.....+.......+...+............+.....+.....................+........................+.+.....+.........+...+..........+......+...............+..+............+.............+..+..........+........+...............+...+....+..+.............+.....+.......+......+...+..+..........+...+......+........+...+...................+.....+................+...+..+.......+...........+.........+...+..........+.........+........+...+...+.....................+....+.........+..+......+.......+...............+.................+.........+.+.........+...........+.+........+.+...+..+.............+...+...+..+.......+..+......+...+.........+......+.+...+......+............+...+..+.......+..+...+......+++++
..+......+........+.......+.....+++++++++++++++++++++++++++++++++++++++++++++*....+.......+......+..+++++++++++++++++++++++++++++++++++++++++++++*........+.+..............+....+..............+................+............+...............+..+......+.+......+..+.+++++
-----
OpenBao TLS key and self-signed certificate have been generated in '/opt/openbao/tls'.
Vérification de : bao-2.2.2-1.x86_64 1/1
Installé:
bao-2.2.2-1.x86_64
Terminé !
- vérifier l'installation de
openbao
$ bao -v
OpenBao v2.2.2 (8c0322c0423231836a1432fdad29dc2e99640da9), built 2025-05-29T19:40:40Z
- vérifier que le swap est désactivé pour
openbao
$ systemctl cat openbao | grep -i swap
MemorySwapMax=0
3.2. Générer un certificat
- Générer une clé privée et certificat pour
openbao
$ cd /opt/openbao/tls
$ sudo ipa-getcert request \
-f /etc/pki/tls/certs/openbao1.home.lab.pem \
-k /etc/pki/tls/private/openbao1.home.lab.key \
-K host/openbao1.home.lab \
-N "CN=openbao1.home.lab" \
-D openbao1.home.lab \
-D openbao1
- Changer les permissions des fichiers
$ sudo chown openbao:openbao /etc/pki/tls/private/openbao1.home.lab.key
$ sudo chmod 0600 /etc/pki/tls/private/openbao1.home.lab.key
$ sudo chown openbao:openbao /etc/pki/tls/certs/openbao1.home.lab.pem
$ sudo chmod 0600 /etc/pki/tls/certs/openbao1.home.lab.pem
3.3. Configurer openbao
- Modifier le fichier
/etc/openbao/openbao.hcl
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0
# Full configuration options can be found at https://github.com/openbao/openbao/tree/main/website/content/docs/configuration
# User Interface
ui = true
# Storage
storage "file" {
path = "/opt/openbao/data"
}
# API
api_addr = "https://openbao1.home.lab:8200"
# Activate logging completed requests
# https://openbao.org/docs/configuration/log-requests-level/
log_requests_level = "debug"
log_level = "debug"
# HTTPS listener
listener "tcp" {
address = "0.0.0.0:8200"
tls_cert_file = "/etc/pki/tls/certs/openbao1.home.lab.pem"
tls_key_file = "/etc/pki/tls/private/openbao1.home.lab.key"
# https://go.dev/src/crypto/tls/cipher_suites.go
# Force only one cipher suite for TLS 1.3
tls_min_version = "tls13"
tls_max_version = "tls13"
tls_cipher_suites = "TLS_AES_256_GCM_SHA384"
}
# Telemetry
# https://openbao.org/docs/internals/telemetry/enable-telemetry/
telemetry {
usage_gauge_period = "10m"
maximum_gauge_cardinality = 500
disable_hostname = false
enable_hostname_label = false
lease_metrics_epsilon = "1h"
num_lease_metrics_buckets = 168
add_lease_metrics_namespace_labels = false
filter_default = true
#statsite_address = "127.0.0.1:8125"
}
3.4. Configurer le firewall firewalld
$ sudo firewall-cmd --permanent --add-port=8200/tcp
$ sudo firewall-cmd --reload
3.5. Activer le service openbao
$ sudo systemctl enable --now openbao
3.6. Activer les logs d'audit pour openbao
$ sudo mkdir /var/log/openbao
$ sudo chown openbao:openbao /var/log/openbao
$ sudo touch /var/log/openbao/audit.log
$ sudo chown openbao:openbao /var/log/openbao/audit/log
$ bao audit enable file file_path=/var/log/openbao/audit.log
Success! Enabled the file audit device at: file/
3.7. Modifier les variables d'environnement
- Ajouter la ligne suivante dans le fichier
~/.bashrc
# BAO API address
export BAO_ADDR=https://openbao1.home.lab:8200
# BAO autocompletion
complete -C /usr/bin/bao bao
- Recharger les variables d'environnement
$ source ~/.bashrc
4. Génération des clés initiales du coffre
$ bao operator init
Unseal Key 1: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Unseal Key 2: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Unseal Key 3: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Unseal Key 4: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Unseal Key 5: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Initial Root Token: s.YYYYYYYYYYYYYYYYYYYYYYYY
Vault initialized with 5 key shares and a key threshold of 3. Please securely
distribute the key shares printed above. When the Vault is re-sealed,
restarted, or stopped, you must supply at least 3 of these keys to unseal it
before it can start servicing requests.
Vault does not store the generated root key. Without at least 3 keys to
reconstruct the root key, Vault will remain permanently sealed!
It is possible to generate new unseal keys, provided you have a quorum of
existing unseal keys shares. See "bao operator rekey" for more information.
- Gardez précieusement ces clés !!
5. Déverrouiller le coffre
- Ouvrir l'URL https://openbao1.home.lab:8200

- Il faut saisir au moins 3 clés dé déverrouillage et rentrer le token root

6. Configuration de l'authentification LDAP
6.1. Créer un compte de binding LDAP
- Sur l'annuaire FreeIPA, créer un compte dédié
ldap_openbaopour réaliser le binding LDAP
6.2. Configurer LDAP en ligne de commande
- S'authentifier avec le token root
$ bao login
- Activer le module LDAP
$ bao auth enable ldap
- Configurer le module LDAP en ligne de commande
$ bao write auth/ldap/config \
url="ldaps://ipa1.home.lab:636" \
starttls=false \
insecure_tls=false \
binddn="uid=ldap_openbao,cn=users,cn=accounts,dc=home,dc=lab" \
bindpass='My$ecrt3tP4ss' \
userdn="cn=users,cn=accounts,dc=home,dc=lab" \
userattr="uid" \
deny_null_bind=true \
anonymous_group_search=false \
groupfilter="(objectClass=GroupOfNames)" \
groupdn="cn=groups,cn=accounts,dc=home,dc=lab" \
groupattr="memberOf"
Success! Data written to: auth/ldap/config
- Mapper le groupe LDAP 'admins' à la policy par défaut
$ bao write auth/ldap/groups/admins policies=default
Success! Data written to: auth/ldap/groups/admins
- Tester une authentification LDAP, avec l'utilisateur
tz
$ bao login -method=ldap username=tz
Success! You are now authenticated. The token information displayed below is
already stored in the token helper. You do NOT need to run "bao login" again.
Future OpenBao requests will automatically use this token.
6.3. Configurer LDAP en Interface graphique
- Vous pouvez configurer ou vérifier la configuration LDAP via l'interface graphique de
openbao





- Tester la connexion LDAP sur l'interface graphique
