V tomto článku najdete několik tipů a triků, jak posílit vaše konfigurace webového serveru Apache a zlepšit obecné zabezpečení.
Účet neprivilegovaného uživatele
Účelem účtu uživatele bez oprávnění root nebo neprivilegovaného uživatele je omezit uživatele před zbytečným přístupem k určitým úkolům v systému. V kontextu webového serveru Apache to znamená, že by měl fungovat v omezeném prostředí pouze s potřebnými oprávněními. Ve výchozím nastavení běží Apache s oprávněními účtu démona. Můžete si vytvořit samostatný uživatelský účet bez oprávnění root, abyste se vyhnuli hrozbám v případě slabých míst zabezpečení.
Kromě toho, pokud apache2 a MySQL mají stejná pověření uživatele, jakýkoli problém v procesu služby jednou bude mít dopad na druhou. Chcete-li změnit oprávnění uživatele a skupiny pro webový server, přejděte na / etc / apache2, otevřete soubor envvars a nastavte uživatele a skupinu na nového uživatele účtu bez oprávnění, řekněme „apache“ a uložte soubor.
ubuntu @ ubuntu ~: $ sudo vim / etc / apache2 / envvars... snip ..
export APACHE_RUN_USER = apache
export APACHE_RUN_GROUP = apache
... snip ..
Následující příkaz můžete také použít ke změně vlastnictví instalačního adresáře na nového uživatele bez oprávnění root.
ubuntu @ ubuntu ~: $ sudo chown -R apache: apache / etc / apache2Chcete-li uložit změny, zadejte následující příkaz:
ubuntu @ ubuntu ~: $ sudo service apache2 restart
Udržujte Apache aktuální
Apache je známý tím, že poskytuje bezpečnou platformu s vysoce znepokojenou vývojářskou komunitou, která málokdy čelí žádným bezpečnostním chybám. Je však normální objevit problémy po vydání softwaru. Proto je nezbytné udržovat webový server aktuální, aby bylo možné využívat nejnovější funkce zabezpečení. Rovněž se doporučuje sledovat seznamy oznámení serveru Apache, abyste se neustále informovali o nových oznámeních, vydáních a aktualizacích zabezpečení od vývojové komunity Apache.
Chcete-li aktualizovat svůj apache pomocí apt, zadejte následující:
ubuntu @ ubuntu ~: $ sudo apt-get aktualizaceubuntu @ ubuntu ~: $ sudo apt-get upgrade
Zakázat podpis serveru
Výchozí konfigurace serveru Apache poskytuje mnoho podrobností o serveru a jeho nastavení. Například povolené direktivy ServerSignature a ServerTokens v souboru / etc / apache2 / apache2.soubor conf přidá do odpovědi HTTP další záhlaví, které vystavuje potenciálně citlivé informace. Tyto informace zahrnují podrobnosti o nastavení serveru, jako je verze serveru a hostitelský operační systém, které mohou útočníkovi pomoci s procesem průzkumu. Tyto směrnice můžete deaktivovat úpravou apache2.conf soubor přes vim / nano a přidejte následující směrnici:
ubuntu @ ubuntu ~: $ sudo vim / etc / apache2 / apache2.konf... snip ..
Podpis serveru je vypnutý
... snip ..
ServerTokens Prod
... snip ..
Restartujte Apache a aktualizujte změny.
Zakažte výpisy adresářů serveru
Výpisy adresáře zobrazují veškerý obsah uložený v kořenové složce nebo podadresářích. Soubory adresáře mohou obsahovat citlivé informace, které nejsou určeny pro veřejné zobrazení, jako jsou skripty PHP, konfigurační soubory, soubory obsahující hesla, protokoly atd.
Chcete-li zakázat výpisy adresářů, změňte konfigurační soubor serveru Apache úpravou apache2.conf soubor jako:
... snip ..
Možnosti - Indexy
... snip ..
NEBO
... snip ..Možnosti - Indexy
... snip ..
Tuto směrnici můžete také přidat do složky .soubor htaccess vašeho hlavního adresáře webových stránek.
Chraňte nastavení systému
The .Soubor htaccess je pohodlná a výkonná funkce, která umožňuje konfiguraci mimo hlavní apache2.soubor conf. V případech, kdy uživatel může nahrát soubory na server, to však může útočník zneužít k nahrání svých vlastních “.soubor htaccess ”se škodlivými konfiguracemi. Pokud tedy tuto funkci nepoužíváte, můžete deaktivovat .směrnice htaccess, tj.E.:
ubuntu @ ubuntu ~: $ sudo vim / etc / apache2 / apache2.konf... snip ..
#AccessFileName .htaccess
... snip ..
NEBO
Zakázat .soubor htaccess s výjimkou speciálně povolených adresářů úpravou apache2.soubor conf a změna direktivy AllowOverRide na None;
... snip ..
AllowOverride Žádný
... snip ..
Zabezpečené adresáře s ověřováním
Pomocí nástroje htpasswd můžete vytvořit pověření uživatele k ochraně všech nebo některých adresářů. Přejděte do složky serveru a pomocí následujícího příkazu vytvořte .soubor htpasswd pro ukládání hash hesel pro přihlašovací údaje přiřazené například uživateli s názvem dev.
[chráněno e-mailem] ~: $ sudo htpasswd -c / etc / apache2 / -htpasswd devVýše uvedený příkaz požádá o nové heslo a potvrzení hesla. Můžete si prohlédnout kočku ./ htpasswd soubor ke kontrole hash uložených pověření uživatele.
Nyní můžete automaticky nastavit konfigurační soubor v adresáři your_website, který potřebujete chránit úpravou .soubor htaccess. K povolení ověřování použijte následující příkaz a směrnice:
ubuntu @ ubuntu ~: $ sudo nano / var / www / your_website /.htaccess... snip ..
AuthType Basic
AuthName "Přidat výzvu k dialogu"
AuthUserFile / etc / apache2 / uživatelské_jméno / název_domény /.htpasswd
Vyžadovat platného uživatele
... snip ..
Nezapomeňte přidat cestu podle vašich.
Spusťte nezbytné moduly
Výchozí konfigurace Apache zahrnuje povolené moduly, které možná ani nepotřebujete. Tyto předinstalované moduly otevírají dveře pro bezpečnostní problémy Apache, které již existují nebo mohou existovat v budoucnu. Chcete-li deaktivovat všechny tyto moduly, musíte nejprve pochopit, které moduly jsou nutné pro bezproblémové fungování vašeho webového serveru. Za tímto účelem zkontrolujte dokumentaci modulu apache, která pokrývá všechny dostupné moduly.
Dále použijte následující příkaz ke zjištění, které moduly běží na vašem serveru.
[chráněno e-mailem] ~: $ sudo ls / etc / apache2 / mods-enabledApache je dodáván s výkonným příkazem a2dismod pro deaktivaci modulu. Zabraňuje načtení modulu a při deaktivaci modulu vás vyzve s upozorněním, že akce může negativně ovlivnit váš server.
[chráněno e-mailem] ~: $ sudo a2dismod název_moduluModul můžete také deaktivovat komentováním v řádku LoadModule.
Zabraňte pomalému Loris a útoku DoS
Výchozí instalace serveru Apache jej nutí čekat na požadavky klientů příliš dlouho, což server vystaví útokům Slow Loris a DoS. Apache2.konfigurační soubor conf poskytuje direktivu, kterou můžete použít ke snížení hodnoty časového limitu na několik sekund, aby se zabránilo těmto typům útoků, tj.E.:
ubuntu @ ubuntu ~: $ sudo vim / etc / apache2 / apache2.konfČasový limit 60
Kromě toho nový server Apache přichází s praktickým modulem mod_reqtimeout, který poskytuje směrnici RequestReadTimeout k zabezpečení serveru před nelegitimními požadavky. Tato směrnice přichází s několika složitými konfiguracemi, takže si můžete přečíst související informace dostupné na stránce dokumentace.
Zakažte zbytečné požadavky HTTP
Neomezené požadavky HTTP / HTTPS mohou také vést k nízkému výkonu serveru nebo útoku DoS. Můžete omezit příjem požadavků HTTP na adresář pomocí LimitRequestBody na méně než 100 kB. Například pro vytvoření direktivy pro složku / var / www / your_website můžete přidat direktivu LimitRequestBody pod AllowOverride All, i.E.:
... snip ..Možnosti - Indexy
AllowOverride All
LimitRequestBody 995367
... snip ..
Poznámka: Nezapomeňte restartovat Apache po provedených změnách, abyste jej odpovídajícím způsobem aktualizovali.
Závěr
Výchozí instalace serveru Apache může poskytnout útočníkům spoustu citlivých informací. Mezitím existuje spousta dalších způsobů (které nejsou uvedeny výše), jak zabezpečit také webový server Apache. Pokračujte ve výzkumu a udržujte si přehled o nových směrnicích a modulech, abyste svůj server dále zabezpečili.