Skip to content
Snippets Groups Projects
README.md 1.92 KiB
Newer Older
HARRY Guillaume's avatar
HARRY Guillaume committed
# SSHAM Server

Infrastructure de Gestion des Certificats SSH, server side

## Prérequis 

- Disposer de `python3` et des environnements virtuels `python3-venv`
- Disposer de `vault`: procédure d'installation https://www.vaultproject.io/downloads 

## Règles de développement

Voir [CONTRIBUTING.md](CONTRIBUTING.md)

## Installation

1. Créer un virtual env python : `python3 -m venv /path/to/new/virtual/environment`
2. Activer l'environnement
Sous Windows `\path\to\new\virtual\environment\Script\activate`<br>
Sous Linux `source /path/to/new/virtual/environment/bin/activate`
3. Installer et/ou mettre à jour les dépendances
```
(env) python -m pip upgrade pip
(env) python -m pip install --upgrade -r requirements.txt
```

## Configuration

### Application

1. Configurer le fichier `config.py` au besoin (optionnel)
2. Configurer le fichier `ssham/vault/ssham.hcl` - a minima la clé `path`

### Rôles

Il est possible de configurer des rôles supplémentaires à l'initalisation de l'application :
1. Ajouter une entrée dans `ssham/vaults/roles`
2. Configurer le rôle dans la variable `VAULT_ROLES` du `config.py`

## Initialisation

1. Lors de la première installation il est nécessaire de lancer le service vault : `vault server -config=/path/to/ssham/vault/ssham.hcl`.
2. Ensuite configurer l'application : 
Dans l'environnement python configuré et dans le répertoire racine de SSHAM :
```
(env) set FLASK_APP=run.py
(env) flask ssham-install
```
3. Procéder au sequestre de ces clés qui seront demandées au démarrage de l'application.
4. Stopper le service vault à présent configuré

## Lancement de SSHAM Server

1. Lancer le service vault : `vault server -config=/path/to/ssham/vault/ssham.hcl`
2. Lancer SSHAM Server :
```
(env) set FLASK_APP=run.py
(env) flask run
.....
Provide an unseal key (hidden) : XXXXXXXXXXXXXXXXXXXX (obtenues à l'étape d'initalisation)
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
```