Option domaine public : Let's Encrypt (poc_tls) et accès réservé par IP (poc_allowed_sources)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
de23e19910
commit
0e5426b7c3
4 files changed
+43
-2
No files matched your search
@@ -229,6 +229,25 @@ La SQLi de Juice Shop renvoie alors la liste complète des produits (200) au lie
|
||||
- **Mode détection seule** : `MODSECURITY_SEC_RULE_ENGINE: "DetectionOnly"` sur un site, pour observer avant de bloquer, comme on le ferait en production.
|
||||
- **Journaux** : `docker logs -f bunkerweb` sur `bw-waf`, et l'audit ModSecurity dans `/var/log/bunkerweb/modsec_audit.log` du conteneur.
|
||||
|
||||
## Exposer le PoC sur un domaine public (Let's Encrypt)
|
||||
|
||||
Par défaut tout est en `bwpoc.internal` avec des certificats auto-signés. Pour un vrai domaine (exemple : `lab.naoned.net`) :
|
||||
|
||||
1. DNS : `www`, `shop`, `api` et `bwui` du domaine pointent sur l'IP publique NATée vers le WAF.
|
||||
2. Pare-feu : 80 et 443 (TCP, plus 443/UDP pour HTTP/3) vers l'IP du WAF ; réservation DHCP sur la MAC du WAF pour que l'IP ne bouge pas.
|
||||
3. Variables (inventaire ou `-e`) :
|
||||
|
||||
```yaml
|
||||
poc_domain: lab.naoned.net
|
||||
poc_tls: letsencrypt
|
||||
poc_letsencrypt_email: vous@example.org
|
||||
poc_allowed_sources: ["203.0.113.10"] # IP autorisées sur les sites de poc_restricted_sites (bwui par défaut)
|
||||
```
|
||||
|
||||
4. `make waf client tests`.
|
||||
|
||||
La restriction par IP est une règle ModSecurity par site (id 10002) qui laisse passer le challenge ACME. Le client de test est toujours autorisé. Ajoutez `shop` à `poc_restricted_sites` pour ne pas exposer Juice Shop à tout Internet.
|
||||
|
||||
## Exploitation
|
||||
|
||||
```bash
|
||||
|
||||
Reference in new issue
Block a user