Elenco di controllo delle best practice per la sicurezza Apache in 14 passaggi (eBook PDF incluso)
Pubblicato: 2017-11-22Railwayfx/stock.adobe.com
Apache rimane attualmente il principale software per server web nel mondo con una quota di mercato del 45,8%. Alla fine si tratta di circa 80 milioni di siti Web i cui server Web sono gestiti da Apache. Abbastanza impressionante, vero?
Apache è un software per server Web open source in circolazione dal 1995, quindi questo da solo la dice lunga sulla sua affidabilità e longevità. Poi ci sono i siti web di alto profilo che girano su server Apache: Apple, Adobe e Paypal sono solo alcuni dei grandi brand che affidano i propri siti web ad Apache.
Naturalmente, ciò non rende Apache sicuro al 100% poiché nessun software sarà mai sicuro al 100% dagli hacker, soprattutto quando si tratta di una piattaforma così conosciuta e affidabile (proprio come WordPress). Ma se stai cercando un eBook PDF, un modulo, una guida, un tutorial, un framework o un elenco di controllo sulla sicurezza del server Web sulla sicurezza Apache, sei nel posto giusto.
Se desideri rafforzare la sicurezza di Apache o stai riscontrando problemi di sicurezza di Apache o stai cercando di correggere una o due vulnerabilità, la seguente lista di controllo ti fornirà 14 migliori pratiche di sicurezza da aggiungere al piano di sicurezza del tuo sito web.
L'elenco di controllo delle migliori pratiche di sicurezza Apache definitivo
Per quelli di voi che desiderano davvero rafforzare il proprio sito Web WordPress, è essenziale proteggere Apache come fareste con qualsiasi altro software che si collega e alimenta il vostro sito Web. In caso contrario, puoi persino influire sulla velocità del tuo sito. Quindi, ecco come lo farai:
1. Aggiorna Apache
Sai come WordPress e tutti i plugin e temi che hai installato devono essere aggiornati regolarmente? Lo stesso vale per il tuo server web.
Se temi che il tuo sito non sia in esecuzione sulla versione più recente di Apache, puoi verificarlo con una riga di comando httpd -v. Se la versione emessa non corrisponde a quella corrente di Apache, puoi aggiornarla con quanto segue:
# yum update httpd
# apt-get install [add Apache version here]c
2. Attiva Registri
Se lavori con un provider di hosting WordPress gestito, loro si occuperanno di monitorare il tuo server e WordPress per individuare eventuali vulnerabilità e altri segnali di allarme. Detto questo, dovresti tenere d’occhio anche il traffico del tuo server.
Con Apache, puoi accedere a questo registro delle attività aggiornando il tuo modulo mod_log_config. Fondamentalmente, ti dirà cosa fanno gli utenti ogni volta che toccano il tuo server.
3. Ottieni un certificato SSL
Poiché il tuo server web gestisce tutte le richieste del browser/server al tuo sito web, è importante proteggerlo con un certificato SSL. La buona notizia è che ora puoi ottenere un certificato SSL gratuitamente. Questo è più importante che mai, quindi se non hai la capacità tecnica di installarlo da solo, qualsiasi provider di hosting di qualità sarà in grado di farlo per te.
4. Aggiungi un firewall
Oltre alla protezione aggiuntiva della crittografia SSL, il tuo server web dovrebbe essere fortificato con un firewall. Per Apache, questo significa attivare ModSecurity.
Per installarlo sul tuo server, puoi eseguire quanto segue:
# yum install mod_security
# /etc/init.d/httpd restart
Una volta attivo, il firewall impedirà a una serie di attività dannose di raggiungere il tuo server, come l'iniezione SQL, il dirottamento della sessione e lo scripting cross-site.
5. Installa mod_evasive
Mod_evasive è il modulo che proteggerà il tuo server Apache dalla forza bruta e dagli attacchi DDoS, quindi assicurati che anche questo sia abilitato. Metterà nella lista nera i tentativi di accesso simultanei e falliti e monitorerà gli IP dannosi.
6. Imposta i limiti HTTP
Gli attacchi DDoS (Distributed Denial of Service) sono piuttosto semplici da bloccare se si sa a che tipo di azioni prestare attenzione. Poiché gli attacchi DDoS tendono a verificarsi colpendo ripetutamente il tuo server con richieste di grandi dimensioni, il tuo obiettivo dovrebbe essere quello di impostare limiti che impediscano che ciò accada.
Ecco alcuni dei limiti che dovrai stabilire:
- KeepAlive=attivo
- KeepAliveTimeout
- LimitRequestBody
- LimitRequestFields
- LimitRequestFieldSize
- LimitRequestLine
- LimitXMLRequestBody
- MaxClient
- Richieste MaxKeepAlive
- MaxRequestWorkers
- RichiestaLetturaTimeout
- Tempo scaduto
7. Elimina i moduli inutilizzati
Lasciando i moduli inutilizzati, non mantenuti o scaduti sul tuo server Apache, lasci il tuo sito aperto agli hacker attraverso un punto di ingresso che non ha nemmeno bisogno di essere lì.
La prima cosa che dovresti fare è scoprire quali moduli sono effettivamente attivi. Puoi farlo utilizzando un comando LoadModule. Dopo aver esaminato l'elenco e identificato i moduli che non ti servono, aggiungi semplicemente il simbolo "#" prima di ciascun modulo che desideri disattivare e quindi riavvia.
8. Modifica utente e gruppo predefiniti
Le impostazioni predefinite e gli utenti lasciati su qualsiasi software, in generale, rappresentano una cattiva pratica di sicurezza. La ragione di ciò è semplice: se stai utilizzando il nome utente o gruppo predefinito di Apache, puoi scommettere che gli hacker sono consapevoli anche di quali sono quei nomi predefiniti.
Invece di lasciare invariate le impostazioni predefinite, dovresti creare un nuovo account non privilegiato attraverso il quale eseguire i processi Apache. Usando i comandi # groupadd e # useradd, puoi impostare le nuove entità. Ricorda solo di aggiornare il tuo httpd.conf con i nuovi nomi utente e gruppo che hai creato.
9. Blocca l'accesso alla directory
Ecco un altro esempio di impostazioni predefinite che devono essere modificate. In questo caso, è l'accesso concesso ai file della tua directory che consente a chiunque di esplorare dove preferisce.
Per mettere in atto un blocco totale, utilizzare il seguente comando:
<Directory "/">
Require all denied
</Directory>
Se desideri abilitare l'accesso a determinati utenti, puoi farlo in questo modo:
<Directory "/usr/users/*/public_html">
Require all granted
</Directory>
Se desideri abilitare l'accesso a determinate cartelle all'interno della directory, puoi farlo con questo:
<Directory "/usr/local/httpd">
Require all granted
</Directory>
Potresti anche voler esaminare il repository dei moduli Apache per ulteriori modifiche ai diritti di accesso degli utenti.
10. Non pubblicare la directory
Sapevi che se il tuo server non dispone di un file indice, gli utenti saranno in grado di vedere tutto il contenuto archiviato nella directory principale? Ovviamente non va bene, quindi dovrai disabilitare questa impostazione predefinita con quanto segue:
<Directory /var/www/html>
Options -Indexes
</Directory>
11. Nascondi i dettagli del server
Poiché Apache è un software open source, i dettagli sulla versione utilizzata sono prontamente disponibili se queste impostazioni non sono disabilitate sul lato server. Poiché gli hacker possono utilizzare tali informazioni sensibili per capire come entrare nel tuo server, ti consigliamo di bloccare queste informazioni.
Ci sono due cose che vorresti disabilitare:
- ServerSignature – che è la versione di Apache
- ServerTokens – che include la versione del sistema operativo, oltre ad altri dettagli sensibili del server
Queste informazioni possono essere trovate da altri utenti semplicemente visualizzando una pagina di errore sul tuo sito web, quindi è piuttosto importante impedirne la visualizzazione. Per fare ciò, aggiorna httpd.conf con quanto segue:
ServerSignature Off
ServerTokens Prod
12. Nascondi l'ETag
L'intestazione ETag in Apache, sfortunatamente, include una serie di dettagli sensibili sul tuo server. Ovviamente, tutto ciò che condivide questo tipo di informazioni con il mondo esterno dovrebbe essere nascosto. Inoltre, se gestisci un sito di e-commerce, dovrai nasconderlo per essere conforme PCI.
Per fare ciò, aggiungi la seguente direttiva al tuo httpd.conf:
FileETag None
13. Disabilita l'override di .htaccess
Il file .htaccess è un file importante per qualsiasi sito Web WordPress. Questo è il motivo per cui è necessario bloccarlo e assicurarsi che nessun altro possa sovrascrivere le impostazioni di configurazione.
Per disabilitarlo, aggiungi quanto segue al tuo httpd.conf nella root:
<Directory />
Options -Indexes
AllowOverride None
</Directory>
14. Disabilita SSI e CGI
I file abilitati per Server Side Include (SSI) possono aprire il tuo sito a una serie di problemi di sicurezza se lasciati deselezionati. Lo stesso vale per gli script CGI. Per evitare che uno di questi consenta agli hacker di sovraccaricare il tuo server o inserire script dannosi nel tuo codice, ricordati di disattivarli o limitare ciò che fanno tramite la direttiva Opzioni.
Ecco alcuni valori di Opzioni che puoi utilizzare:
- Opzioni Tutto
- Opzioni IncludeNOEXEC
- Opzioni -Include
- Opzioni -ExecCGI
- Opzioni -Include -ExecCGI
- Opzioni MultiView
Prendersi cura del proprio server Apache
Nel tentativo di rafforzare la sicurezza del tuo sito web, presta particolare attenzione al tuo server Apache. Problemi come l'errata configurazione del server e il mantenimento delle impostazioni predefinite possono mettere a rischio il tuo sito tanto quanto un core non aggiornato o pratiche di codifica PHP non sicure.
Vuoi dare il tuo feedback o partecipare alla conversazione?Aggiungi i tuoi commenti su Twitter.