Saugus serverio kon­fi­gū­ra­vi­mas yra viena iš svar­biau­sių ad­mi­nist­ra­to­rių užduočių. Tai taikoma ne tik sa­va­ran­kiš­kai val­do­miems ser­ve­riams, bet ir nuo­mo­ja­mai įrangai. Tokios priemonės kaip apsauga slap­ta­žo­džiais, patikimi SSH nu­sta­ty­mai ir re­gu­lia­rūs at­nau­ji­ni­mai sudaro išsamų saugumo paketą.

Kas at­sa­kin­gas už saugų serverio kon­fi­gū­ra­vi­mą?

Savo serverio priegloba suteikia mak­si­ma­lią kon­fi­gū­ra­vi­mo laisvę. Tinkama al­ter­na­ty­va yra „root“ serveriai, kuriuos siūlo daugelis paslaugų teikėjų ir suteikia prieigą prie „root“ paskyros. Abiem atvejais svar­biau­sios užduotys, tokios kaip įdiegimas, struk­tū­ri­za­vi­mas ir priežiūra, tenka vien tik nuo­mi­nin­kui. Klaidos „root“ srityje gali sukelti rimtų problemų. Tačiau laikantis tinkamų procedūrų galima sukurti puikų pagrindą patikimam, našiam ir saugiam serveriui.

Kaip apsaugoti savo serverį: žingsnis po žingsnio

Nesvarbu, ar norite apsaugoti „Windows“, „Ubuntu“ ar „Debian“ serverį, keletas uni­ver­sa­lių veiksmų padės sukurti tvirtą saugumo pagrindą. Toliau api­bend­ri­na­me svar­biau­sius veiksmus.

1 žingsnis: Atlikite minimalią diegimą

Dar prieš pradėdami imtis apsaugos priemonių ir kon­fi­gū­ruo­ti serverį, galite paveikti savo projekto būsimą saugumo po­ten­cia­lą. Ne­pri­klau­so­mai nuo to, ar naudojate „Windows“, ar „Linux“ operacinę sistemą, diegimo metu lai­ky­ki­tės šio principo: jūsų serveryje turėtų būti tik ta prog­ra­mi­nė įranga, kurios reikia jo užduotims atlikti.

Prie­žas­tis ta, kad kiekviena įdiegta programa kelia po­ten­cia­lią grėsmę saugumui ir gali neigiamai paveikti sistemos našumą. Norėdami sumažinti pa­žei­džia­mu­mą, įdiekite tik būtinus sistemos kom­po­nen­tus ir naudokite tik pa­tik­rin­tą trečiųjų šalių prog­ra­mi­nę įrangą.

2 žingsnis: Nu­sta­ty­ki­te saugų slap­ta­žo­dį

Įdiegus sistemą, pir­miau­sia tu­rė­tu­mė­te nustatyti saugų ad­mi­nist­ra­to­riaus (Windows) arba root (Linux) slap­ta­žo­dį. Pagal nu­ma­ty­tuo­sius nu­sta­ty­mus slap­ta­žo­dis nėra nu­sta­ty­tas, todėl ad­mi­nist­ra­to­riaus paskyra lieka už­blo­kuo­ta, kol jo ne­nu­sta­ty­si­te. Dauguma ope­ra­ci­nių sistemų iškart po įdiegimo prašo sukurti paskyrą su slap­ta­žo­džiu, kuris bus nau­do­ja­mas pri­si­jun­giant kaip ad­mi­nist­ra­to­rius arba root.

Jei Linux serverį iš­si­nuo­mo­jo­te iš paslaugų teikėjo ir gavote jau esamą root pri­si­jun­gi­mo vardą, ne­dels­da­mi pa­kei­s­ki­te slap­ta­žo­dį. Pri­si­jun­ki­te prie serverio per SSH ir terminale įveskite šią komandą:

passwd
bash

Nustačius saugų slap­ta­žo­dį, jį reikės pa­tvir­tin­ti. Pa­si­rin­ki­te kuo ilgesnį slap­ta­žo­dį, sudarytą iš raidžių, specialių simbolių ir skaičių derinio. Taip pat re­ko­men­duo­ja­ma naudoti slap­ta­žo­džių tvarkyklę, kad slap­ta­žo­dis būtų saugiai saugomas ir prireikus jį būtų galima lengvai rasti.

3 žingsnis: Pa­kei­s­ki­te SSH prievadą

Pagal nu­ma­ty­tuo­sius nu­sta­ty­mus SSH ryšys naudoja TCP/UDP 22-ąjį prievadą, kuris yra iš anksto su­kon­fi­gū­ruo­tas diegiant sistemą. Hakeriai dažnai savo au­to­ma­ti­nius pri­si­jun­gi­mo bandymus nukreipia būtent į šį prievadą. Norėdami sumažinti neteisėto pri­si­jun­gi­mo riziką, šif­ruo­tiems nuo­to­li­niams ryšiams pa­skir­ki­te kitą prievadą.

Norėdami tai padaryti, re­da­guo­ki­te SSH kon­fi­gū­ra­ci­jos failą sshd_config naudodami bet kurį teksto re­dak­to­rių. Pa­vyz­džiui, norėdami naudoti re­dak­to­rių „nano“, pa­lei­s­ki­te šią komandą:

nano /etc/ssh/sshd_config
bash

Raskite eilutę su pa­va­di­ni­mu „Port“ ir pa­kei­s­ki­te 22-ąjį prievadą į norimą numerį. Atminkite, kad įvairioms pa­slau­goms yra re­zer­vuo­ti ir kiti stan­dar­ti­niai prievadai (pvz., 80-asis prievadas – HTTP).

Note

Kad pa­kei­ti­mai faile sshd_config įsi­ga­lio­tų, reikia iš naujo paleisti SSH paslaugą. „Debian“ sistemoje tai galima padaryti komanda etc/init.d/ssh restart“. „Ubuntu“ var­to­to­jai paslaugą turi paleisti iš naujo komanda service ssh restart“.

4 žingsnis: Išjunkite SSH pri­si­jun­gi­mą ad­mi­nist­ra­to­rių paskyroms

Norint dar labiau apsaugoti savo serverį, re­ko­men­duo­ja­ma išjungti SSH pri­si­jun­gi­mą naudotojo „root“ arba ad­mi­nist­ra­to­riaus paskyrai. Priešingu atveju, jei įsi­lau­žė­lis sužinotų slap­ta­žo­dį, jis galėtų pa­si­nau­do­ti šia paskyra nuo­to­li­nei prieigai.

Prieš įgy­ven­din­da­mi šią priemonę, įsi­ti­kin­ki­te, kad yra bent viena kita paskyra, kuri gali pri­si­jung­ti prie serverio, kad iš­veng­tu­mė­te si­tu­aci­jos, kai patys ne­ga­lė­si­te pri­si­jung­ti. Linux sistemose tokią paskyrą sukurkite naudodami šią komandą:

useradd -g users -d /home/user1 -m -s /bin/bash user1
bash

Tai sukuria pavyzdinę vartotojo paskyrą pa­va­di­ni­mu „user1“. Toliau paskyrai pri­skir­ki­te saugų slap­ta­žo­dį:

passwd user1
bash

Pa­tik­rin­ki­te, ar pavyksta pri­si­jung­ti naudojant sukurtą vartotojo paskyrą. Jei pavyko, pereikite prie pag­rin­di­nės užduoties: išjunkite „root“ paskyrą. Vėl ati­da­ry­ki­te SSH kon­fi­gū­ra­ci­jos failą sshd_config naudodami pa­gei­dau­ja­mą re­dak­to­rių. Suraskite įrašą PermitRootLogin yes ir pa­kei­s­ki­te jį į PermitRootLogin no. Perkėlus SSH paslaugą, nuotolinė prieiga naudojant „root“ paskyrą nebus galima.

Naudodami kon­fi­gū­ra­ci­jos failo AllowGroups įrašą, taip pat galite nurodyti, kuriems var­to­to­jams leidžiama pri­si­jung­ti per SSH. Tam tiesiog sukurkite grupę (addgroup) ir į ją įtraukite norimus var­to­to­jus (adduser). Tada įrašykite pa­si­rink­tos grupės pa­va­di­ni­mą į sshd_config (pvz., AllowGroups ssh_users).

5 žingsnis: Nu­sta­ty­ki­te el. pašto pra­ne­ši­mus apie pri­si­jun­gi­mus per SSH

Ne­pri­klau­so­mai nuo to, kokių konkrečių priemonių imatės SSH prieigai apsaugoti, vėliau tu­rė­tu­mė­te nuolat stebėti visą nuotolinę veiklą. Tai užtikrins, kad galėsite pa­tik­rin­ti, ar jūsų serveryje veikianti SSH paslauga yra tinkamai apsaugota, ir anksti aptikti ne­tei­sė­tus pri­si­jun­gi­mo bandymus, o tai leis jums tinkamai reaguoti. Paprastas ko­man­di­nės eilutės sce­na­ri­jus gali au­to­ma­tiš­kai išsiųsti pranešimą el. paštu į jūsų adresą po kiekvieno sėkmingo nuo­to­li­nio pri­si­jun­gi­mo prie jūsų serverio.

Čia pa­tei­kia­mas pa­vyz­di­nis sce­na­ri­jus /opt/shell-login.sh, skirtas „Linux“ sistemai, kurį galite lengvai sukurti patys:

#!/bin/bash
echo "Login on $(hostname) on $(date +%Y-%m-%d) at $(date +%H:%M)"
echo "User: $USER"
echo
finger
txt

Toliau į failą /etc/profile įtraukite šią eilutę:

/opt/shell-login.sh | mailx -s "SSH login on the server" youremail@example.com
txt

Šis įrašas užtikrina, kad skriptas būtų vykdomas ir išsiųstų pranešimo laišką į nurodytą adresą kiekvieną kartą, kai pri­si­jun­gia­ma per SSH. Tam, kad tai veiktų, skriptui turi būti suteiktos 755 teisės (skaitymo ir vykdymo teisės visiems var­to­to­jams bei rašymo teisės sa­vi­nin­kui). Šias teises galite nustatyti šia komanda:

chmod 755 /opt/shell-login.sh
bash

6 žingsnis: Už­blo­kuo­ki­te ne­nau­do­ja­mus prievadus

Atviri prievadai paprastai nekelia didelės grėsmės saugumui, nes jie yra būtini ryšiui su įvai­rio­mis pa­slau­go­mis ir prog­ra­mo­mis palaikyti. Pa­vyz­džiui, prievadai 80 ir 443 yra būtini HTTP ir HTTPS ryšiams, kaip ir jūsų pa­si­rink­tas SSH prievadas. Tačiau šios sąsajos gali tapti pa­žei­džia­mo­mis, jei su­si­ju­sio­se prog­ra­mo­se yra saugumo spragų, kuriomis gali pa­si­nau­do­ti įsi­lau­žė­liai.

Jei atlikote minimalią sistemos diegimą ir įdiegėte tik ribotą skaičių trečiųjų šalių programų, papildomų rei­ka­lin­gų prievadų skaičius turėtų būti nedidelis. Norėdami apsaugoti savo serverį nuo atakų, ug­nia­sie­nės nu­sta­ty­muo­se tu­rė­tu­mė­te už­blo­kuo­ti visus ne­rei­ka­lin­gus atvirus prievadus. Daugumoje pag­rin­di­nių ope­ra­ci­nių sistemų iš anksto įdiegta paketų fil­t­ra­vi­mo prog­ra­mi­nė įranga, pa­vyz­džiui, „iptables“. Ši priemonė leidžia nustatyti taisykles, re­gu­liuo­jan­čias duomenų srautą, įskaitant leidžiamų ir blo­kuo­ja­mų prievadų nurodymą.

7 žingsnis: Re­gu­lia­riai at­nau­jin­ki­te prog­ra­mi­nę įrangą

Žinomos programųsaugumo spragos paprastai greitai pa­ša­li­na­mos at­nau­ji­ni­mais. Nuolat sekdami savo ope­ra­ci­nės sistemos ir įdiegtų programų at­nau­ji­ni­mus bei juos ne­del­siant įdiegdami, už­tik­ri­na­te optimalų savo serverio apsaugą. Dauguma serverių sistemų taip pat siūlo funkcijas, lei­džian­čias au­to­ma­tiš­kai at­si­siųs­ti ir įdiegti svar­biau­sius saugumo at­nau­ji­ni­mus foniniame režime.

Pa­vyz­džiui, jei saugote „Windows“ serverį, skyriuje „Windows Update“ galite nustatyti konk­re­čias au­to­ma­ti­nių at­nau­ji­ni­mų taisykles. Tai apima nustatymą, kada ir kaip dažnai tikrinami at­nau­ji­ni­mai, ar juos reikia įdiegti iš karto ir kada sistema turi būti perkrauta. „Linux“ sistemose yra tokių įrankių kaip apt-listchanges arba apticron apvalkalo sce­na­ri­jus, kurie kasdien praneša apie naujus pri­ei­na­mus prog­ra­mi­nės įrangos paketus ir juos at­si­siun­čia. Papildomi sce­na­ri­jai, pa­vyz­džiui, unattended-upgrades, gali atlikti au­to­ma­ti­nį įdiegimą.

Note

Net ir naudodami au­to­ma­ti­nį at­nau­ji­ni­mo procesą, būtinai stebėkite, kokie at­nau­ji­ni­mai jau atlikti. Tai padės nustatyti ir ištaisyti klaidas, kurios gali atsirasti at­nau­ji­ni­mo proceso metu.

8 žingsnis: Ap­sau­go­ki­te „Windows“ ir „Linux“ serverius nuo atakų „brute-force“ metodu

Vienas iš pa­pras­čiau­sių ir daž­niau­siai pa­si­tai­kan­čių atakų būdų yra „brute-force“ ataka. Šio tipo atakos metu hakeriai naudoja įrankius, kad pa­kar­to­ti­nai bandytų atspėti slap­ta­žo­dį. Įgy­ven­din­da­mi patikimas slap­ta­žo­džių tvarkymo praktikas, galite žymiai sumažinti tikimybę, kad šis metodas bus sėkmingas.

Tačiau jei jūsų serveris teikia paslaugas, kurioms rei­ka­lin­gas vartotojo pri­si­jun­gi­mas, negalima manyti, kad visi var­to­to­jai laikosi saugių slap­ta­žo­džių naudojimo taisyklių. Šią riziką padėti sumažinti gali analizės įrankiai: tokios programos kaip „Fail2ban“ (Linux/POSIX sistemoms) arba „RdpGuard“ (Windows) stebi serverio žurnalo failus, aptinka neįprastą elgesį ir blokuoja įtartinus IP adresus. Galite nustatyti, kiek kartų leidžiama ne­sėk­min­gai bandyti pri­si­jung­ti prieš pradedant blokavimą, taip pat blokavimo trukmę.

9 žingsnis: Naudokite stebėjimo įrankius

Siekiant už­tik­rin­ti serverio saugumą, labai svarbu už­tik­rin­ti, kad aparatinė ir prog­ra­mi­nė įranga są­vei­kau­tų taip, kaip numatyta. Tai nėra vien­kar­ti­nis uždavinys, o nuolatinė pareiga, rei­ka­lau­jan­ti nuo­la­ti­nio dėmesio. At­si­žvel­giant į didelį skirtingų sistemos procesų skaičių, patartina nuo pat pradžių naudoti stebėjimo įrankius. Šie įrankiai stebi visą serverio veiklą ir įspėja apie nu­kry­pi­mus nuo normos.

Paprasta ir lengvai kon­fi­gū­ruo­ja­ma programa šiam tikslui yra „Monit“, kurią daugelyje „Linux“ dist­ri­bu­ci­jų galima įdiegti per paketų tvarkyklę. Ši atvirojo kodo programa (GNU-AGPL licencija) gali stebėti procesus, failus, debesų aplinkas, kom­piu­te­rius, programas ar skriptus, taip pat sistemos išteklius, pa­vyz­džiui, pro­ce­so­riaus ir atminties naudojimą. Norint vykdyti išsamesnę stebėseną, verta ap­svars­ty­ti „Nagios“ – atvirojo kodo įrankį, skirtą „Linux“ ir „Windows“ sistemoms. „Nagios“ taip pat galima išplėsti naudojant „Nagios“ pa­pil­di­nius.

10 žingsnis: Nu­sta­ty­ki­te at­sar­gi­nes kopijas

Re­ko­men­duo­ja­mi kon­fi­gū­ra­vi­mo veiksmai žymiai padidina jūsų serverio saugumą. Tačiau net ir ge­riau­sios kon­fi­gū­ra­ci­jos bei kruopšti priežiūra negali už­tik­rin­ti 100 % apsaugos. Išsami at­sar­gi­nių kopijų stra­te­gi­ja yra esminė jūsų saugumo sistemos su­de­da­mo­ji dalis, lei­džian­ti atkurti failus duomenų praradimo atveju.

Yra daug patikimų įrankių, kurie padės jums kurti ir atkurti at­sar­gi­nes kopijas. Viena iš nemokamų galimybių – atvirojo kodo sin­ch­ro­ni­za­vi­mo įrankis „rsync“, su­de­ri­na­mas su dauguma pag­rin­di­nių platformų (macOS, Windows, Linux). Šis įrankis užtikrina, kad jūsų atsarginė kopija būtų at­nau­ji­na­ma realiuoju laiku, at­spin­dė­da­mas visus ori­gi­na­lio­je duomenų bazėje atliktus pa­kei­ti­mus.

Be bendros serverio at­sar­gi­nės kopijos, būtinai pa­si­rū­pin­ki­te, kad būtų sukurtos ir duomenų bazių at­sar­gi­nės kopijos.

Note

Siekiant už­tik­rin­ti maksimalų at­sar­gi­nių kopijų saugumą, jas reikėtų saugoti išorinėse laik­me­no­se (pvz., ne­šio­ja­muo­siuo­se kie­tuo­siuo­se diskuose, pa­pil­do­muo­se ser­ve­riuo­se), o ne pačiame saugomame serveryje.

Go to Main Menu