Domaine bwpoc.vlab.bzh derrière le Traefik de vlab.bzh, correctif de la règle d'accès réservé (chaîne ModSecurity)
Tests : 26 OK, 0 KO. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
17d9ff4b29
commit
04c8081215
3 files changed
+5
-5
No files matched your search
@@ -256,7 +256,7 @@ Si 80/443 sont déjà pris par un Traefik, il termine le TLS public (ses propres
|
|||||||
http:
|
http:
|
||||||
routers:
|
routers:
|
||||||
bwpoc:
|
bwpoc:
|
||||||
rule: "Host(`www.lab.naoned.net`) || Host(`shop.lab.naoned.net`) || Host(`api.lab.naoned.net`) || Host(`bwui.lab.naoned.net`)"
|
rule: "Host(`www.bwpoc.vlab.bzh`) || Host(`shop.bwpoc.vlab.bzh`) || Host(`api.bwpoc.vlab.bzh`) || Host(`bwui.bwpoc.vlab.bzh`)"
|
||||||
entryPoints: [websecure]
|
entryPoints: [websecure]
|
||||||
service: bwpoc
|
service: bwpoc
|
||||||
tls: { certResolver: letsencrypt }
|
tls: { certResolver: letsencrypt }
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
# --- Domaine de test -------------------------------------------------
|
# --- Domaine de test -------------------------------------------------
|
||||||
# Les sites seront www.<domaine>, shop.<domaine>, api.<domaine>, bwui.<domaine>
|
# Les sites seront www.<domaine>, shop.<domaine>, api.<domaine>, bwui.<domaine>
|
||||||
# ".internal" est réservé par l'ICANN pour l'usage privé : pas de collision possible.
|
# ".internal" est réservé par l'ICANN pour l'usage privé : pas de collision possible.
|
||||||
poc_domain: bwpoc.internal # A ADAPTER si vous avez une zone DNS de labo
|
poc_domain: bwpoc.vlab.bzh # A ADAPTER : bwpoc.internal pour un labo fermé (wildcard *.vlab.bzh -> Traefik)
|
||||||
|
|
||||||
# --- TLS ----------------------------------------------------------------
|
# --- TLS ----------------------------------------------------------------
|
||||||
# selfsigned : certificats auto-signés (labo fermé, domaine non public)
|
# selfsigned : certificats auto-signés (labo fermé, domaine non public)
|
||||||
@@ -19,13 +19,13 @@ poc_letsencrypt_staging: false # true pour tester sans consommer les quot
|
|||||||
# Reverse proxy en frontal (Traefik, HAProxy...) qui termine le TLS public et relaie vers
|
# Reverse proxy en frontal (Traefik, HAProxy...) qui termine le TLS public et relaie vers
|
||||||
# le WAF (https://<waf>:443, certificat auto-signé à accepter côté proxy) : ses IP, pour
|
# le WAF (https://<waf>:443, certificat auto-signé à accepter côté proxy) : ses IP, pour
|
||||||
# que BunkerWeb prenne l'IP réelle du client dans X-Forwarded-For (bans, limites, listes).
|
# que BunkerWeb prenne l'IP réelle du client dans X-Forwarded-For (bans, limites, listes).
|
||||||
poc_trusted_proxies: [] # ex. ["192.168.200.10"]
|
poc_trusted_proxies: ["172.16.16.21"] # Traefik de vlab.bzh ; [] sans reverse proxy
|
||||||
|
|
||||||
# --- Exposition publique ------------------------------------------------
|
# --- Exposition publique ------------------------------------------------
|
||||||
# Sites réservés à certaines IP sources (403 pour les autres, sauf challenge ACME).
|
# Sites réservés à certaines IP sources (403 pour les autres, sauf challenge ACME).
|
||||||
# Le client de test du PoC est toujours autorisé. Liste vide = pas de restriction.
|
# Le client de test du PoC est toujours autorisé. Liste vide = pas de restriction.
|
||||||
poc_restricted_sites: [bwui]
|
poc_restricted_sites: [bwui]
|
||||||
poc_allowed_sources: [] # ex. ["203.0.113.10", "198.51.100.0/24"]
|
poc_allowed_sources: ["172.16.0.0/12", "192.168.0.0/16"] # réseaux privés ; ajouter ses IP publiques
|
||||||
|
|
||||||
# --- Proxmox ----------------------------------------------------------
|
# --- Proxmox ----------------------------------------------------------
|
||||||
pve_node: lancelot
|
pve_node: lancelot
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ services:
|
|||||||
{% if name in poc_restricted_sites and poc_allowed_sources | length > 0 %}
|
{% if name in poc_restricted_sites and poc_allowed_sources | length > 0 %}
|
||||||
# Accès réservé (poc_allowed_sources + client de test), challenge ACME toujours permis
|
# Accès réservé (poc_allowed_sources + client de test), challenge ACME toujours permis
|
||||||
{{ fqdn }}_CUSTOM_CONF_MODSEC_poc-allowlist: {{ val('SecRule REMOTE_ADDR "!@ipMatch ' ~ ((poc_allowed_sources + [client_ip]) | join(',')) ~ '" "id:10002,phase:1,deny,status:403,log,msg:\'PoC BunkerWeb : source non autorisee\',chain"
|
{{ fqdn }}_CUSTOM_CONF_MODSEC_poc-allowlist: {{ val('SecRule REMOTE_ADDR "!@ipMatch ' ~ ((poc_allowed_sources + [client_ip]) | join(',')) ~ '" "id:10002,phase:1,deny,status:403,log,msg:\'PoC BunkerWeb : source non autorisee\',chain"
|
||||||
SecRule REQUEST_URI "!@beginsWith /.well-known/acme-challenge/"') }}
|
SecRule REQUEST_URI "!@beginsWith /.well-known/acme-challenge/" "t:none"') }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
networks:
|
networks:
|
||||||
|
|||||||
Reference in new issue
Block a user