GNU/Linux >> Linux Esercitazione >  >> Linux

Proteggi il tuo server Web Apache Best Practice

Introduzione

Apache è il server web più popolare utilizzato su Internet. Ed è ideale per la maggior parte delle situazioni e consente flessibilità per ambienti condivisi. In questo tutorial vedremo come proteggere un Apache server web. Per questo tutorial useremo Centos 8. puoi trovare il tutorial di installazione di apache qui. Vedremo come modificare Apache configurazione anche su sistema Ubuntu/Debian.

1. Tieniti aggiornato Apache

Accedi al sistema utilizzando un account utente con privilegi root o sudo. controlla Apache versione eseguendo il comando seguente.
httpd -v

2. Nascondi la versione di Apache e le informazioni sul sistema operativo del server .

La prima cosa che dobbiamo considerare, poiché non vogliamo esporre quale versione del server Web stiamo utilizzando nel nostro sistema. L'esposizione delle informazioni sulla versione e sul sistema operativo significa che stiamo aiutando gli hacker a essere veloci nel processo di attacco. Nell'immagine qui sotto, possiamo vedere che Apache mostra la sua versione con il sistema operativo installato sul nostro server.

Per prevenire Apache dall'esporre la sua versione e le informazioni sul sistema operativo, dobbiamo modificare Apache il file di configurazione principale di apri il file di configurazione eseguendo il seguente comando-

nano /etc/httpd/conf/httpd.conf
nano /etc/apache2/apache.conf (Ubuntu / Debian)

Ora aggiungi due direttive sottostanti al file di configurazione principale e salvalo.

ServerTokens Prod
ServerSignature Off

E riavvia Apache server eseguendo il seguente comando-

systemctl restart httpd.service

Come possiamo vedere nell'immagine qui sotto, Apache la versione non è esposta e anche le informazioni operative non sono visibili.

3. Disattiva l'indicizzazione della directory

Per impostazione predefinita, Apache mostra tutto il contenuto della directory Webroot in assenza di un file di indice. Come l'immagine qui sotto,

per impedire l'indicizzazione delle directory in un browser, dobbiamo modificare la direttiva delle opzioni in Apache file di configurazione. Apri la configurazione e modifica la voce come di seguito.

<Directory /var/www/html>
    Options -Indexes
</Directory>

Ora apri il browser e digita IP o URL nella barra degli indirizzi. E vedremo un'immagine come sotto

4. Disattiva ETag

Etag viene utilizzato nelle intestazioni HTTP per gestire il comportamento di memorizzazione nella cache web. Tuttavia, Etag può causare problemi di sicurezza. Consente agli aggressori remoti di ottenere informazioni sensibili come numero di inode, tipo MIME ed elaborazione tramite ETag intestazione. Per prevenire attacchi e fughe di informazioni, aggiungi la seguente direttiva ad Apache configurazione.

per ottenere ciò, aggiungi semplicemente la seguente riga ad Apache file di configurazione e riavviare Apache .

FileEtag None

5. Disattiva CGI e SSI

Le SSI (include lato server) sono direttive utilizzate per scrivere una pagina HTML con contenuti dinamici e CGI viene utilizzato per iniettare script dannosi nel codice web. Limita CGI e SSI aggiungendo le seguenti direttive di opzione alla configurazione di Apache:

Options -Includes -ExecCGI

6. Limita l'accesso alla directory

È una buona pratica di sicurezza limitare l'accesso alla directory webroot utilizzando "Consenti e nega" sintassi. Per ottenere ciò, apporta le seguenti modifiche in apache file di configurazione. Apri il file di configurazione e il server per la Directory bloccare e scrivere la direttiva directory come segue e salvarla. ora riavvia l'Apache per cambiare gli effetti

<Directory />
   Options None
   Order deny,allow
   Deny from all
</Directory>

L'impostazione sopra rinnegherà le richieste di chiunque alla directory principale. Nessuno può accedere alla directory principale.

7. Proteggi Apache con Mod_Security

Mod_security è uno strumento di sicurezza, funziona come firewall per siti Web o applicazioni. Aiuta a proteggere i siti Web o le applicazioni dall'accesso autorizzato delle Nazioni Unite e anche dagli attacchi di forza bruta. Installa mod_security eseguendo il comando seguente e riavvia Apache per lavorare con mod_security.

dnf -y install mod_security

8. Definisci i metodi di richiesta HTTP

Nell'attuale HTTP protocollo, molte richieste non sono richieste e alcune presentano un rischio per la sicurezza. Tuttavia, è abbastanza carino che un'applicazione web consenta GET , TESTA e POST modalità di richiesta. Possiamo configurare questa impostazione aggiungendo la rispettiva direttiva Directory. per raggiungere questo obiettivo, apri Apache file di configurazione, cerca Directory e aggiungi la seguente direttiva interna e riavvia Apache

<LimitExcept GET POST HEAD>
deny from all
</LimitExcept>

9. Abilita intestazione protezione XSS

Il cross-site scripting è noto come (XSS) ed è una vulnerabilità comune riscontrata nelle applicazioni Web. La protezione Cross-Site Scripting (XSS) potrebbe saltare in molti browser. Tuttavia, possiamo prevenire alcuni attacchi XSS aggiungendo la seguente voce al nostro Apache file di configurazione e salvarlo. E riavvia Apache server.

Header set X-XSS-Protection "1; mode=block"

Ora controlla l'intestazione della richiesta nello strumento di sviluppo del browser, nell'immagine sottostante, quell'intestazione è stata implementata correttamente.

10. Disabilita la richiesta HTTP TRACE

Per impostazione predefinita, Traccia richiesta HTTP si apre in Apache per consentire il tracciamento tra siti. Questa opzione consente a un hacker di rubare facilmente le informazioni sui cookie. per evitarlo, aggiungi i seguenti parametri ad Apache file di configurazione. E riavvia Apache .

TraceEnable off

11. Prevenire gli attacchi di clickjacking

Clickjacking , noto anche come "attacco di ripristino dell'interfaccia utente", è una tecnica dannosa per raccogliere i clic di un utente infetto. Clickjacking induce la vittima (visitatore) a fare clic su un sito infetto. Per prevenire questo incidente, dobbiamo utilizzare "X-FRAME-OPTION" in Apache file di configurazione. Per fare ciò, aggiungi la seguente riga nel file di configurazione.

Header set X-FRAME-OPTIONS "SAMEORIGIN"

Ora controlla l'intestazione della richiesta nello strumento per sviluppatori del browser, poiché possiamo vedere che abbiamo aggiunto con successo X-FRAME-OPTIONS su Apache file di configurazione.

13. Cookie sicuro con flag HTTPOnly

Senza HttpOnly e Secure, è possibile rubare o manipolare sessioni di applicazioni Web e cookie, ed è pericoloso. Per mitigare questo, dobbiamo assicurarci che il mod_header il modulo è in esecuzione sul lato server.

apachectl -M | grep header

Nell'immagine sopra, possiamo vedere che il modulo mod_header è stato caricato e abilitato in Apache . Ora aggiungi la seguente riga nel file di configurazione principale di Apache e riavvia Apache server.

Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure

14. Limita la dimensione della richiesta

Per impostazione predefinita, la richiesta HTTP in Apache è illimitato; quindi il server web è suscettibile agli attacchi DoS mantenendolo aperto per l'elevato numero di richieste. Quindi è importante impostare il limite per la richiesta di file. Questo può essere fatto aggiungendo il LimitRequestBody direttiva in Apache file di configurazione.

Ad esempio, unixcop è una directory che contiene i file caricati dagli utenti. Ora stiamo limitando la dimensione del caricamento a 2K in modo che l'utente non possa caricare file più di questo.

<Directory "/var/www/html/unixcop">
LimitRequestBody 20000
</Directory

Conclusione

Da questo tutorial, abbiamo imparato come possiamo proteggere il nostro server Apache dagli aggressori. spero che il nostro articolo ti aiuti a proteggere il tuo server. puoi anche seguire i miei altri articoli.


Linux
  1. Come configurare un server web Apache

  2. Trova i 10 principali indirizzi IP che accedono al tuo server Web Apache

  3. Ottimizzazione del server Web Apache Keep-alive

  4. Installa il server web Apache su openSUSE 12

  5. Installa il server web Apache su Ubuntu 12.10

Come installare il server web Apache su Linux

11 modi migliori per proteggere il tuo server SSH

Come ospitare un sito Web su un server Web Apache

Come installare il server Web Apache su Debian 11

Apache vs Nginx:quale server Web è il migliore per te?

Protezione del tuo server Web Apache con Mod Security