GNU/Linux >> Znalost Linux >  >> Linux

Chyba zabezpečení HTTPOXY:Jak chránit a testovat váš webový server

Zranitelnost HTTPOXY, která byla nedávno nalezena, je zranitelnost, která ovlivňuje aplikace, které běží v prostředích cgi nebo cgi podobných prostředích. To znamená, že problém se týká téměř všech webových serverů včetně Apache a Nginx a také většiny aplikací PHP. Dokonce i režim mod_php na Apache je ovlivněn.

Tento tutoriál vám ukáže, jak chránit váš webový server před HTTPOXY. Obsahuje sekce pro nejpoužívanější linuxové distribuce CentOS + RHEL, Debian a Ubuntu. Tyto kroky lze použít i na jiné distribuce Linuxu, ale cesty ke konfiguračním souborům se mohou lišit.

Podrobný popis zranitelnosti HTTPOXY lze nalézt na této webové stránce https://httpoxy.org/.

Kroky popsané v tomto návodu jsou kompatibilní s výukovými programy serveru ISPConfig perfect.

1 Jak HTTPOXY ovlivňuje můj server?

HTTPOXY ovlivňuje klienty, kteří respektují proměnnou HTTP_PROXY a používají ji pro konfiguraci proxy serveru, a aplikace na straně serveru, které používají HTTP_PROXY jako skutečnou nebo emulovanou proměnnou ve svém prostředí. Výsledkem útoku může být provoz, který se webovou aplikací přesouvá do cílového systému zvoleného útočníkem nebo aplikace otevírá odchozí připojení k jiným systémům. Tuto chybu zabezpečení lze snadno vzdáleně zneužít a servery ji lze prohledat, proto důrazně doporučujeme podniknout kroky k jejímu uzavření na vašem serveru.

1.1 Obecné řešení

V současnosti je doporučeným řešením zrušit nastavení nebo filtrovat proměnnou záhlaví HTTP_PROXY. To se provádí v Apache pomocí modulu mod_headers a tohoto konfiguračního příkazu:

RequestHeader unset Proxy early

Na Nginx můžete pomocí tohoto řádku zrušit nastavení proměnné HTTP_PROXY.

fastcgi_param HTTP_PROXY "";

Další kapitola popisuje podrobný postup pro různé distribuce Linuxu.

2 Debian

Tato kapitola popisuje konfiguraci pro ochranu Apache a Nginx na serverech Debian 8 (Jessie) a Debian 7 (Wheezy) proti HTTPOXY. Další kroky předpokládají, že jste přihlášeni jako uživatel root v shellu. Pokud jste přihlášeni pod jiným uživatelem, použijte příkaz su (nebo sudo, pokud jste nakonfigurovali sudo), abyste se stali uživatelem root.

2.2 Debian 8 (Jessie) s Apache

Povolte modul záhlaví Apache

a2enmod headers

Přidejte globální konfigurační soubor /etc/apache2/conf-available/httpoxy.conf. Zde použiji nano editor:

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

a vložte do tohoto souboru následující obsah:

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

Uložte soubor. Poté jej povolte v konfiguraci pomocí příkazu a2enconf a restartujte apache.

a2enconf httpoxy
service apache2 restart

2.2 Debian 7 (Wheezy) s Apache

Povolte modul záhlaví Apache:

a2enmod headers

Přidejte globální konfigurační soubor /etc/apache2/conf.d/httpoxy.conf. Zde použiji nano editor:

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

a vložte do tohoto souboru následující obsah:

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

Uložte soubor. Poté restartujte apache.

service apache2 restart

2.3 Debian s Nginx

Následující příkaz přidá fastcgi_param, který nastaví proměnnou HTTP_PROXY na prázdný řetězec do souboru /etc/nginx/fastcgi_params.

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

Poté restartujte nginx, abyste použili změnu konfigurace.

service nginx restart

3 Ubuntu

Tato kapitola popisuje konfiguraci pro ochranu Apache a Nginx na serverech Ubuntu 14.04 - 16.04 proti HTTPOXY.

3.1 Ubuntu s Apache

Povolte modul záhlaví Apache.

sudo a2enmod headers

Přidejte globální konfigurační soubor /etc/apache2/conf-available/httpoxy.conf. Zde použiji nano editor:

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

a vložte do tohoto souboru následující obsah:

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

Uložte soubor. Poté jej povolte v konfiguraci pomocí příkazu a2enconf a restartujte apache.

sudo a2enconf httpoxy
sudo service apache2 restart

3.2 Ubuntu s Nginx

Kroky k ochraně Ubuntu proti HTTPOXY jsou podobné jako v Debianu. Musíme pouze zajistit spouštění příkazů pomocí sudo. Tento příkaz echo přidá řádek fastcgi_param, který nastaví proměnnou HTTP_PROXY jako prázdný řetězec. Soubor /etc/nginx/fastcgi_params je zahrnut do výchozích sekcí @PHP a cgi-bin souborů nginx vhost a také do vhostů, které jsou vytvořeny ISPConfig. Pokud jste přidali vlastní vhosty, zkontrolujte, zda obsahují "include /etc/nginx/fastcgi_params;" v sekcích konfigurace pro php a další konektory cgi nebo fastcgi.

Spusťte následující příkaz a přidejte prázdnou proměnnou HTTP_PROXY.

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

Poté restartujte Nginx, abyste použili změnu konfigurace.

sudo service nginx restart

4 CentOS, RHEL a Fedora

Tato kapitola popisuje konfiguraci pro ochranu Apache a Nginx na serverech CentOS proti HTTPOXY. Stejné kroky by měly fungovat i pro servery Fedory. Než budete pokračovat s níže uvedenými příkazy, přihlaste se jako uživatel root v shellu.

4.1 Apache

Konfigurační soubor Apache (httpd) na CentOS je /etc/httpd/conf/httpd.conf. Pravidlo záhlaví apache přidám na konec souboru httpd.conf tímto příkazem:

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

Poté restartujte httpd, abyste použili změnu konfigurace.

service httpd restart

4.2 Nginx

Webový server Nginx na CentOS zahrnuje fastcgi_params do sekce PHP a CGI výchozího vhost, takže tam můžeme přidat pravidlo pro nastavení prázdné proměnné HTTP_PROXY. Spuštěním tohoto příkazu přidáte prázdnou proměnnou HTTP_PROXY.

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

Poté restartujte nginx, abyste použili změnu konfigurace.

service nginx restart

5 testů

Nakonec byste měli otestovat, zda je váš server nyní bezpečný. Luke Rehman vyvinul pěkný online testovací nástroj, který najdete zde: https://httpoxy.rehmann.co/

Zadejte adresu URL vašeho serveru nebo webové stránky do nástroje a klikněte na tlačítko „test“.

Zde je výsledek pro howtoforge.com. Jak můžete vidět, naše webové stránky jsou bezpečné.

  • Web HTTPOXY https://httpoxy.org/
  • Děkuji Jesse za recept na Debian 8.


Linux
  1. Jak opravit zranitelnost DROWN na webovém serveru Apache/NGINX a SMTP?

  2. Jak spustit, restartovat a zastavit webový server Apache

  3. Jak nainstalovat a nakonfigurovat webový server Apache na Ubuntu 13.10

  1. Jak nakonfigurovat webový server Apache

  2. Jak najít konfigurační soubory MySQL, PHP a Apache

  3. Co je webový server a jak webový server funguje?

  1. Jak nainstalovat webový server Apache na Ubuntu

  2. Jak chránit Apache a SSH pomocí Fail2Ban na CentOS 8

  3. Jak zjistím chyby syntaxe v konfiguraci webového serveru Apache