Apache je jedním z nejoblíbenější webové servery, ale jeho výchozí konfigurace obsahuje sporné možnosti na mnoha distribucích Linuxu. Apache má tendenci propagovat svou konkrétní verzi a platformu, na které běží, což jsou informace, které mohou být pro útočníky cenné.
Tento stručný článek vám ukáže, jak deaktivovat tento výstup, abyste ochránili váš server. Obvykle není důvod, aby byl aktivní a jeho vypnutí by mělo trvat jen minutu.
Co je za problém?
Zde je čerstvá instalace Apache 2.4 zobrazující index adresáře:
Zápatí stránky odhaluje kód verze Apache, název operačního systému a interní IP adresu a číslo portu vašeho serveru.
Toto jsou potenciálně citlivé detaily. Zranitelnost zero-day v Apache může ovlivnit pouze malý rozsah verzí. Když necháte tento výstup zapnutý, ukážete světu, zda je váš počítač ohrožen. Díky tomu mohou útočníci mnohem snáze identifikovat vašeho hostitele jako potenciálního cíle.
Apache tato data označuje jako „podpis serveru“. Není omezeno na stránky indexu adresářů: kód verze je zahrnut do každé odpovědi HTTP v rámci Server
záhlaví:
Bude přítomen bez ohledu na stavový kód odpovědi. Útočníci mohou najít vaši přesnou verzi Apache pouhým odesláním požadavku ping na váš server, bez ohledu na to, zda znají platnou adresu URL.
Zakázání podpisu serveru
Zakázání tohoto nechtěného výstupu má dvě části. První je ServerSignature
hodnotu ve vašem konfiguračním souboru Apache. Umístění tohoto souboru se liší; /etc/apache2/apache2.conf
a /usr/local/apache2/conf/httpd.conf
jsou dvě běžné možnosti. The ServerSignature
směrnice je také podporována uvnitř .htaccess
soubory ve vašem webovém kořenovém adresáři.
Nastavte směrnici na Off
deaktivace podpisu, který se zobrazuje na webových stránkách generovaných serverem:
ServerSignature Off
Chcete-li použít změnu, restartujte Apache:
$ sudo service apache2 restart
To ovlivní výpisy adresářů, výchozí chybové stránky Apache a další výstup HTML vytvořený serverem. Off
zcela odstraní řádek podpisu. Nastavení volitelně podporuje třetí hodnotu, EMail
, který poskytuje odkaz pro odeslání e-mailu na adresu definovanou uživatelem ServerAdmin
:
ServerAdmin [chráněno e-mailem] E-mail s podpisem serveru
Tím se nahradí informace o verzi Apache e-mailovým odkazem.
Správa serverových tokenů
Obsah Server
hlavička odpovědi je řízena jiným nastavením, ServerTokens
. To lze nastavit pouze globálním konfiguračním souborem vašeho serveru. Uvnitř to není podporováno .htaccess
soubory.
Výchozí hodnota je Full
který představuje přesný řetězec verze a název operačního systému pozorovaný ve výše uvedeném příkladu. To může také zahrnovat čísla verzí načtených modulů a enginů obsahu CGI, jako je PHP.
Podporovány jsou následující alternativní hodnoty:
Full
-Apache/2.4.2 (Ubuntu)
Prod
-Apache
Major
-Apache/2
Minor
-Apache/2.4
Min
-Apache/2.4.2
OS
- Stejný jakoFull
ale bez informací o načtených modulech
Projekt Prod
volba je nejbezpečnější hodnotou. Můžete si to představit jako Production
, i když je to vlastně zkratka ProductOnly
. Tento token serveru znamená Server
záhlaví pouze odhalí, že používáte Apache, bez dalších informací o vydání. Útočníci budou muset více zkoumat pokusy a omyly, aby našli zneužitelná zranitelnost ve vaší instalaci.
Bohužel neexistuje způsob, jak to odstranit Server
záhlaví úplně. Vlastně Apache trvá na tom jeho zakázání „nedělá vůbec nic pro zvýšení bezpečnosti vašeho serveru“ a navrhuje použití Min
aby bylo snazší ladit mezioperační problémy.
Většina lidí jej však nikdy nekonzumuje Server
a vždy je nejbezpečnější inzerovat co nejméně informací o vašem systému. I když to nezabrání zneužití zranitelností, ServerTokens Prod
by mohly útočníky odradit od spekulativních pokusů. Kolemjdoucím také ztíží sbírání podrobností o vnitřním fungování vašeho technologického zásobníku. Je to jen malé zpevnění, ale jednoho dne to může být rozdíl, který potřebujete.
A co PHP?
Apache se často používá před webovými stránkami a aplikacemi poháněnými PHP. Bohužel PHP má svůj vlastní zvyk poskytovat své číslo verze internetu. Objeví se v X-Powered-By
záhlaví odpovědí zaslaných vaším PHP kódem.
Můžete to vypnout úpravou konfiguračního souboru PHP pomocí následujícího řádku:
expose_php=Vypnuto
Konfigurační soubor lze obvykle nalézt na adrese /etc/php/8.1/apache2/php.ini
. Nahradit 8.1
s verzí PHP, kterou používáte. Chcete-li použít změnu, budete muset restartovat webový server.
Shrnutí
Výchozí konfigurace Apache odhaluje přesné číslo verze vašeho serveru, stejně jako jeho operační systém a IP adresu. Tyto zdánlivě neškodné informace mohou podat pomocnou ruku útočníkům, kteří hledají zranitelné servery.
Vypnutí podpisu serveru je rychlý způsob, jak posílit vaše prostředí. Je také dobré řešit podobné vystavení informací z jiného softwaru ve vašem zásobníku současně. PHP a některé webové rámce přicházejí s podobnými chybami zabezpečení.