SYSADMIN JOURNAL / Linux · Networking · Security · HostingProcedure, appunti e soluzioni tecniche
Apache

Apache Balancer Manager aperto senza password: correggere Require all granted

Pubblicato il 12/11/2026

Guida basata su un intervento sistemistico concluso e verificato. Caso reale: il pannello mod_proxy_balancer rispondeva HTTP 200 senza credenziali nonostante AuthType Basic e Require user. Diagnosi, correzione e test.

La scoperta

Durante un audit dei reverse proxy Apache, l'endpoint /balancer-manager restituiva HTTP 200 senza inviare credenziali. Non si trattava di un generico 200 applicativo: il contenuto HTML mostrava il titolo Balancer Manager e il nome del bilanciatore. Un pannello del genere permette di intervenire sulla disponibilità e sul routing dei backend.

Configurazione difettosa

<Location /balancer-manager>
    SetHandler balancer-manager
    Require all granted
    AuthUserFile /etc/apache2/passwd
    AuthName "Restricted Access"
    AuthType Basic
    Require user operatore
</Location>

La presenza contemporanea di Require all granted e Require user rende la configurazione permissiva: con la semantica di autorizzazione di Apache 2.4 basta una condizione soddisfatta per poter consentire l’accesso.

Correzione controllata

<Location /balancer-manager>
    SetHandler balancer-manager
    AuthUserFile /etc/apache2/passwd
    AuthName "Restricted Access"
    AuthType Basic
    Require user operatore
</Location>

È stata eliminata soltanto la direttiva Require all granted, dopo backup del VirtualHost e mantenendo la configurazione di autenticazione esistente. Ulteriore hardening consigliato: aggiungere una whitelist di rete valutando la corretta combinazione delle direttive Require con <RequireAll>.

Test prima e dopo

apachectl -t
systemctl reload apache2

# Senza credenziali: atteso HTTP 401
curl -sS -o /dev/null -w '%{http_code}\n'   -H 'Host: NOME_VHOST' http://IP_PROXY/balancer-manager

# Controllare che il portale pubblico non sia cambiato
curl -sS -o /dev/null -w '%{http_code}\n'   -H 'Host: NOME_VHOST' http://IP_PROXY/

Nel caso reale entrambi i proxy coinvolti sono passati da 200 a 401 senza credenziali. I siti sono rimasti accessibili con HTTP 200 e redirect previsti.

Perché il solo controllo sintattico non basta

apachectl -t conferma la validità della sintassi, non la correttezza delle policy di accesso. Occorre richiedere la pagina sia senza credenziali sia con credenziali valide e verificare i codici HTTP, il contenuto e gli header.

Prevenzione

Eseguire periodicamente un controllo degli endpoint di amministrazione Apache, soprattutto sui vhost di default, sui frontend TLS e sui file copiati tra sites-available e sites-enabled. Evitare pannelli amministrativi esposti su reti pubbliche.

Guide correlate

I comandi con nomi segnaposto vanno adattati al proprio ambiente. Le configurazioni di produzione, gli IP e le credenziali non sono riportati.