Documenta deploy Mailjet e hardening Apache
This commit is contained in:
90
docs/apache-ip-lockdown.md
Normal file
90
docs/apache-ip-lockdown.md
Normal file
@@ -0,0 +1,90 @@
|
||||
# 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/
|
||||
```
|
||||
Reference in New Issue
Block a user