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é.
6 odkazů
- Web HTTPOXY https://httpoxy.org/
- Děkuji Jesse za recept na Debian 8.