...

Serverio atsparumo didinimas: praktiniai patarimai "Linux" serveriams

Serverio stiprinimas apsaugo mano "Linux" serverį nuo atakų, nes sumažina atakos paviršių, apriboja prieigą ir specialiai apsaugo svarbiausius komponentus. Aš remiuosi Ugniasienėsstiprus autentiškumo patvirtinimas, nuolatiniai atnaujinimai ir patikrinamos politikos, kad paslaugos veiktų saugiai, o duomenys būtų patikimi.

Centriniai taškai

  • Atakos paviršius Sumažinti: pašalinkite nereikalingas paslaugas, prievadus ir paketus
  • Patching Nuoseklumas: nuolat atnaujinkite branduolį, operacinę sistemą ir programas
  • Prieiga kontrolė: Mažiausios privilegijos, sudo, nėra root prisijungimo
  • SSH/MFA saugu: raktai, politika, laiko limitai
  • Ugniasienė & stebėjimas: taisyklės, IDS/IPS, žurnalų analizė

Ką reiškia "Linux" serverio atsparumo didinimas?

Aš suprantu, kad serverio stiprinimas reiškia tikslinį mažinimą Atakos paviršius "Linux" sistemą griežtai konfigūruojant, pašalinant nereikalingas funkcijas ir aktyvuojant registravimą. Išjungiu paslaugas, kurios neatlieka užduoties, nustatau saugias numatytąsias reikšmes ir apriboju visą prieigą. Tikrinu tinklo kelius, sistemos parametrus ir failų leidimus, kol veikia tik tai, ko iš tikrųjų reikia. Per "sysctl" sustiprinu branduolį, įjungiu saugius protokolus ir užtikrinu perduodamų ir saugomų duomenų šifravimą. Dokumentuoju visus veiksmus, kad pokyčius būtų galima atsekti ir būklę pakartoti.

Sumažinkite atakos taškų skaičių: Paslaugos, prievadai, paketai

Pradedu nuo inventoriaus: kuris Paslaugos Klausausi sistemos, kokie paketai tikrai reikalingi, kokius prievadus reikia atidaryti. Pašalinu programinę įrangą, kuri be jokios naudos suteikia išteklių ir rizikos, ir blokuoju standartinius prievadus, kurių niekas nenaudoja. Remiuosi minimalistiniais atvaizdais, leidžiu tik į baltąjį sąrašą įtrauktus prievadus ir griežtai atskiriu administravimo prieigą nuo taikomųjų programų kelių. Reguliariai naudoju tokius įrankius kaip ss ar lsof, kad patikrinu, ar sukurti nauji klausytojai, ir nuosekliai pašalinu senuosius. Konfigūracijos failus laikau taupius, kad konfigūracijos klaidoms atsirasti būtų mažiau galimybių.

Išsamus branduolio ir failų sistemos sustiprinimas

Užtikrinu branduolio saugumą naudodamas tam tikrus sysctl parametrus: Įjungiu atvirkštinio kelio filtravimą, TCP syncookies, apriboju ICMP, išjungiu IP persiuntimą serveriuose be maršrutizavimo užduočių ir sumažinu atakų paviršių, pvz., dmesg išėjimus ar branduolio adresų nutekėjimą (kptr_restrict). Uždraudžiu nereikalingus branduolio ištrynimus, apriboju ptrace ir, jei įmanoma, įjungiu branduolio blokavimo režimą. Failų sistemos lygmeniu atskiriu skirsnius ir nustatau ribojamąsias prijungimo parinktis: /tmp, /var/tmp ir dažnai /var/log prijungiu su noexec, nosuid, nodev; /home gauna nosuid, nodev; administraciniai keliai, tokie kaip /boot, yra apsaugoti nuo įrašymo. Be to, ypač svarbiems failams (pvz., svarbioms konfigūracijoms) naudoju tokius atributus kaip immutable, nustatau protingas numatytąsias umask reikšmes ir tikrinu ACL, kad išimtys būtų kontroliuojamos. Taip gerokai sumažinu kompromitavimo poveikį ir sulėtinu įsilaužėlių veiksmus.

"Crop" moduliai, failų sistemos ir įrenginių sąsajos

Neleidžiu automatiškai įkelti nereikalingų branduolio modulių ir blokuoti egzotiškų failų sistemų, kurių nenaudoju. Į juodąjį sąrašą įtraukiu tokius modulius kaip cramfs, udf ar hfs/hfsplus, jei jie mano aplinkoje nėra svarbūs, ir neleidžiu duomenų centre esančiuose serveriuose naudoti USB masinės atminties. Išjungiu "FireWire" / "Thunderbolt" arba nuosekliuosius pultelius, jei jie nereikalingi, ir dokumentais patvirtinu išimtis. Reguliariai tikrinu, kokie moduliai iš tikrųjų įkeliami, ir lyginu juos su tiksliniu sąrašu. Kuo mažiau tvarkyklių ir posistemių yra aktyvių, tuo mažesnį atakos plotą siūlau žemo lygio išnaudojimams.

Atnaujinimo ir pataisymų strategija be netikėtumų

Laikau branduolį, paskirstymą ir programas per fiksuotą Pataisų strategija ir planų priežiūros langus su atšaukimo galimybe. Prieš pradėdamas diegti atnaujinimus, pirmiausia juos išbandau bandomosiose sistemose. Naudoju neprižiūrimus atnaujinimus arba centralizuotus sprendimus ir stebiu, ar paketai tikrai buvo atnaujinti. Dokumentuoju priklausomybes, kad saugumo pataisos nesugestų dėl nesuderinamumo, ir teikiu pirmenybę svarbiausiems atnaujinimams. Gilinu procesus, nustatydamas aiškią atsakomybę, taip pat naudoju Pataisų valdymasstebėti pakeitimų būsenas.

Pažeidžiamumų valdymas ir nuolatinis testavimas

Aktyviai valdau pažeidžiamumus: registruoju turtą, lyginu paketų būsenas su CVE kanalais ir nustatau prioritetus pagal riziką ir poveikį. Reguliariai planuoju patikrinimus su prieglobsčio priemonėmis ir naudoju griežtesnius patikrinimus, pavyzdžiui, į CIS / BSI orientuotus profilius. "OpenSCAP" profilius įtvirtinu kūrimo procese, ataskaitas versijuoju, o nukrypimus seku kaip bilietus su aiškiais terminais. Tikrinu paketų vientisumą (parašai, tikrinimo mechanizmai) ir naudoju tik GPG tikrinimo saugyklas. Tvarkau paketų ir saugyklų leidimų sąrašą, mažinu išorinių šaltinių skaičių iki būtino ir registruoju pagrįstas išimtis. Taip užkertu kelią tiekimo grandinės rizikai ir anksti atpažįstu pasenusius, pažeidžiamus komponentus.

Prieigos teisės ir paskyrų valdymas

Taikau mažiausiai Privilegijos per: Kiekvienam asmeniui ir kiekvienai sistemai suteikiamos tik tokios teisės, kokių reikia. Deaktyvuoju tiesioginį root prisijungimą, dirbu su sudo ir registruoju kiekvieną administravimo veiksmą. Atskiriu tarnybines paskyras, nustatau ribojančias umask reikšmes ir reguliariai tikrinu narystę grupėse. Integruoju centrinį autentifikavimą, kad galėčiau kontroliuoti ir atšaukti įgaliojimus vienoje vietoje. Nedelsdamas užrakinu neaktyvias paskyras ir nustatytais intervalais keičiu raktus ir slaptažodžius.

Stiprus autentiškumo patvirtinimas ir SSH užtvirtinimas

Vietoj slaptažodžių naudoju raktus ir aktyvuoju MFA administraciniams prisijungimams. Sshd_config nustatiau PermitRootLogin į ne, leidau tik saugų kex ir šifrų rinkinius ir išjungiau slaptažodžių autentifikavimą. Naudoju komandą AuthorisedKeysCommand, kad SSH raktus valdyčiau centralizuotai, ir sutrumpinu sesijos laiką naudodamas LoginGraceTime ir ClientAliveInterval. Didinu skaidrumą naudodamas išsamius SSH žurnalus ir reaguoju į nesėkmingus bandymus naudodamas fail2ban. Apriboju SSH tik valdymo tinkluose ir nustatau prievadų blokavimą arba vienkartinį prisijungimą, jei tai tinka operacijai.

TLS, paslaugų ir protokolų higiena

Visas iš išorės prieinamas paslaugas apsaugau TLS ir naudoju tik modernius protokolus (TLS 1.2/1.3) bei patikimus šifrų rinkinius su "Perfect Forward Secrecy". Planuoju sertifikatų gyvavimo ciklus, automatizuotai atnaujinu sertifikatus, prireikus įjungiu OCSP susegimą ir griežtas transportavimo gaires. Nuosekliai pašalinu nesaugius senesnius protokolus ("Telnet", RSH, FTP) arba saugiais tuneliais juos įkapsulinu. Nustatau minimalų HTTP antraštės sugriežtinimą, apriboju paprasto teksto prievadus ir reguliariai tikrinu, ar konfigūracijos nebuvo netyčia atlaisvintos. Vidinius valdymo galinius taškus laikau prieinamus tik iš vidaus ir atskiriu duomenų kanalus nuo valdymo kanalų, kad neteisingos konfigūracijos nesukeltų pavojaus visoms paslaugoms.

Tinklo saugumas: ugniasienė ir IDS/IPS

Aš apibrėžti griežtas taisykles su nftables arba iptables ir dokumentuoti, kodėl Uostas gali būti atviras. Aš dirbu su numatytuoju draudimu, leidžiu tik reikiamus protokolus ir segmentuoju tinklą į zonas. Prieš paleisdamas valdymo paslaugas apsaugau nuotolinę prieigą per VPN ir, jei įmanoma, naudoju DNSSEC ir TLS. Naudoju įsilaužimo aptikimo arba prevencijos priemones, susieju pavojaus signalus su sistemos žurnalais ir apibrėžiu aiškius reagavimo planus. Atnaujinu savo žinias naudodamasis kompaktiniais Ugniasienės pagrindai kad taisyklės išliktų taupios ir suprantamos.

Privaloma prieigos kontrolė: SELinux/AppArmor pragmatinė

Naudoju MAC struktūras, kad paslaugos išliktų ribotos, net jei pažeidžiama paskyra ar procesas. Nustatau "SELinux" arba "AppArmor" priverstinį režimą, jautriose aplinkose pradedu naudoti leidžiamąjį / skundžiamąjį režimą ir išmokstu švarius profilius prieš perjungdamas į griežtąjį. Centralizuotai valdau politikas, dokumentuose fiksuoju reikšmes ir išimtis bei tikrinu atnaujinimus pagal profilius. Specialiai uždengiu svarbiausias paslaugas, pavyzdžiui, žiniatinklio serverius, duomenų bazes ar atsarginių kopijų kūrimo agentus, kad jie pasiektų tik reikiamus kelius. Taip užkertu kelią šoniniam judėjimui ir sumažinu neteisingų failų leidimų poveikį.

Apsauga aparatinės įrangos ir įkrovos grandinės lygmeniu

Apsaugau platformą, apsaugodamas UEFI, mikroprograminę įrangą ir nuotolinį valdymą stipriais Slaptažodžiai ir išjungti nereikalingas sąsajas. Aktyvuoju saugiąją įkrovą, tikrinu įkroviklio vientisumą ir, jei įmanoma, naudoju TPM palaikomas funkcijas. Naudoju viso disko šifravimą su LUKS ir užtikrinu saugų raktų valdymą. Izoliuoju išorinę prieigą, registruoju jos naudojimą ir leidžiu ją naudoti tik patikimuose administratoriaus tinkluose. Reguliariai tikrinu programinės įrangos atnaujinimus, kad žinomi pažeidžiamumai neišliktų.

Registravimas, auditas ir stebėjimas

Centralizuotai renku įvykius per rsyslog arba journald ir išplečiu vaizdą su auditd-kritinių veiksmų taisyklės. Kuriu įspėjimus apie nesėkmingus prisijungimus, netikėtą procesų paleidimą ir konfigūracijos pakeitimus. Priskiriu unikalius kompiuterių pavadinimus, kad galėčiau greitai atvaizduoti įvykius ir susieti duomenis SIEM sprendime. Testuoju ribas, kad sumažėtų klaidingų teigiamų rezultatų, ir saugau žaidimų knygas, kuriose aprašomi atsakymai. Stebiu saugojimo laikotarpius, kad būtų galima atlikti teismo ekspertizę.

vientisumo patikra, bazinės linijos ir laikas

Nustatau švarų pradinį tašką ir jį apsaugau: Įrašau svarbių sistemos failų kontrolines sumas, naudoju failų vientisumo stebėseną ir nustatau įspėjimus apie nukrypimus. Nuolat atnaujinu AIDE ir (arba) lyginamuosius įrankius, užrakinu jų duomenų bazes, kad jomis nebūtų galima manipuliuoti, ir užplombuoju ypač svarbius katalogus. Sinchronizuoju sistemos laiką naudodamasis saugiais laiko šaltiniais (pvz., "chrony" su autentifikavimu), kad žurnalai, sertifikatai ir "Kerberos" veiktų patikimai. Palaikau auksinę sistemos ir konfigūracijos atskaitos liniją, kuria naudodamasis galiu greitai atstatyti pažeistas sistemas, užuot jas varginamai valęs.

Saugumo automatizavimas

Pasikliauju konfigūracijos valdymu, pvz., "Ansible", "Puppet" arba "Chef", kad galėčiau nuoseklus užtikrinti tas pačias saugumo būsenas. Rašau pakartojamas grojaraščius, švariai atskiriu kintamuosius ir išbandau vaidmenis vamzdynuose. Reguliariai tikrinu nukrypimus ir automatiškai juos ištaisau prieš kylant rizikai. Pridedu tikrinimo profilius, pavyzdžiui, "OpenSCAP" politiką, ir dokumentais patvirtinu išimtis, nurodydamas priežastis. Atskirai saugau paslaptis, naudoju saugyklų sprendimus ir valdau raktų rotaciją kaip kodą.

Konteinerių, virtualiųjų mašinų ir orkestruočių stiprinimas

Konteinerius ir virtualias mašinas tvirtinu pagal tuos pačius principus: minimalūs atvaizdai, jokių nereikalingų paketų, jokių šakninių šaknų konteineriuose, aiškūs išteklių apribojimai naudojant "cgroups" ir vardų erdves. Naudoju "seccomp" ir galimybių profilius, išjungiu privilegijuotus konteinerius ir neleidžiu prijungti kompiuterio prie kompiuterio, jei tai nėra būtina. Prieš diegimą skenuoju atvaizdus, pasirašau artefaktus ir pririšu bazinius atvaizdus prie apibrėžtų, patikrintų versijų. Orkestruose užtikrinu tinklo politikos, paslapčių valdymo ir modulių saugumo reikalavimų vykdymą. Hipervizoriuose valdymo lygmenį atskiriu nuo svečio tinklo ir griežtai apriboju virtualiųjų mašinų įrenginių matomumą.

Gairės, dokumentacija ir mokymai

Suformuluoju aiškias saugos gaires, atsakomybę, Standartai ir metrikos yra apibrėžtos. Turiu paruoštus vykdymo vadovus reagavimui į incidentus, pataisymų procesams ir prieigos leidimams. Dokumentuoju kiekvieną konfigūracijos pakeitimą, nurodydamas bilieto nuorodą, datą ir tikslą. Reguliariai mokau dalyvaujančius asmenis ir tikrinu jų žinias atlikdamas trumpas pratybas. Taip pat naudoju Šakninio serverio vadovaskad nauji kolegos greitai įsisavintų žinias.

Reagavimas į incidentus ir teismo ekspertizė operacijose

Planuoju ekstremalias situacijas: nustatau aiškius pranešimo kanalus, izoliavimo veiksmus ir įrodymus. Iš anksto apsaugau nepastovius duomenis (tinklo jungtis, procesus, atmintį), pasiruošiu teismo ekspertizės įrankius ir kiekvieną priemonę patvirtinu dokumentais su laiko žyma. Priimu sąmoningą sprendimą tarp izoliavimo ir neatidėliotino išjungimo, atsižvelgdamas į riziką prieinamumui ir įrodymams. Turiu paruoštas pasirašytas, patikimas gelbėjimo laikmenas, naudoju tik autorizuotas priemones ir laikausi įrodymų grandinės. Po incidento mieliau atkuriu sistemas iš žinomų bazinių linijų, mokausi iš pagrindinių priežasčių analizės ir nedelsiant pritaikau patobulinimus bei stebėseną.

Atsarginė kopija, atkūrimas ir paleidimas iš naujo

Planuoju šifruotas atsargines kopijas, kurias galima kurti neprisijungus prie interneto ir kurios turi apibrėžtą Tikslai atkūrimo laiką ir duomenų būseną. Realiai išbandau atkūrimą ir registruoju jo trukmę, kad galėčiau atpažinti spragas. Kopijas saugau atskirai, užkertu kelią neautorizuotam ištrynimui naudodamas atskiras tapatybes ir, jei įmanoma, nustatau nekeičiamumą. Apsaugau ugniasienės, IDS ir valdymo įrankių konfigūracijas bei taikomųjų programų duomenis. Reguliariai praktikuoju pakartotinį paleidimą, kad stresinėse situacijose neprarasčiau laiko.

Atitiktis, įrodymai ir rodikliai

Grūdinimą sieju su patikrinamais tikslais: Aš priskiriu priemones nustatytiems lyginamiesiems rodikliams ir automatiškai renku įrodymus iš CI/CD, konfigūracijų valdymo ir SIEM. Apibrėžiu tokius rodiklius kaip vidutinis laikas iki pataisymo, nukrypimai nuo grūdinimo taisyklių, užblokuotos paskyros per laikotarpį arba sistemų su MFA dalis. Reguliariai rengiu ataskaitas technologijoms ir vadovybei, vertinu riziką, nustatau taisomąsias priemones veiksmų planuose ir įtvirtinu išimtis su galiojimo terminais. Taip užtikrinu skaidrumą, nustatau išteklių prioritetus ir palaikau tvarų saugumo srautą.

Kasdienio gyvenimo kontrolinis sąrašas

Kas savaitę tikrinu, ar yra naujų Paslaugos veikia ir ar atidaryti niekam nereikalingi prievadai. Kas mėnesį tikrinu visus naudotojus, grupes ir sudo taisykles ir blokuoju neaktyvias paskyras. Patvirtinu, kad SSH priimami tik raktai, kad root prisijungimas yra išjungtas ir kad administratoriams veikia MFA. Palyginu ugniasienės taisykles su tiksliniu sąrašu, skaitau pavojaus signalus ir žurnalo išrašus ir nedelsdamas ištaisau anomalijas. Patikrinu, ar atsarginės kopijos yra baigtos, ir kas ketvirtį atlieku atkūrimo bandymus, kad būčiau tikras.

Prieglobos paslaugų teikėjų palyginimas

Rinkdamasis paslaugų teikėją atkreipiu dėmesį į saugius standartinius vaizdus, aiškius SLA ir padeda sukietėti. Patikrinu, ar ugniasienės, apsauga nuo DDoS ir šifravimas yra prieinami be papildomų išlaidų. Įvertinu operacinės sistemos pasirinkimą, palaikymo kokybę ir tai, ar yra valdomų parinkčių. Patikrinu, kaip paslaugų teikėjas tvarko pataisymus, stebėseną ir incidentus ir ar palaiko audito užklausas. Rinkdamasis tinkamą paslaugų teikėją vadovaujuosi toliau pateiktu palyginimu.

Vieta Teikėjas Operacinės sistemos pasirinkimas Saugumo funkcijos Parama
1 webhoster.de įvairūs Visapusiškas serverio sustiprinimas, šifravimas, ugniasienė, valdomos paslaugos 24/7 "Premium" palaikymas
2 Teikėjas X Standartinis Pagrindinė ugniasienė, reguliarūs atnaujinimai Standartinė parama
3 Teikėjas Y ribotas Pagrindinės apsaugos priemonės Pagalba el. paštu

Santrauka: Praktinis grūdinimas

Efektyviai apsaugau "Linux" serverius sumažindamas atakų paviršių, Atnaujinimai planuoti, supaprastinti prieigą ir valdyti tinklo kelius. Pasikliauju stipriu autentiškumo patvirtinimu, registravimu su aiškiais pavojaus signalais ir automatizavimu, kad sąlygas būtų galima atkartoti. Dokumentuoju kiekvieną pakeitimą, praktikuoju atkūrimą ir prižiūriu, kad politikos būtų gyvos. Reguliariai peržiūriu rezultatus, pritaikau priemones ir nuolat atnaujinu technologijas bei žinias. Taip išlaikau kontrolę, greičiau reaguoju į incidentus ir užtikrinu patikimą paslaugų prieinamumą.

Aktualūs straipsniai