ssh-guard-nginx.env
61 lignes · 2107 octets
# ============================================================================= # ssh-guard — profil NGINX (gitrust derrière nginx stream + PROXY protocol v2) # ============================================================================= # À ajouter à /opt/gitrust/.env. Voir : # administration_manual/how-to/configurer-ssh-guard.md # administration_manual/reference/variables-environnement.md (section 22) # # Topologie attendue : nginx termine TLS sur :443 et fait du SSH stream # sur :22 → 127.0.0.1:2222 avec proxy_protocol on; côté nginx. # # Rappel nginx.conf : # stream { # upstream gitrust_ssh { server 127.0.0.1:2222; } # server { # listen 22; # proxy_pass gitrust_ssh; # proxy_protocol on; # IMPORTANT # proxy_timeout 30m; # gros push possible # } # } # --- Binding gitrust : ne pas exposer SSH directement --- SSH_LISTEN_ADDR=127.0.0.1 SSH_PORT=2222 # --- Kill switch ssh-guard --- SSH_GUARD_ENABLED=true SSH_GUARD_DRY_RUN=false # --- Profil nginx : pose v2 + strict + trusted_proxies localhost --- SSH_GUARD_PROFILE=nginx # Le profil pose déjà ces valeurs (laissées explicites pour audit) : SSH_GUARD_PROXY_PROTOCOL=v2 SSH_GUARD_PROXY_PROTOCOL_STRICT=true SSH_GUARD_PROXY_PROTOCOL_TIMEOUT_MS=3000 SSH_GUARD_TRUSTED_PROXIES=127.0.0.1/32,::1/128 # --- Détecteurs (seuils par défaut, ajustables) --- SSH_GUARD_BRUTE_FORCE_THRESHOLD=5 SSH_GUARD_BRUTE_FORCE_WINDOW_SECS=300 SSH_GUARD_USER_ENUM_THRESHOLD=10 SSH_GUARD_USER_ENUM_WINDOW_SECS=300 SSH_GUARD_KEY_SCAN_THRESHOLD=10 SSH_GUARD_KEY_SCAN_WINDOW_SECS=300 SSH_GUARD_CONN_FLOOD_PER_SEC=10 SSH_GUARD_CONN_FLOOD_BURST=20 # --- Ban : TTL 1h par défaut --- SSH_GUARD_AUTO_BAN_DURATION_SECS=3600 # --- Stockage hybride --- SSH_GUARD_STORE_BACKEND=hybrid SSH_GUARD_STORE_FLUSH_INTERVAL_MS=1000 SSH_GUARD_EVENTS_RETENTION_DAYS=90 # --- Observabilité : JSON dans journald + fichier dédié pour fail2ban --- SSH_GUARD_LOG_FORMAT=json SSH_GUARD_LOG_TARGET=both SSH_GUARD_LOG_FILE=/var/log/gitrust-ssh-guard.json SSH_GUARD_METRICS_ENABLED=true
GitRust