Files
clinica-veterinaria-formigi…/docs/apache-ip-lockdown.md

1.8 KiB

Blocco directory listing su accesso via IP

Problema verificato:

curl -k https://129.152.31.221/

Risposta non desiderata:

200 OK
Index of /

L'accesso diretto all'IP non deve mostrare /var/www o l'elenco dei file.

Correzione rapida

Sul server Linux:

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:

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:

/etc/apache2/sites-available/000-ip-block.conf

Contenuto HTTP:

<VirtualHost *:80>
    ServerName 129.152.31.221
    Redirect 301 / https://www.clinicaveterinariaformiginese.it/
</VirtualHost>

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:

<IfModule mod_ssl.c>
<VirtualHost _default_:443>
    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

    <Location />
        Require all denied
    </Location>
</VirtualHost>
</IfModule>

Attivazione:

sudo a2ensite 000-ip-block.conf
sudo apache2ctl configtest
sudo systemctl reload apache2

Verifiche:

curl -k -I https://129.152.31.221/
curl -I https://www.clinicaveterinariaformiginese.it/