4 trucchi di sicurezza per Apache 2.4 e Ubuntu Server.

Sicurezza Server Apache

Questo articolo elenca alcune delle impostazioni predefinite per server Apache 2.4 installato su un Server Ubuntu. Spiega come applicarli in modo globale a livello server. Se abbiamo dei siti ospitati in in server dedicato o una VPS, questi trucchi ci aiuteranno ad aumentare la sicurezza della nostra permanenza in Rete.

I Nostri obiettivi:

  1. Impedire di stampare la firma del server Apache come parte di una richiesta Web: questo non è necessario e fornisce agli aspiranti hacker informazioni sul nostro server.
  2. Negare l’accesso diretto a determinati file (ad esempio .git, .json, .sql)
  3. Impedire l’esplorazione delle directory: non consentire a estranei casuali di sniffare la nostrs struttura del server.
  4. Non consentire di sostituire le config di Apache nelle directory (ad es. Non abilitare i file di configurazione .htaccess)
< <

Tenete presente che se non autorizzate i file .htaccess dovrete probabilmente includere adeguate regole di riscrittura nella configurazione dell’host virtuale Apache in ogni sito. Le impostazioni e configurazioni elencate nel post, vi aiuteranno a rendere più sicuro il server, ma anche renderlo più veloce.

Configurazione Globale di Apache Aprite il file di configurazione di Apache:

sudo nano /etc/apache2/conf-enabled/security.conf
Apportate le seguenti modifiche:

#...
ServerTokens Prod

#...
Set ServerSignature Off

#...
# Aggiungete il seguente blocco:
# ==============================================================================
# Impedisci l'accesso a qualsiasi directory .git
# ==============================================================================
<DirectoryMatch "/\.git">
    Require all denied
</DirectoryMatch>
# ==============================================================================
# # Proteggi un intervallo specificato di file dall'accesso diretto
# Da notare l'inserimento di files Standard WordPress
# ==============================================================================
<FilesMatch "^(wp-config\.php|php\.ini|php5\.ini|install\.php|php\.info|readme\.md|README\.md|readme\.html|bb-config\.php|\.htaccess|\.htpasswd|readme\.txt|timthumb\.php|error_log|error\.log|PHP_errors\.log|\.svn)">
    Require all denied
</FilesMatch>

# ==============================================================================
# Impedisci l'accesso ai file di configurazione JSON
# ==============================================================================
<FilesMatch "\.(json)$">
    Require all denied
</FilesMatch>

# ==============================================================================
# Impedisci l'accesso ai dump sql: questi NON dovrebbero trovarsi nella radice 
# del documento, ma nel caso non si sa mai...
# ==============================================================================
<FilesMatch "\.(sql)$">
    Require all denied
</FilesMatch>

# ==============================================================================
# Prevenire gli attacchi xmlrpc: se non si utilizza xmlrpc, bloccare questo file 
# per evitare tentativi di hacking. Specie per WordPress.
# ==============================================================================
<FilesMatch "^(xmlrpc\.php)">
  Require all denied
</FilesMatch>
Prevenire l’incorporamento e lo sniffing Imposta le intestazioni per tutti i file pubblicati:

  • L’intestazione NOSNIFF impedisce ai file IE di essere sniffati
  • L’intestazione SAMEORIGIN impedisce l’incorporamento di contenuti in siti diversi dal nostro
  • ATTENZIONE!!!! Per essere operativa questa funzione e non mandare Apache in errore, il modulo headers dev’essere abilitato. Quindi abilitiamolo:

    sudo a2enmod headers
    # ...e riavviamo Apache con
    sudo /etc/init.d/apache2 restart
    Aggiungiamo quanto segue a /etc/apache2/conf-enabled/security.conf:

    # L'impostazione di questa intestazione impedisce a MSIE di interpretare i file come qualcosa
    # diverso da quello dichiarato dal tipo di contenuto nelle intestazioni HTTP.
    # Richiede abilitazione mod_headers.
    Header set X-Content-Type-Options: NOSNIFF
    
    # L'impostazione di questa intestazione impedirà ad altri siti di incorporare pagine da questo
    # sito come frame. Questo difende dagli attacchi clickjacking.
    # Richiede abilitazione mod_headers.
    Header set X-Frame-Options: SAMEORIGIN
    Impedisci la navigazione nella directory