Apache HTTP

Come proteggere il tuo server Apache

Come proteggere il tuo server Apache
Apache è un popolare server Web open source disponibile per sistemi Linux e Windows. Consente la configurazione per una vasta gamma di casi d'uso, dalle pagine Web HTML al contenuto dell'applicazione Web dinamica HyperText Preprocessor (PHP).Apache fornisce una piattaforma sicura e robusta per distribuire le tue applicazioni web. Tuttavia, è comunque importante installare le ultime patch di sicurezza e configurare correttamente il server per stabilire un ambiente sicuro per le tue applicazioni web.
In questo articolo troverai alcuni suggerimenti e trucchi per rafforzare le configurazioni del tuo server Web Apache e migliorare la sicurezza generale.

Account utente non privilegiato

Lo scopo di un account utente non root o non privilegiato è limitare l'accesso non necessario all'utente a determinate attività all'interno di un sistema. Nel contesto di un server Web Apache, ciò significa che dovrebbe funzionare in un ambiente limitato con solo le autorizzazioni necessarie. Per impostazione predefinita, Apache viene eseguito con i privilegi dell'account demone. Puoi creare un account utente non root separato per evitare minacce in caso di vulnerabilità della sicurezza.

Inoltre, se apache2 e MySQL sono sotto le stesse credenziali utente, qualsiasi problema nel processo di servizio una volta avrà un impatto sull'altro. Per modificare i privilegi dell'utente e del gruppo per il server Web, vai su /etc/apache2, apri il file envvars e imposta l'utente e il gruppo su un nuovo utente con account non privilegiato, ad esempio "apache" e salva il file.

ubuntu@ubuntu~:$ sudo vim /etc/apache2/envvars
…tagliare…
esporta APACHE_RUN_USER= apache
esporta APACHE_RUN_GROUP= apache
…tagliare…

Puoi anche usare il seguente comando per cambiare la proprietà della directory di installazione al nuovo utente non root.

ubuntu@ubuntu~:$ sudo chown -R apache:apache /etc/apache2
Immetti il ​​seguente comando per salvare le modifiche:
ubuntu@ubuntu~:$ sudo service apache2 restart

Tieni aggiornato Apache

Apache è famoso per fornire una piattaforma sicura con una comunità di sviluppatori molto preoccupata che raramente affronta eventuali bug di sicurezza. Tuttavia, è normale scoprire problemi una volta rilasciato il software. Pertanto, è essenziale mantenere aggiornato il server Web per usufruire delle ultime funzionalità di sicurezza. Si consiglia inoltre di seguire gli elenchi di annunci del server Apache per tenersi aggiornati su nuovi annunci, versioni e aggiornamenti di sicurezza dalla comunità di sviluppo di Apache.

Per aggiornare il tuo Apache usando apt, digita quanto segue:

ubuntu@ubuntu~:$ sudo apt-get update
ubuntu@ubuntu~:$ sudo apt-get upgrade

Disabilita la firma del server

La configurazione predefinita di un server Apache espone molti dettagli sul server e le sue impostazioni. Ad esempio, abilitate le direttive ServerSignature e ServerTokens in /etc/apache2/apache2.conf aggiunge un'intestazione aggiuntiva alla risposta HTTP che espone informazioni potenzialmente sensibili. Queste informazioni includono dettagli sulle impostazioni del server, come la versione del server e il sistema operativo di hosting, che possono aiutare l'attaccante con il processo di ricognizione. Puoi disabilitare queste direttive modificando apache2.conf tramite vim/nano e aggiungere la seguente direttiva:

ubuntu@ubuntu~:$ sudo vim /etc/apache2/apache2.conf
…tagliare…
Firma del server disattivata
…tagliare…
ServerTokens prodotto
…tagliare…

Riavvia Apache per aggiornare le modifiche.

Disabilita gli elenchi delle directory del server

Gli elenchi delle directory mostrano tutto il contenuto salvato nella cartella principale o nelle sottodirectory. I file della directory possono includere informazioni sensibili non destinate alla visualizzazione pubblica, come script PHP, file di configurazione, file contenenti password, registri, ecc.
Per non consentire gli elenchi delle directory, modificare il file di configurazione del server Apache modificando apache2.conf come:

ubuntu@ubuntu~:$ sudo vim /etc/apache2/apache2.conf
…tagliare…

Opzioni -Indici

…tagliare…

O

…tagliare…

Opzioni -Indici

…tagliare…

Puoi anche aggiungere questa direttiva nel .htaccess della directory principale del tuo sito web.

Proteggi le impostazioni di sistema

Il .htaccess è una funzionalità comoda e potente che consente la configurazione al di fuori dell'apache2 principale.conf file. Tuttavia, nei casi in cui un utente può caricare file sul server, questo può essere sfruttato da un utente malintenzionato per caricare i propri ".htaccess” con configurazioni dannose. Quindi, se non stai utilizzando questa funzione, puoi disabilitare il .direttiva htaccess, i.e.:

ubuntu@ubuntu~:$ sudo vim /etc/apache2/apache2.conf
…tagliare…
#AccessFileName .htaccess
…tagliare…

O
Disattiva il .htaccess ad eccezione delle directory specificamente abilitate modificando apache2.conf e trasformando la direttiva AllowOverRide su None;

ubuntu@ubuntu~:$ sudo vim /etc/apache2/apache2.conf
…tagliare…

ConsentiSovrascrivi Nessuno

…tagliare…

Directory sicure con autenticazione

È possibile creare credenziali utente per proteggere tutte o alcune delle directory utilizzando l'utilità htpasswd. Vai alla cartella del tuo server e usa il seguente comando per creare un .htpasswd per memorizzare gli hash delle password per le credenziali assegnate, ad esempio, a un utente di nome dev.

[email protected]~:$ sudo htpasswd -c /etc/apache2/-htpasswd dev

Il comando sopra richiederà la nuova password e la conferma della password. Puoi vedere il gatto ./htpasswd per controllare l'hash delle credenziali utente memorizzate.

Ora puoi impostare automaticamente il file di configurazione nella directory your_website che devi proteggere modificando il .file htaccess. Utilizzare il comando e le direttive seguenti per abilitare l'autenticazione:

ubuntu@ubuntu~:$ sudo nano /var/www/your_website/.htaccess
…tagliare…
AuthType di base
AuthName "Aggiungi il prompt di dialogo"
AuthUserFile /etc/apache2/nome_utente/nome_dominio/.htpasswd
Richiedi valido-utente
…tagliare…

Ricordati di aggiungere il percorso come da te.

Esegui i moduli necessari

La configurazione predefinita di Apache include moduli abilitati di cui potresti anche non aver bisogno. Questi moduli preinstallati aprono le porte ai problemi di sicurezza di Apache che esistono già o potrebbero esistere in futuro. Per disabilitare tutti questi moduli, devi prima capire quali moduli sono necessari per il buon funzionamento del tuo server web. A questo scopo, controlla la documentazione del modulo apache che copre tutti i moduli disponibili.

Quindi, usa il seguente comando per capire quali moduli sono in esecuzione sul tuo server.

[email protected]~:$ sudo ls /etc/apache2/mods-enabled

Apache viene fornito con il potente comando a2dismod per disabilitare il modulo. Impedisce il caricamento del modulo e ti avvisa con un avviso quando disabiliti il ​​modulo che l'azione può avere un impatto negativo sul tuo server.

[email protected]~:$ sudo a2dismod module_name

Puoi anche disabilitare il modulo commentando nella riga LoadModule.

Prevenire Loris lento e attacchi DoS

L'installazione predefinita di un server Apache lo costringe ad attendere le richieste dei client per troppo tempo, il che sottopone il server ad attacchi Slow Loris e DoS. L'apache2.conf fornisce una direttiva che puoi usare per abbassare il valore di timeout a pochi secondi per prevenire questi tipi di attacchi, i.e.:

ubuntu@ubuntu~:$ sudo vim /etc/apache2/apache2.conf
Timeout 60

Inoltre, il nuovo server Apache viene fornito con un pratico modulo mod_reqtimeout che fornisce una direttiva RequestReadTimeout per proteggere il server da richieste illegittime. Questa direttiva viene fornita con alcune configurazioni complicate, quindi puoi leggere le informazioni correlate disponibili nella pagina della documentazione.

Disabilita le richieste HTTP non necessarie

Le richieste HTTP/HTTPS illimitate possono anche portare a prestazioni del server basse o a un attacco DoS. Puoi limitare la ricezione di richieste HTTP per directory utilizzando LimitRequestBody a meno di 100K. Ad esempio, per creare una direttiva per la cartella /var/www/your_website, puoi aggiungere la direttiva LimitRequestBody sotto AllowOverride All, i.e.:

…tagliare…

Opzioni -Indici
ConsentiIgnora tutto
LimiteRichiestaCorpo 995367

…tagliare…

Nota: ricorda di riavviare Apache dopo le modifiche applicate per aggiornarlo di conseguenza.

Conclusione

L'installazione predefinita del server Apache può fornire molte informazioni sensibili per aiutare gli aggressori in un attacco. Nel frattempo, ci sono anche molti altri modi (non elencati sopra) per proteggere il server Web Apache. Continua a cercare e a tenerti aggiornato su nuove direttive e moduli per proteggere ulteriormente il tuo server.

Come utilizzare AutoKey per automatizzare i giochi Linux
AutoKey è un'utilità di automazione desktop per Linux e X11, programmata in Python 3, GTK e Qt. Utilizzando la sua funzionalità di scripting e MACRO, ...
Come mostrare il contatore FPS nei giochi Linux
I giochi Linux hanno avuto una grande spinta quando Valve ha annunciato il supporto Linux per il client Steam e i loro giochi nel 2012. Da allora, mol...
Come scaricare e giocare a Sid Meier's Civilization VI su Linux
Introduzione al gioco Civilization 6 è una versione moderna del concetto classico introdotto nella serie dei giochi Age of Empires. L'idea era abbasta...