Apache HTTP

Kaip apsaugoti „Apache“ serverį

Kaip apsaugoti „Apache“ serverį
„Apache“ yra populiarus, atviro kodo tinklo serveris, prieinamas tiek „Linux“, tiek „Windows“ sistemoms. Tai leidžia konfigūruoti įvairius naudojimo atvejus, pradedant HTML tinklalapiais ir baigiant „HyperText Preprocessor“ (PHP) dinaminio žiniatinklio programų turiniu.„Apache“ suteikia saugią ir tvirtą platformą, skirtą jūsų žiniatinklio programoms diegti. Tačiau vis tiek svarbu įdiegti naujausius saugos pataisymus ir tinkamai sukonfigūruoti serverį, kad būtų sukurta saugi jūsų žiniatinklio programų aplinka.
Š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 / apache2
Norė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 update
ubuntu @ 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:

ubuntu @ ubuntu ~: $ sudo vim / etc / apache2 / apache2.konf
... 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;

ubuntu @ ubuntu ~: $ sudo vim / etc / apache2 / apache2.konf
... 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 dev

Pirmiau 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 / mods

Apache 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_vardas

Taip 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.konf
Skirtasis 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į.

How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...
Peržiūrėkite pelės mygtukus skirtingai programinei įrangai naudodami „X-Mouse Button Control“
Galbūt jums reikia įrankio, kuris galėtų pakeisti jūsų pelės valdymą kiekvienoje jūsų naudojamoje programoje. Tokiu atveju galite išbandyti programą, ...
„Microsoft Sculpt Touch“ belaidžio pelės apžvalga
Neseniai skaičiau apie „Microsoft Sculpt Touch“ belaidę pelę ir nusprendė ją nusipirkti. Kurį laiką naudojęs, nusprendžiau pasidalinti savo patirtimi....