84 lines
2 KiB
Markdown
84 lines
2 KiB
Markdown
# ERPLibre – Secure Reference Deployment
|
||
|
||
## Sécurité numérique responsable
|
||
|
||
Ce dépôt constitue un **modèle de référence** applicable à toute instance ERPLibre (Odoo) **conteneurisée**, exposée publiquement via **Nginx sur l’hôte**, avec **PostgreSQL conteneurisé**.
|
||
|
||
Exemple d’implémentation (illustratif) : **https://www.rencontres-linux.quebec**
|
||
|
||
---
|
||
|
||
## Architecture cible
|
||
|
||
```
|
||
Internet
|
||
↓
|
||
nftables (policy DROP + mitigation ASN TTL légère)
|
||
↓
|
||
Nginx (hôte)
|
||
↓
|
||
Réseau Docker dédié (erplibre_net)
|
||
↓
|
||
Odoo (conteneur, pas de port publié)
|
||
↓
|
||
PostgreSQL (conteneur, pas de port publié)
|
||
```
|
||
|
||
---
|
||
|
||
## Principes
|
||
|
||
- **Surface minimale** : seuls ports **80/443** exposés.
|
||
- **Segmentation Docker** : réseau dédié par stack.
|
||
- **Pare-feu moderne** : nftables (DROP par défaut), règles explicites.
|
||
- **Mitigation proportionnée** : Fail2ban (24h) + ASN TTL (7 jours).
|
||
- **WAF léger** : ModSecurity + OWASP CRS (niveau 1), approche prudente.
|
||
|
||
---
|
||
|
||
## Démarrage rapide
|
||
|
||
1. Créer le réseau Docker dédié :
|
||
```bash
|
||
docker network create erplibre_net
|
||
```
|
||
|
||
2. Déployer la stack (exemple) :
|
||
```bash
|
||
cd docker
|
||
docker compose up -d
|
||
```
|
||
|
||
3. Installer / activer Nginx + config du vhost :
|
||
- `nginx/erplibre.conf` (exemple)
|
||
- Certificat TLS via Certbot (hors du périmètre de ce dépôt)
|
||
|
||
4. Activer le pare-feu nftables :
|
||
- `nftables/edge.nft`
|
||
|
||
5. Installer Fail2ban :
|
||
- `fail2ban/jail.local` (+ filtres au besoin)
|
||
|
||
6. Activer la mitigation ASN TTL :
|
||
- `asn-mitigation/*` (script + systemd timer)
|
||
|
||
Voir : `docs/DEPLOYMENT-STEPS.md`
|
||
|
||
---
|
||
|
||
## Contenu du dépôt
|
||
|
||
- `docker/` : stack Docker (Odoo + PostgreSQL) sur réseau dédié
|
||
- `nginx/` : vhost Nginx durci (exemple)
|
||
- `nftables/` : pare-feu minimal (DROP + ASN TTL)
|
||
- `fail2ban/` : jails de base
|
||
- `asn-mitigation/` : script + unit/timer systemd
|
||
- `logrotate/` : rotation des logs Nginx
|
||
- `ansible/` : playbook minimal (mode A) pour appliquer ces artefacts
|
||
- `diagram/` : schéma (SVG)
|
||
|
||
---
|
||
|
||
## Licence
|
||
|
||
MIT (voir `LICENSE`).
|