feat: nadogradnja na Guacamole 1.6.0 + native brute-force ban
GUAC_VERSION 1.5.5 -> 1.6.0. Docker podrska je u 1.6.0 prepisana: ekstenzije se ukljucuju preko <PREFIX>_ENABLED varijabli, a sve su vec u imageu. - BAN_ENABLED: guacamole-auth-ban, nova u 1.6.0. Blokira IP nakon 5 promasenih prijava. Radi unutar aplikacije, za razliku od fail2ban jaila koji cita nginx log. - POSTGRESQL_USER -> POSTGRESQL_USERNAME. U 1.6.0 je USERNAME kanonski naziv; USER je deprecated alias. - REMOTE_IP_VALVE_ENABLED + INTERNAL_PROXIES: bez toga kontejner vidi samo docker bridge (172.18.0.1) kao izvor svih zahtjeva, pa ban ekstenzija banira cijeli proxy put i zakljuca SVE korisnike odjednom — isti problem koji smo rijesili za nginx sa set_real_ip_from. internalProxies namjerno pokriva samo docker raspone (172.16-31), da LAN klijenti na 192.168.x ostanu prepoznati kao stvarni klijenti. Nadogradnja postojece instalacije trazi rucnu migraciju sheme: upgrade-pre-1.6.0.sql (dodaje AUDIT u guacamole_system_permission_type). Nove instalacije to ne trebaju — initdb.sh generira aktualnu shemu. Provjereno: sve tri ekstenzije se ucitavaju, TOTP enrollment i korisnici prezivjeli migraciju, ban se okida na 5. pokusaju i pogadja tocno IP napadaca — pristup s drugih adresa i kroz NPM ostaje ziv. Prezivi reboot. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+10
-3
@@ -18,7 +18,7 @@ section() { echo -e "\n${BOLD}${BLUE}══════════ $* ═══
|
|||||||
[[ $EUID -ne 0 ]] && error "Pokrenite kao root: sudo bash $0"
|
[[ $EUID -ne 0 ]] && error "Pokrenite kao root: sudo bash $0"
|
||||||
|
|
||||||
# ── Konfigurabilne varijable ──────────────────────────────────────────────────
|
# ── Konfigurabilne varijable ──────────────────────────────────────────────────
|
||||||
GUAC_VERSION="1.5.5"
|
GUAC_VERSION="1.6.0"
|
||||||
GUAC_PORT="8080"
|
GUAC_PORT="8080"
|
||||||
INSTALL_DIR="/opt/guacamole"
|
INSTALL_DIR="/opt/guacamole"
|
||||||
|
|
||||||
@@ -271,7 +271,7 @@ section "TOTP 2FA ekstenzija"
|
|||||||
# Image već sadrži TOTP jar u /opt/guacamole/totp — aktivira se s
|
# Image već sadrži TOTP jar u /opt/guacamole/totp — aktivira se s
|
||||||
# TOTP_ENABLED=true u compose datoteci (vidi niže). Ručno preuzimanje
|
# TOTP_ENABLED=true u compose datoteci (vidi niže). Ručno preuzimanje
|
||||||
# nije potrebno i stvorilo bi duplu ekstenziju.
|
# nije potrebno i stvorilo bi duplu ekstenziju.
|
||||||
info "TOTP se aktivira preko TOTP_ENABLED (ugrađen u image)"
|
info "TOTP i brute-force ban aktiviraju se preko env varijabli (ugrađeni u image)"
|
||||||
|
|
||||||
cat > "${INSTALL_DIR}/.env" << EOF
|
cat > "${INSTALL_DIR}/.env" << EOF
|
||||||
POSTGRES_PASS=${POSTGRES_PASS}
|
POSTGRES_PASS=${POSTGRES_PASS}
|
||||||
@@ -319,9 +319,16 @@ services:
|
|||||||
GUACD_HOSTNAME: guacd
|
GUACD_HOSTNAME: guacd
|
||||||
POSTGRESQL_HOSTNAME: postgres
|
POSTGRESQL_HOSTNAME: postgres
|
||||||
POSTGRESQL_DATABASE: guacamole_db
|
POSTGRESQL_DATABASE: guacamole_db
|
||||||
POSTGRESQL_USER: guacamole_user
|
POSTGRESQL_USERNAME: guacamole_user
|
||||||
POSTGRESQL_PASSWORD: \${POSTGRES_PASS}
|
POSTGRESQL_PASSWORD: \${POSTGRES_PASS}
|
||||||
TOTP_ENABLED: "true"
|
TOTP_ENABLED: "true"
|
||||||
|
BAN_ENABLED: "true"
|
||||||
|
# Bez RemoteIpValve kontejner vidi samo docker bridge kao izvor, pa bi
|
||||||
|
# ban ekstenzija banirala cijeli proxy put i zakljucala sve korisnike.
|
||||||
|
# internalProxies pokriva samo docker mreze, da LAN klijenti ostanu
|
||||||
|
# prepoznati kao stvarni klijenti.
|
||||||
|
REMOTE_IP_VALVE_ENABLED: "true"
|
||||||
|
REMOTE_IP_VALVE_INTERNAL_PROXIES: "172\\\\.(1[6-9]|2[0-9]|3[01])\\\\.\\\\d{1,3}\\\\.\\\\d{1,3}"
|
||||||
# Stvarni GUACAMOLE_HOME je /home/guacamole/.guacamole; ova varijabla
|
# Stvarni GUACAMOLE_HOME je /home/guacamole/.guacamole; ova varijabla
|
||||||
# označava predložak koji start.sh kopira u njega, pa je montirani
|
# označava predložak koji start.sh kopira u njega, pa je montirani
|
||||||
# extensions/ direktorij time stvarno u upotrebi.
|
# extensions/ direktorij time stvarno u upotrebi.
|
||||||
|
|||||||
Reference in New Issue
Block a user