Skip to content
Snippets Groups Projects
README.md 2.63 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` 
- (optionnel) Installer les environnements virtuels `python3-venv` : `pip install -U pip` ; `pip install -U virtualenv`
- 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`
HARRY Guillaume's avatar
HARRY Guillaume committed
3. Si un proxy est nécessaire pour télécharger les librairies, définir les variables d'environnement nécessaire
Sous Linux `export HTTP_PROXY=... && export HTTPS_PROXY= ...
4. Installer et/ou mettre à jour les dépendances
HARRY Guillaume's avatar
HARRY Guillaume committed
(env) python -m pip install --upgrade pip
(env) python -m pip install --upgrade -r requirements.txt
```

## Configuration

### Application

HARRY Guillaume's avatar
HARRY Guillaume committed
1. Configurer le fichier `config.py` au besoin (optionnel, copie à partir de config.py.sample)
2. Configurer le fichier `ssham/vault/ssham.hcl` - a minima la clé `path` ou `/etc/vault.d/vault.hcl` si installation depuis RPM

### Rôles

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

## Initialisation

HARRY Guillaume's avatar
HARRY Guillaume committed
1. Lors de la première installation il est nécessaire de lancer le service vault : <br>
Si installation via RPM, lancer la commande `systemctl start vault`<br>
Si installation à partir des sources lancer la commande `vault server -config=/path/to/ssham/vault/ssham.hcl`.
2. Ensuite configurer l'application : <br>
ATTENTION : si vous avez des variables d'environnement pour l'utilisation de proxy, il est nécessaire de les supprimer avant, sinon les connexions aux APIs du vault ne seront pas possible.<br>
Dans l'environnement python configuré et dans le répertoire racine de SSHAM :
```
HARRY Guillaume's avatar
HARRY Guillaume committed
(env) set FLASK_APP=run.py # Windows 
(env) export FLASK_APP=run.py  # Linux
(env) flask run
```
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)
```