Úvod
Apache je nejpopulárnější webový server používaný na internetu. A je ideální pro většinu situací a umožňuje flexibilitu pro sdílená prostředí. V tomto tutoriálu uvidíme, jak zabezpečit Apache webový server. Pro tento tutoriál použijeme Centos 8. Návod k instalaci Apache najdete zde. Uvidíme, jak upravit Apache konfigurace také na systému Ubuntu/Debian.
1. Udržujte aktuální Apache
Přihlaste se do systému pomocí privilegovaného uživatelského účtu root nebo sudo. zkontrolujte Apache verzi spuštěním následujícího příkazu.
httpd -v
2. Skrýt informace o verzi Apache a serveru .
První věc, kterou musíme zvážit, nechceme prozradit, jakou verzi webového serveru v našem systému používáme. Odhalení informací o verzi a operačním systému znamená, že pomáháme hackerům urychlit proces útoku. Na obrázku níže vidíme, že Apache zobrazí jeho verzi s nainstalovaným operačním systémem na našem serveru.
Chcete-li zabránit Apache od odhalení jeho verze a informací o operačním systému, musíme změnit Apache hlavní konfigurační soubor. otevřete konfigurační soubor spuštěním následujícího příkazu-
nano /etc/httpd/conf/httpd.conf
nano /etc/apache2/apache.conf (Ubuntu / Debian)
Nyní přidejte dvě níže uvedené direktivy do hlavního konfiguračního souboru a uložte jej.
ServerTokens Prod
ServerSignature Off
A restartujte Apache serveru spuštěním následujícího příkazu-
systemctl restart httpd.service
Jak můžeme vidět na obrázku níže, Apache verze není vystavena a provozní informace také nejsou viditelné.
3. Zakázat indexování adresářů
Ve výchozím nastavení Apache zobrazuje veškerý obsah adresáře Webroot bez indexového souboru. Jako na obrázku níže,
abychom zabránili indexování adresářů v prohlížeči, musíme změnit direktivu options v Apache konfigurační soubor. Otevřete konfiguraci a změňte položku, jak je uvedeno níže.
<Directory /var/www/html>
Options -Indexes
</Directory>
Nyní otevřete prohlížeč a do adresního řádku zadejte IP nebo URL. A uvidíme obrázek jako níže
4. Zakázat ETag
Etag se používá v HTTP hlavičkách ke správě chování webového mezipaměti. Nicméně Etag může způsobit bezpečnostní problémy. Umožňuje vzdáleným útočníkům získat citlivé informace, jako je číslo inodu, typ MIME a proces prostřednictvím ETag záhlaví. Chcete-li zabránit útokům a úniku informací, přidejte do Apache následující direktivu konfigurace.
Chcete-li toho dosáhnout, jednoduše přidejte následující řádek do Apache konfiguračního souboru a restartujte Apache .
FileEtag None
5. Zakázat CGI &SSI
SSI (server-side include) jsou direktivy, které se používají k psaní HTML stránky s dynamickým obsahem a CGI se používá k vkládání škodlivých skriptů do vašeho webového kódu. Omezte CGI a SSI přidáním následujících direktiv voleb do konfigurace Apache:
Options -Includes -ExecCGI
6. Omezit přístup k adresářu
Je dobrým bezpečnostním postupem omezit přístup k adresáři webroot pomocí „Povolit a zakázat“ syntax. Chcete-li toho dosáhnout, proveďte v apache následující změny konfigurační soubor. Otevřete konfigurační soubor a server pro Adresář zablokujte a zapište direktivu adresáře následovně a uložte ji. nyní restartujte Apache, abyste změnili efekty
<Directory />
Options None
Order deny,allow
Deny from all
</Directory>
Výše uvedené nastavení odmítne požadavky od kohokoli do kořenového adresáře. Nikdo nemá přístup do kořenového adresáře.
7. Zabezpečte Apache pomocí Mod_Security
Mod_security je bezpečnostní nástroj, který funguje jako firewall pro webové stránky nebo aplikace. Pomáhá chránit webové stránky nebo aplikace před přístupem autorizovaným OSN a také před útoky hrubou silou. Nainstalujte mod_security spuštěním následujícího příkazu a restartujte Apache pro práci s mod_security.
dnf -y install mod_security
8. Definujte metody požadavku HTTP
V aktuálním HTTP protokol, mnoho požadavků není vyžadováno a některé představují bezpečnostní riziko. Na to, aby webová aplikace umožňovala GET, to však stačí , HEAD a PŘIDAT metody požadavku. Toto nastavení můžeme nakonfigurovat přidáním příslušné direktivy Directory. Chcete-li toho dosáhnout, otevřete Apache konfiguračního souboru, vyhledejte Directory a přidejte následující vnitřní direktivu a restartujte Apache
<LimitExcept GET POST HEAD>
deny from all
</LimitExcept>
9. Povolit XSS Protection Header
Skriptování mezi weby je známé jako (XSS) a jedná se o běžnou chybu zabezpečení, která se vyskytuje ve webových aplikacích. Ochrana Cross-Site Scripting (XSS) může v mnoha prohlížečích přeskakovat. Některým útokům XSS však můžeme zabránit přidáním následující položky do našeho Apache konfigurační soubor a jeho uložení. A restartujte Apache server.
Header set X-XSS-Protection "1; mode=block"
Nyní zkontrolujte záhlaví požadavku ve vývojářském nástroji prohlížeče, na obrázku níže můžeme vidět, že záhlaví je úspěšně implementováno.
10. Zakázat TRACE HTTP Request
Ve výchozím nastavení se požadavek Trace HTTP otevře v Apache umožňující sledování napříč stránkami. Tato možnost umožňuje hackerovi snadno ukrást informace o souborech cookie. abyste tomu zabránili, přidejte do Apache následující parametry konfigurační soubor. A restartujte Apache .
TraceEnable off
11. Zabraňte útokům typu Clickjacking
Clickjacking , také známý jako „útok nápravy uživatelského rozhraní“, je zákeřná technika ke shromažďování kliknutí infikovaného uživatele. Clickjacking oklame oběť (návštěvníka), aby kliknul na infikovanou stránku. Abychom tomuto incidentu zabránili, musíme použít „X-FRAME-OPTION“ v Apache konfigurační soubor. Chcete-li to provést, přidejte do konfiguračního souboru následující řádek.
Header set X-FRAME-OPTIONS "SAMEORIGIN"
Nyní zkontrolujte záhlaví požadavku v nástroji pro vývojáře prohlížeče, protože vidíme, že jsme úspěšně přidali X-FRAME-OPTIONS na Apache konfigurační soubor.
13. Zabezpečený soubor cookie s příznakem HTTPOnly
Bez HttpOnly a Secure je možné krást nebo manipulovat s relacemi webových aplikací a soubory cookie, a to je nebezpečné. Abychom to zmírnili, musíme zajistit, aby mod_header modul běží na straně serveru.
apachectl -M | grep header
Na obrázku výše vidíme, že se modul mod_header načetl a povolil v Apache . Nyní přidejte následující řádek do hlavního konfiguračního souboru Apache a restartujte Apache server.
Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure
14. Omezit velikost požadavku
Ve výchozím nastavení požadavek HTTP v Apache je neomezená; webový server je tedy náchylný k útokům DoS tím, že je ponechán otevřený pro vysoký počet požadavků. Poté je důležité nastavit limit pro žádost o soubor. To lze provést přidáním LimitRequestBody direktivu Apache konfigurační soubor.
Unixcop je například adresář, který obsahuje soubory nahrané uživateli. Nyní omezujeme velikost nahrávání na 2 kB takže uživatel nemůže nahrát více souborů než toto.
<Directory "/var/www/html/unixcop">
LimitRequestBody 20000
</Directory
Závěr
Z tohoto tutoriálu jsme se dozvěděli, jak můžeme chránit náš server Apache před útočníkem. doufáme, že vám náš článek pomůže chránit váš server. můžete také sledovat mé další články.