Hardening di un web server Apache: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
mNessun oggetto della modifica
 
(15 versioni intermedie di 3 utenti non mostrate)
Riga 1: Riga 1:
{{Versioni compatibili}}
{{Versioni compatibili|Squeeze|Wheezy|Jessie|Stretch}}
 
== Introduzione ==
== Introduzione ==
Apache come ogni software usato in rete, è soggetto a bug che lo possono rendere vulnerabile ad attacchi di diversa natura: Denial of Service, Information Disclosure, System Violation, Data Corruption...<br/>
Apache come ogni software usato in rete, è soggetto a bug che lo possono rendere vulnerabile ad attacchi di diversa natura: Denial of Service, Information Disclosure, System Violation, Data Corruption...<br/>
Riga 8: Riga 9:
== Direttive di Apache ==
== Direttive di Apache ==
Debian prevede un file specifico per la configurazione e la gestione della sicurezza di Apache: <code>/etc/apache2/conf.d/security</code>.<br/>
Debian prevede un file specifico per la configurazione e la gestione della sicurezza di Apache: <code>/etc/apache2/conf.d/security</code>.<br/>
'''Attenzione'''. Da Debian Stretch il file si trova nel percorso: <code>/etc/apache2/conf.available/security.conf</code>.<br/>
Si consiglia quindi di apportare in questo file tutte le modifiche seguenti che desiderate implementare nella vostra configurazione.
Si consiglia quindi di apportare in questo file tutte le modifiche seguenti che desiderate implementare nella vostra configurazione.
=== Impedire il controllo degli accessi per directory ===
=== Impedire il controllo degli accessi per directory ===
Riga 53: Riga 56:
<pre>
<pre>
<Files ~ "^\.ht">
<Files ~ "^\.ht">
     Order allow,deny
  # Fino a Jessie
     Deny from all
     #Order Allow,Deny
     Satisfy All
     #Deny from all
 
    # Da Stretch
     Require all denied
</Files>
</Files>
</pre>
</pre>
Riga 64: Riga 70:
<pre>
<pre>
<FilesMatch \.(inc|conf)>
<FilesMatch \.(inc|conf)>
     Order Allow,Deny
     # Fino a Jessie
     Deny from all
    #Order Allow,Deny
     #Deny from all
 
    # Da Stretch
    Require all denied
</FilesMatch>
</FilesMatch>
</pre>
</pre>
Riga 82: Riga 92:
<pre>
<pre>
#<Location /server-status>
#<Location /server-status>
#   SetHandler server-status
  # SetHandler server-status
#    Order deny,allow
  # Fino a Jessie
#   Deny from all
   #Order Allow,Deny
#   Allow from .your-domain.com
  #Deny from all
  #Allow from .your-domain.com
 
    # Da Stretch
    Require all denied
    Require local
    Require ip 192.168.1.0/24
#</Location>
#</Location>


#<Location /server-info>
#<Location /server-info>
#    SetHandler server-info
#    SetHandler server-info
#    Order deny,allow
  # SetHandler server-status
#   Deny from all
  # Fino a Jessie
#   Allow from .your-domain.com
   #Order Allow,Deny
  #Deny from all
  #Allow from .your-domain.com
 
    # Da Stretch
    Require all denied
    Require local
    Require ip 192.168.1.0/24
#</Location>
#</Location>
</pre>
</pre>
Riga 201: Riga 224:
# find /etc/apache2/ | xargs fgrep -nH evasive
# find /etc/apache2/ | xargs fgrep -nH evasive
</pre>
</pre>
Su alcuni siti viene suggerito di aumentare la sicurezza del modulo aggiungendo alcuni parametri di configurazione al file <code>/etc/apache2/mods-available/mod-evasive.load</code>:
Su alcuni siti viene suggerito di aumentare la sicurezza del modulo aggiungendo alcuni parametri di configurazione al file <code>/etc/apache2/mods-available/mod-evasive.load</code>.<br/>
'''Attenzione'''. Da Debian Stretch il file da modificare è <code>/etc/apache2/mods-available/evasive.conf</code>:
<pre>
<pre>
<IfModule mod_evasive20.c>
<IfModule mod_evasive20.c>
Riga 332: Riga 356:
# apt-get -t lenny-backports install libapache-mod-security
# apt-get -t lenny-backports install libapache-mod-security
</pre>
</pre>
* Squeeze:
* Da Squeeze a Wheezy:
<pre>
<pre>
# apt-get install libapache-mod-security
# apt-get install libapache-mod-security
</pre>
</pre>
* Da Jessie:
<pre>
# apt-get install libapache2-mod-security2
</pre>
{{Warningbox|Da '''Debian Stretch''', il modulo arriva già configurato con le opzioni mostrate qui sotto, che erano necessarie per le vecchie versioni di Debian. Se state usando Debian Stretch '''dovete saltare il resto del paragrafo'''.}}
===Fino a Jessie===
Abilitiamo il modulo appena installato e ci troveremo già con una configurazione minimale funzionante:
Abilitiamo il modulo appena installato e ci troveremo già con una configurazione minimale funzionante:
<pre>
<pre>
# a2enmod mod-security
# a2enmod mod-security
# /etc/init.d/apache2 restart
# /etc/init.d/apache2 restart
</pre>
Come prima cosa, possiamo sostituire la stringa di informazioni della direttiva <code>ServerTokens</code> e renderla ancora più anonima:
<pre>
# nano /etc/apache2/conf.d/security
</pre>
oppure, da Jessie:
<pre>
# nano /etc/apache2/conf-enabled/security
</pre>
Cerchiamo la direttiva <code>ServerTokens</code> e cambiamola in modo apparentemente meno sicuro:
<pre>
ServerTokens Full
</pre>
Quindi cerchiamo la direttiva <code>ServerSignature</code> e cambiamola così:
<pre>
#ServerSignature On
SecServerSignature Web_Server_di_Ferdy
</pre>
</pre>
La forza di questo modulo, però, risiede nella sua possibilità di tuning. Creiamo quindi il file <code>/etc/apache2/conf.d/mod_security</code> e impostiamo una prima configurazione di base personalizzata:
La forza di questo modulo, però, risiede nella sua possibilità di tuning. Creiamo quindi il file <code>/etc/apache2/conf.d/mod_security</code> e impostiamo una prima configurazione di base personalizzata:

Menu di navigazione