Šiame straipsnyje rasite keletą patarimų ir gudrybių, kaip sustiprinti „Apache“ tinklo serverio konfigūracijas ir pagerinti bendrą saugumą.
Neprivilegijuota vartotojo paskyra
Nešaknio arba neprivilegijuoto vartotojo abonemento tikslas yra apriboti vartotojo nereikalingą prieigą prie tam tikrų sistemos užduočių. „Apache“ tinklo serverio kontekste tai reiškia, kad jis turėtų veikti ribotoje aplinkoje, turėdamas tik būtinus leidimus. Pagal numatytuosius nustatymus „Apache“ veikia su „daemon“ paskyros teisėmis. Galite sukurti atskirą ne root vartotojo abonementą, kad išvengtumėte grėsmių saugumo spragų atveju.
Be to, jei „apache2“ ir „MySQL“ turi tuos pačius vartotojo kredencialus, bet kuri problema, susijusi su vienu paslauga, turės įtakos kitam. Norėdami pakeisti žiniatinklio serverio vartotojo ir grupės teises, eikite į / etc / apache2, atidarykite failą „envvars“ ir nustatykite vartotoją ir grupę nauju neprivilegijuotu paskyros vartotoju, sakykite „apache“ ir išsaugokite failą.
ubuntu @ ubuntu ~: $ sudo vim / etc / apache2 / envvars... iškirpti ..
eksportuoti APACHE_RUN_USER = apache
eksportuoti APACHE_RUN_GROUP = apache
... iškirpti ..
Taip pat galite naudoti šią komandą, norėdami pakeisti diegimo katalogo nuosavybės teisę į naują ne root vartotoją.
ubuntu @ ubuntu ~: $ sudo chown -R apache: apache / etc / apache2Norėdami išsaugoti pakeitimus, išleiskite šią komandą:
ubuntu @ ubuntu ~: $ sudo paslaugos apache2 paleiskite iš naujo
Atnaujinkite „Apache“
Apache garsėja tuo, kad teikia saugią platformą labai susirūpinusiai kūrėjų bendruomenei, kuri retai susiduria su saugumo klaidomis. Nepaisant to, išleidus programinę įrangą yra įprasta rasti problemų. Todėl būtina nuolat atnaujinti interneto serverį, kad būtų galima naudotis naujausiomis saugos funkcijomis. Taip pat patariama vadovautis „Apache“ serverio pranešimų sąrašais, kad būtų nuolat atnaujinama apie naujus „Apache“ kūrėjų bendruomenės pranešimus, leidimus ir saugos naujinimus.
Norėdami atnaujinti „Apache“ naudodami „apt“, įveskite:
ubuntu @ ubuntu ~: $ sudo apt-get updateubuntu @ ubuntu ~: $ sudo apt-get upgrade
Išjungti serverio parašą
Pagal numatytąją „Apache“ serverio konfigūraciją pateikiama daug informacijos apie serverį ir jo nustatymus. Pavyzdžiui, įgalintos „ServerSignature“ ir „ServerTokens“ direktyvos yra aplankuose / etc / apache2 / apache2.conf failas pridėkite papildomą antraštę prie HTTP atsakymo, kuriame pateikiama potencialiai neskelbtina informacija. Ši informacija apima išsamią serverio nustatymo informaciją, pvz., Serverio versiją ir OS prieglobą, kuri gali padėti užpuolikui atlikti žvalgybos procesą. Šias direktyvas galite išjungti redaguodami apache2.conf failą per „vim / nano“ ir pridėkite šią direktyvą:
ubuntu @ ubuntu ~: $ sudo vim / etc / apache2 / apache2.konf... iškirpti ..
ServerSignature Off
... iškirpti ..
„ServerTokens Prod.“
... iškirpti ..
Norėdami atnaujinti pakeitimus, paleiskite „Apache“ iš naujo.
Išjungti serverių katalogų sąrašus
Katalogų sąrašuose rodomas visas turinys, išsaugotas šakniniame aplanke arba pakatalogiuose. Katalogų failuose gali būti neskelbtina informacija, neskirta viešam rodymui, pvz., PHP scenarijai, konfigūracijos failai, failai, kuriuose yra slaptažodžių, žurnalai ir kt.
Norėdami neleisti katalogų sąrašų, pakeiskite „Apache“ serverio konfigūracijos failą redaguodami apache2.konf failas kaip:
... iškirpti ..
Parinktys -indeksai
... iškirpti ..
ARBA
... iškirpti ..Parinktys -indeksai
... iškirpti ..
Šią direktyvą taip pat galite įtraukti į .pagrindinio svetainės katalogo „htaccess“ failas.
Apsaugokite sistemos nustatymus
The .„htaccess“ failas yra patogi ir galinga funkcija, leidžianti konfigūruoti ne pagrindiniame apache2.konf failas. Tačiau tais atvejais, kai vartotojas gali įkelti failus į serverį, užpuolikas gali tai panaudoti norėdamas įkelti savo.htaccess “failas su kenkėjiškomis konfigūracijomis. Taigi, jei nenaudojate šios funkcijos, galite išjungti .„htaccess“ direktyva, t.e.:
ubuntu @ ubuntu ~: $ sudo vim / etc / apache2 / apache2.konf... iškirpti ..
#AccessFileName .htaccess
... iškirpti ..
ARBA
Išjunkite .htaccess failas, išskyrus specialiai įgalintus katalogus redaguojant apache2.conf failas ir AllowOverRide direktyvos pavertimas None;
... iškirpti ..
„AllowOverride None“
... iškirpti ..
Saugūs katalogai su autentifikavimu
Naudodami „htpasswd“ įrankį galite sukurti vartotojo kredencialus, kad apsaugotumėte visus ar kai kuriuos katalogus. Eikite į savo serverio aplanką ir naudokite šią komandą, kad sukurtumėte .„htpasswd“ failas, skirtas saugoti slaptažodžių maišas prie kredencialų, priskirtų, tarkime, vartotojui, vardu dev.
[apsaugotas el. paštu] ~: $ sudo htpasswd -c / etc / apache2 / -htpasswd devPirmiau nurodyta komanda paprašys naujo slaptažodžio ir slaptažodžio patvirtinimo. Galite apžiūrėti katę ./ htpasswd failą, kad patikrintumėte saugomų vartotojo kredencialų maišos.
Dabar galite automatiškai nustatyti konfigūracijos failą „your_website“ kataloge, kurį turite apsaugoti, modifikuodami .„htaccess“ failas. Norėdami įgalinti autentifikavimą, naudokite šias komandas ir nurodymus:
ubuntu @ ubuntu ~: $ sudo nano / var / www / tavo_svetainė /.htaccess... iškirpti ..
„AuthType Basic“
AuthName „Pridėti dialogo eilutę“
AuthUserFile / etc / apache2 / vartotojo_vardas / domeno_vardas /.htpasswd
Reikalauti galiojančio vartotojo
... iškirpti ..
Nepamirškite pridėti kelio pagal savo.
Paleiskite reikalingus modulius
Numatytoji „Apache“ konfigūracija apima įgalintus modulius, kurių jums gali net neprireikti. Šie iš anksto įdiegti moduliai atveria duris „Apache“ saugos problemoms, kurios jau egzistuoja arba gali egzistuoti ateityje. Norėdami išjungti visus šiuos modulius, pirmiausia turite suprasti, kurie moduliai reikalingi sklandžiam jūsų interneto serverio veikimui. Šiuo tikslu patikrinkite apache modulio dokumentus, kurie apima visus galimus modulius.
Tada naudokite šią komandą, kad sužinotumėte, kurie moduliai veikia jūsų serveryje.
[apsaugotas el. paštu] ~: įjungtas $ sudo ls / etc / apache2 / modsApache ateina su galinga komanda a2dismod, kad būtų išjungtas modulis. Tai neleidžia įkelti modulio ir paragina įspėti, kai išjungiate modulį, kad veiksmas gali neigiamai paveikti jūsų serverį.
[email protected] ~: $ sudo a2dismod modulio_vardasTaip pat galite išjungti modulį komentuodami eilutėje „LoadModule“.
Užkirsti kelią „Slow Loris“ ir „DoS Attack“
Numatytasis „Apache“ serverio diegimas priverčia jį per ilgai laukti klientų užklausų, o tai serveriui sukelia lėtas „Loris“ ir „DoS“ atakas. Apache2.conf konfigūracijos faile pateikiama direktyva, kurią galite naudoti norėdami sumažinti skirtojo laiko reikšmę iki kelių sekundžių, kad išvengtumėte tokio tipo atakų, t.e.:
ubuntu @ ubuntu ~: $ sudo vim / etc / apache2 / apache2.konfSkirtasis laikas 60
Be to, naujajame „Apache“ serveryje yra patogus mod_reqtimeout modulis, kuris pateikia direktyvą RequestReadTimeout, kad apsaugotų serverį nuo neteisėtų užklausų. Ši direktyva pateikiama su keliomis sudėtingomis konfigūracijomis, todėl galite perskaityti susijusią informaciją, esančią dokumentacijos puslapyje.
Išjunkite nereikalingas HTTP užklausas
Neribotos HTTP / HTTPS užklausos taip pat gali sukelti silpną serverio našumą arba „DoS“ ataką. Galite apriboti HTTP užklausų gavimą kiekviename kataloge naudodami „LimitRequestBody“ mažiau nei 100 K. Pvz., Norėdami sukurti aplanko / var / www / your_website direktyvą, galite pridėti „LimitRequestBody“ direktyvą po AllowOverride All, t.e.:
... iškirpti ..Parinktys -indeksai
„AllowOverride All“
„LimitRequestBody“ 995367
... iškirpti ..
Pastaba: nepamirškite iš naujo paleisti „Apache“ po pritaikytų pakeitimų, kad jį atitinkamai atnaujintumėte.
Išvada
Numatytasis „Apache“ serverio diegimas gali suteikti daug neskelbtinos informacijos, kad padėtų užpuolikams atakoje. Tuo tarpu yra daugybė kitų būdų (nenurodytų aukščiau), taip pat apsaugoti „Apache“ žiniatinklio serverį. Tęskite naujienas ir naujienas apie naujus nurodymus ir modulius, kad apsaugotumėte savo serverį.