# Blocco directory listing su accesso via IP Problema verificato: ```bash curl -k https://129.152.31.221/ ``` Risposta non desiderata: ```txt 200 OK Index of / ``` L'accesso diretto all'IP non deve mostrare `/var/www` o l'elenco dei file. ## Correzione rapida Sul server Linux: ```bash sudo cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf.bak.$(date +%Y%m%d-%H%M%S) sudo sed -i 's/Options Indexes FollowSymLinks/Options -Indexes +FollowSymLinks/g' /etc/apache2/apache2.conf sudo apache2ctl configtest sudo systemctl reload apache2 ``` Verifica: ```bash curl -k -I https://129.152.31.221/ ``` Il risultato atteso non deve essere `200 OK` con directory listing. Un `403 Forbidden` e accettabile per l'accesso diretto via IP. ## Correzione consigliata Creare un virtual host di default che blocchi ogni richiesta non associata ai domini configurati. File: ```txt /etc/apache2/sites-available/000-ip-block.conf ``` Contenuto HTTP: ```apache ServerName 129.152.31.221 Redirect 301 / https://www.clinicaveterinariaformiginese.it/ ``` Per HTTPS, se sul server e gia attivo un certificato valido per il dominio principale, si puo creare un virtual host catch-all usando gli stessi certificati e restituire 403: ```apache ServerName 129.152.31.221 SSLEngine on SSLCertificateFile /etc/letsencrypt/live/www.clinicaveterinariaformiginese.it/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/www.clinicaveterinariaformiginese.it/privkey.pem Require all denied ``` Attivazione: ```bash sudo a2ensite 000-ip-block.conf sudo apache2ctl configtest sudo systemctl reload apache2 ``` Verifiche: ```bash curl -k -I https://129.152.31.221/ curl -I https://www.clinicaveterinariaformiginese.it/ ```