91 lines
1.8 KiB
Markdown
91 lines
1.8 KiB
Markdown
# 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
|
|
<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:
|
|
|
|
```apache
|
|
<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:
|
|
|
|
```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/
|
|
```
|