GNU/Linux >> Linux Esercitazione >  >> Linux

Vulnerabilità HTTPOXY:come proteggere e testare il tuo server web

La vulnerabilità HTTPOXY che è stata rilevata di recente è una vulnerabilità che colpisce le applicazioni eseguite in ambienti cgi o simili a cgi. Ciò significa che il problema riguarda quasi tutti i server Web, inclusi Apache e Nginx, e anche la maggior parte delle applicazioni PHP. Anche la modalità mod_php su apache è influenzata.

Questo tutorial ti mostrerà come proteggere il tuo server web da HTTPOXY. Contiene sezioni per le distribuzioni Linux più utilizzate CentOS + RHEL, Debian e Ubuntu. I passaggi possono essere applicati anche ad altre distribuzioni Linux, ma i percorsi dei file di configurazione potrebbero differire.

Una descrizione dettagliata della vulnerabilità HTTPOXY è disponibile su questo sito Web https://httpoxy.org/.

I passaggi descritti in questo tutorial sono compatibili con i tutorial del server perfetto ISPConfig.

1 In che modo HTTPOXY influisce sul mio server?

HTTPOXY interessa i client che rispettano la variabile HTTP_PROXY e la utilizzano per la configurazione del proxy e le applicazioni lato server che utilizzano HTTP_PROXY come variabile reale o emulata nel proprio ambiente. Il risultato di un attacco può essere il traffico che viene inviato tramite proxy dall'applicazione web a un sistema di destinazione scelto dall'autore dell'attacco oppure l'applicazione apre connessioni in uscita ad altri sistemi. La vulnerabilità è facilmente sfruttabile da remoto e i server possono essere scansionati, quindi si consiglia vivamente di intraprendere azioni per chiuderla sul server.

1.1 Soluzione generale

La soluzione consigliata al momento è annullare l'impostazione o filtrare la variabile di intestazione HTTP_PROXY. Questo viene fatto in Apache con il modulo mod_headers e questa istruzione di configurazione:

RequestHeader unset Proxy early

Su Nginx puoi utilizzare questa riga per annullare l'impostazione della variabile HTTP_PROXY.

fastcgi_param HTTP_PROXY "";

Il prossimo capitolo descrive la procedura dettagliata per diverse distribuzioni Linux.

2 Debian

Questo capitolo descrive la configurazione per proteggere Apache e Nginx sui server Debian 8 (Jessie) e Debian 7 (Wheezy) contro HTTPOXY. I passaggi successivi presuppongono che tu abbia effettuato l'accesso come utente root sulla shell. Se hai effettuato l'accesso con un utente diverso, usa il comando su (o sudo se hai configurato sudo) per diventare l'utente root.

2.2 Debian 8 (Jessie) con Apache

Abilita il modulo delle intestazioni di Apache

a2enmod headers

Aggiungi un file di configurazione globale /etc/apache2/conf-available/httpoxy.conf. Userò l'editor nano qui:

nano /etc/apache2/conf-available/httpoxy.conf

e incolla il seguente contenuto in quel file:

<IfModule mod_headers.c>
    RequestHeader unset Proxy early
</IfModule>

Salva il file. Quindi abilitalo nella configurazione con il comando a2enconf e riavvia Apache.

a2enconf httpoxy
service apache2 restart

2.2 Debian 7 (Wheezy) con Apache

Abilita il modulo delle intestazioni di Apache:

a2enmod headers

Aggiungi un file di configurazione globale /etc/apache2/conf.d/httpoxy.conf. Userò l'editor nano qui:

nano /etc/apache2/conf.d/httpoxy.conf

e incolla il seguente contenuto in quel file:

<IfModule mod_headers.c>
    RequestHeader unset Proxy early
</IfModule>

Salva il file. Quindi riavvia Apache.

service apache2 restart

2.3 Debian con Nginx

Il comando seguente aggiungerà un fastcgi_param che imposta la variabile HTTP_PROXY su una stringa vuota nel file /etc/nginx/fastcgi_params.

echo 'fastcgi_param HTTP_PROXY "";' >> /etc/nginx/fastcgi_params

Quindi riavvia nginx per applicare la modifica alla configurazione.

service nginx restart

3 Ubuntu

Questo capitolo descrive la configurazione per proteggere Apache e Nginx sui server Ubuntu 14.04 - 16.04 contro HTTPOXY.

3.1 Ubuntu con Apache

Abilita il modulo delle intestazioni di Apache.

sudo a2enmod headers

Aggiungi un file di configurazione globale /etc/apache2/conf-available/httpoxy.conf. Userò l'editor nano qui:

sudo nano /etc/apache2/conf-available/httpoxy.conf

e incolla il seguente contenuto in quel file:

<IfModule mod_headers.c>
    RequestHeader unset Proxy early
</IfModule>

Salva il file. Quindi abilitalo nella configurazione con il comando a2enconf e riavvia Apache.

sudo a2enconf httpoxy
sudo service apache2 restart

3.2 Ubuntu con Nginx

I passaggi per proteggere Ubuntu da HTTPOXY sono simili a quelli per Debian. Dobbiamo solo assicurarci di eseguire i comandi con sudo. Questo comando echo aggiungerà una riga fastcgi_param che imposta la variabile HTTP_PROXY come una stringa vuota. Il file /etc/nginx/fastcgi_params è incluso nelle sezioni predefinite @PHP e cgi-bin dei file vhost di nginx e anche nei vhost creati da ISPConfig. Se hai aggiunto vhost personalizzati, verifica che contengano "include /etc/nginx/fastcgi_params;" nelle sezioni di configurazione per php e altri connettori cgi o fastcgi.

Esegui il comando seguente per aggiungere la variabile HTTP_PROXY vuota.

sudo echo 'fastcgi_param HTTP_PROXY "";' >> /etc/nginx/fastcgi_params

Quindi riavvia Nginx per applicare la modifica alla configurazione.

sudo service nginx restart

4 CentOS, RHEL e Fedora

Questo capitolo descrive la configurazione per proteggere Apache e Nginx sui server CentOS da HTTPOXY. Gli stessi passaggi dovrebbero funzionare anche per i server Fedora. Accedi come utente root sulla shell prima di procedere con i comandi seguenti.

4.1 Apache

Il file di configurazione di Apache (httpd) su CentOS è /etc/httpd/conf/httpd.conf. Aggiungerò la regola dell'intestazione di apache alla fine del file httpd.conf con questo comando:

echo "RequestHeader unset Proxy early" >> /etc/httpd/conf/httpd.conf

Quindi riavvia httpd per applicare la modifica alla configurazione.

service httpd restart

4.2 Nginx

Il server web Nginx su CentOS include fastcgi_params nella sezione PHP e CGI del vhost predefinito, quindi possiamo aggiungere la regola per impostare lì la variabile HTTP_PROXY vuota. Esegui questo comando per aggiungere la variabile HTTP_PROXY vuota.

echo 'fastcgi_param HTTP_PROXY "";' >> /etc/nginx/fastcgi_params

Quindi riavvia nginx per applicare la modifica alla configurazione.

service nginx restart

5 Test

Infine, dovresti verificare se il tuo server è sicuro ora. Luke Rehman ha sviluppato un simpatico strumento di test online che può essere trovato qui: https://httpoxy.rehmann.co/

Inserisci l'URL del tuo server o sito web nello strumento e fai clic sul pulsante "test".

Ecco il risultato per howtoforge.com. Come puoi vedere, il nostro sito Web è sicuro.

  • Il sito Web HTTPOXY https://httpoxy.org/
  • Grazie a Jesse per la ricetta di Debian 8.


Linux
  1. Come configurare un server web Apache

  2. Che cos'è un server Web e come funziona un server Web?

  3. Come risolvere la vulnerabilità DROWN nel server Web Apache/NGINX e SMTP?

  4. Come installare il server Web Apache su Ubuntu

  5. Come proteggere Apache e SSH con Fail2Ban su CentOS 8

Come ospitare un sito Web su un server Web Apache

Come installare Apache Web Server su Alpine Linux

Proteggi il tuo server Web Apache Best Practice

Come ottimizzare il server Web Apache?

Come aggiungere il supporto PHP-FPM su Apache e Nginx Web Server su Ubuntu 18.04

Come installare e configurare un server Web LAMP su Ubuntu 18.04