V tomto článku nájdete niekoľko tipov a trikov na vylepšenie konfigurácií webového servera Apache a zvýšenie všeobecnej bezpečnosti.
Účet neprivilegovaného používateľa
Účelom iného ako root alebo neprivilegovaného používateľského účtu je obmedziť používateľa pred zbytočným prístupom k určitým úlohám v systéme. V kontexte webového servera Apache to znamená, že by mal fungovať v obmedzenom prostredí iba s potrebnými povoleniami. V predvolenom nastavení beží Apache s oprávneniami účtu démona. Môžete si vytvoriť samostatný užívateľský účet typu non-root, aby ste sa vyhli hrozbám v prípade zraniteľnosti zabezpečenia.
Okrem toho, ak majú server apache2 a MySQL rovnaké prihlasovacie údaje, akýkoľvek problém v procese jednej služby bude mať vplyv na druhú. Ak chcete zmeniť oprávnenie používateľa a skupiny pre webový server, prejdite na / etc / apache2, otvorte súbor envvars a nastavte používateľa a skupinu na nového neprivilegovaného používateľa účtu, napríklad „apache“, a uložte súbor.
ubuntu @ ubuntu ~: $ sudo vim / etc / apache2 / envvars... snip ..
export APACHE_RUN_USER = apache
export APACHE_RUN_GROUP = apache
... snip ..
Pomocou nasledujúceho príkazu môžete tiež zmeniť vlastníctvo inštalačného adresára na nového používateľa bez oprávnenia root.
ubuntu @ ubuntu ~: $ sudo chown -R apache: apache / etc / apache2Zadajte nasledujúci príkaz na uloženie zmien:
ubuntu @ ubuntu ~: $ sudo service apache2 restart
Udržujte Apache aktuálny
Apache je známy tým, že poskytuje bezpečnú platformu vysoko zainteresovanej vývojárskej komunite, ktorá zriedka čelí akýmkoľvek bezpečnostným chybám. Napriek tomu je normálne objaviť problémy hneď po vydaní softvéru. Preto je nevyhnutné udržiavať webový server v aktualizovanom stave, aby ste mohli využívať najnovšie bezpečnostné funkcie. Odporúča sa tiež dodržiavať zoznamy oznámení servera Apache, aby ste boli informovaní o nových oznámeniach, vydaniach a bezpečnostných aktualizáciách vývojárskej komunity Apache.
Ak chcete aktualizovať svoj apache pomocou apt, zadajte nasledujúci príkaz:
ubuntu @ ubuntu ~: $ sudo apt-get aktualizáciaubuntu @ ubuntu ~: $ sudo apt-get upgrade
Zakázať podpis servera
Predvolená konfigurácia servera Apache poskytuje veľa podrobností o serveri a jeho nastaveniach. Napríklad povolené smernice ServerSignature a ServerTokens v priečinku / etc / apache2 / apache2.conf súbor pridať ďalšiu hlavičku do odpovede HTTP, ktorá vystavuje potenciálne citlivé informácie. Tieto informácie zahŕňajú podrobnosti o nastavení servera, ako je verzia servera a hostujúci operačný systém, ktoré môžu útočníkovi pomôcť pri procese prieskumu. Tieto smernice môžete zakázať úpravou apache2.conf súbor cez vim / nano a pridajte nasledujúcu smernicu:
ubuntu @ ubuntu ~: $ sudo vim / etc / apache2 / apache2.konf... snip ..
Serverový podpis vypnutý
... snip ..
ServerTokens Prod
... snip ..
Reštartujte Apache a aktualizujte zmeny.
Zakážte zoznamy adresárov servera
Výpisy adresára zobrazujú všetok obsah uložený v koreňovom priečinku alebo podadresároch. Súbory adresára môžu obsahovať citlivé informácie, ktoré nie sú určené na verejné zobrazovanie, ako sú skripty PHP, konfiguračné súbory, súbory obsahujúce heslá, protokoly atď.
Ak chcete zakázať zoznamy adresárov, zmeňte konfiguračný súbor servera Apache úpravou apache2.conf súbor ako:
... snip ..
Možnosti - Indexy
... snip ..
ALEBO
... snip ..Možnosti - Indexy
... snip ..
Túto smernicu môžete tiež pridať do .súbor htaccess vášho hlavného adresára webových stránok.
Chráňte nastavenia systému
The .Súbor htaccess je pohodlná a výkonná funkcia, ktorá umožňuje konfiguráciu mimo hlavného apache2.conf súbor. Avšak v prípadoch, keď môže užívateľ nahrať súbory na server, môže to útočník zneužiť na nahranie svojich vlastných “.htaccess ”so škodlivými konfiguráciami. Pokiaľ teda túto funkciu nepoužívate, môžete vypnúť .smernica htaccess, t.j.e.:
ubuntu @ ubuntu ~: $ sudo vim / etc / apache2 / apache2.konf... snip ..
#AccessFileName .htaccess
... snip ..
ALEBO
Zakázať .súbor htaccess okrem špeciálne povolených adresárov úpravou apache2.súbor conf a zmena direktívy AllowOverRide na None;
... snip ..
AllowOverride Žiadne
... snip ..
Zabezpečené adresáre s autentifikáciou
Pomocou pomôcky htpasswd môžete vytvoriť poverenia používateľa na ochranu všetkých alebo niektorých adresárov. Prejdite do priečinka na serveri a pomocou nasledujúceho príkazu vytvorte .htpasswd súbor na ukladanie hashov hesla pre prihlasovacie údaje priradené povedzme používateľovi menom dev.
[chránené e-mailom] ~: $ sudo htpasswd -c / etc / apache2 / -htpasswd devVyššie uvedený príkaz si vyžiada nové heslo a potvrdenie hesla. Môžete si pozrieť mačku ./ htpasswd súbor na kontrolu hash uložených poverení používateľa.
Teraz môžete automaticky nastaviť konfiguračný súbor v adresári your_website, ktorý musíte chrániť, úpravou .súbor htaccess. Na povolenie autentifikácie použite nasledujúci príkaz a smernice:
ubuntu @ ubuntu ~: $ sudo nano / var / www / your_website /.htaccess... snip ..
AuthType Basic
AuthName "Pridať výzvu na dialóg"
AuthUserFile / etc / apache2 / meno_používateľa / názov_domény /.htpasswd
Vyžadovať platného používateľa
... snip ..
Nezabudnite pridať cestu podľa vášho.
Spustite potrebné moduly
Predvolená konfigurácia Apache obsahuje povolené moduly, ktoré možno ani nebudete potrebovať. Tieto predinštalované moduly otvárajú dvere pre bezpečnostné problémy Apache, ktoré už existujú alebo môžu existovať v budúcnosti. Ak chcete deaktivovať všetky tieto moduly, musíte najskôr pochopiť, ktoré moduly sú potrebné pre bezproblémové fungovanie vášho webového servera. Za týmto účelom si pozrite dokumentáciu k modulu apache, ktorá obsahuje všetky dostupné moduly.
Ďalej pomocou nasledujúceho príkazu zistíte, ktoré moduly sú spustené na vašom serveri.
[chránené e-mailom] ~: $ sudo ls / etc / apache2 / mods-enabledApache je dodávaný s výkonným príkazom a2dismod na deaktiváciu modulu. Zabráni načítaniu modulu a pri deaktivácii modulu vás vyzve na varovanie, že akcia môže mať negatívny dopad na váš server.
[chránené e-mailom] ~: $ sudo a2dismod module_nameModul môžete deaktivovať aj komentovaním v riadku LoadModule.
Zabráňte pomalému Loris a útoku DoS
Predvolená inštalácia servera Apache ho prinúti čakať na požiadavky klientov príliš dlho, čo server vystaví útokom Slow Loris a DoS. Apache2.konfiguračný súbor conf poskytuje smernicu, ktorú môžete použiť na zníženie hodnoty časového limitu na niekoľko sekúnd, aby ste zabránili týmto typom útokov, t.e.:
ubuntu @ ubuntu ~: $ sudo vim / etc / apache2 / apache2.konfČasový limit 60
Okrem toho nový server Apache prichádza s praktickým modulom mod_reqtimeout, ktorý poskytuje smernicu RequestReadTimeout na zabezpečenie servera pred nelegitímnymi požiadavkami. Táto smernica má niekoľko zložitých konfigurácií, takže si môžete prečítať súvisiace informácie dostupné na stránke dokumentácie.
Zakážte zbytočné požiadavky HTTP
Neobmedzené požiadavky HTTP / HTTPS môžu tiež viesť k nízkemu výkonu servera alebo k DoS útoku. Môžete obmedziť príjem požiadaviek HTTP na jeden adresár pomocou aplikácie LimitRequestBody na menej ako 100 kB. Napríklad na vytvorenie smernice pre priečinok / var / www / your_website môžete pridať direktívu LimitRequestBody pod AllowOverride All, i.e.:
... snip ..Možnosti - Indexy
AllowOverride All
LimitRequestBody 995367
... snip ..
Poznámka: Nezabudnite reštartovať Apache po vykonaných zmenách, aby ste ho mohli zodpovedajúcim spôsobom aktualizovať.
Záver
Predvolená inštalácia servera Apache môže poskytnúť útočníkom pri útoku veľa citlivých informácií. Medzitým existuje aj veľa ďalších spôsobov (nie sú uvedené vyššie), ako zabezpečiť aj webový server Apache. Pokračujte vo výskume a informujte sa o nových smerniciach a moduloch, aby ste zabezpečili svoj server ďalej.