Šiais laikais serverio nustatymas priegloboje yra kelių minučių ir kelių pelės paspaudimų reikalas. Tačiau iškart po paleidimo jis atsiduria priešiškoje aplinkoje, nes yra atviras visam internetui kaip nekalta mergina rokerių diskotekoje. Skaitytuvai greitai jį suras ir atras tūkstančius automatiškai surašytų robotų, kurie naršo tinklą ieškodami pažeidžiamumų ir neteisingų konfigūracijų. Yra keletas dalykų, kuriuos turėtumėte atlikti iškart po paleidimo, kad užtikrintumėte pagrindinę apsaugą.
Pirmas dalykas, kurį reikia padaryti, yra sukurti ne root naudotoją. Esmė ta, kad vartotojas root absoliučios privilegijos sistemoje, o jei leisite jam nuotoliniu būdu administruoti, tuomet pusę darbo atliksite už įsilaužėlį, palikdami jam galiojantį vartotojo vardą.
Todėl turite sukurti kitą vartotoją ir išjungti nuotolinį administravimą per SSH root.
Su komanda sukuriamas naujas vartotojas useradd:
useradd [options] <username>
Tada su komanda pridedamas slaptažodis passwd:
passwd <username>
Galiausiai šis vartotojas turi būti įtrauktas į grupę, kuri turi teisę vykdyti komandas su padidintomis teisėmis sudo. Priklausomai nuo Linux platinimo, tai gali būti skirtingos grupės. Pavyzdžiui, CentOS ir Red Hat vartotojas įtraukiamas į grupę wheel:
usermod -aG wheel <username>
Ubuntu jis pridedamas prie grupės sudo:
usermod -aG sudo <username>
Raktai vietoj SSH slaptažodžių
Brutalia jėga arba slaptažodžio nutekėjimas yra standartinis atakos vektorius, todėl geriau išjungti slaptažodžio autentifikavimą SSH (Secure Shell) ir naudoti rakto autentifikavimą.
SSH protokolui įgyvendinti yra įvairių programų, pvz lsh и „Dropbear“, tačiau populiariausias yra OpenSSH. OpenSSH kliento diegimas Ubuntu:
Reikėtų pažymėti, kad OpenSSH serverio dalis apima kliento dalį. Tai yra, per openssh-server galite prisijungti prie kitų serverių. Be to, iš savo kliento įrenginio galite paleisti SSH tunelį iš nuotolinio serverio į trečiosios šalies pagrindinį kompiuterį, o tada trečiosios šalies priegloba laikys nuotolinį serverį užklausų šaltiniu. Labai patogi funkcija užmaskuoti jūsų sistemą. Daugiau informacijos rasite straipsnyje. „Praktiniai patarimai, pavyzdžiai ir SSH tuneliai“.
Paprastai nėra prasmės kliento kompiuteryje diegti visavertį serverį, kad būtų išvengta galimybės nuotoliniu būdu prisijungti prie kompiuterio (saugumo sumetimais).
Taigi naujam vartotojui pirmiausia turite sugeneruoti SSH raktus kompiuteryje, iš kurio pasieksite serverį:
ssh-keygen -t rsa
Viešasis raktas saugomas faile .pub ir atrodo kaip atsitiktinių simbolių eilutė, kuri prasideda ssh-rsa.
Tada, kaip root, sukurkite SSH katalogą serveryje vartotojo namų kataloge ir pridėkite SSH viešąjį raktą prie failo authorized_keysnaudojant teksto rengyklę, pvz., Vim:
Kliento pusėje turite nurodyti slaptojo rakto vietą autentifikavimui:
ssh-add DIR_PATH/keylocation
Dabar galite prisijungti prie serverio naudodami vartotojo vardą naudodami šį raktą:
ssh [username]@hostname
Po autorizacijos galite naudoti komandą scp, norėdami nukopijuoti failus, įrankį sshfs Norėdami nuotoliniu būdu prijungti failų sistemą arba katalogus.
Patartina pasidaryti kelias atsargines privataus rakto kopijas, nes išjungus slaptažodžio autentifikavimą ir jį praradus, išvis neturėsite galimybės prisijungti prie savo serverio.
Kaip minėta aukščiau, SSH turite išjungti root autentifikavimą (dėl šios priežasties sukūrėme naują vartotoją).
Patikrinę, kad naujasis vartotojas autentifikuotas naudojant jo raktą, galite išjungti slaptažodžio autentifikavimą, kad išvengtumėte slaptažodžio nutekėjimo ar žiaurios jėgos rizikos. Dabar, norėdamas pasiekti serverį, užpuolikas turės gauti privatų raktą.
„CentOS“ / „Red Hat“ randame liniją PasswordAuthentication yes konfigūracijos faile /etc/ssh/sshd_config ir pakeiskite jį taip:
PasswordAuthentication no
Ubuntu pridėkite eilutę PasswordAuthentication no į failą 10-my-sshd-settings.conf:
Instrukcijas, kaip įjungti dviejų veiksnių autentifikavimą naudojant SSH, žr čia.
Ugniasienė
Ugniasienė užtikrina, kad į serverį pateks tik jūsų tiesiogiai leidžiamų prievadų srautas. Tai apsaugo nuo prievadų, kuriuos netyčia įjungia kitos paslaugos, išnaudojimo, o tai labai sumažina atakos paviršių.
Prieš diegdami ugniasienę, turite įsitikinti, kad SSH yra įtrauktas į išimčių sąrašą ir nebus užblokuotas. Priešingu atveju, paleidę ugniasienę, negalėsime prisijungti prie serverio.
Ubuntu paskirstymas pateikiamas su nesudėtinga ugniasienė (Oho) ir su CentOS / Red Hat – užkarda.
SSH leidimas Ubuntu ugniasienėje:
sudo ufw allow ssh
„CentOS“ / „Red Hat“ naudojame komandą firewall-cmd:
Tarnyba „Fail2Ban“ analizuoja serverio žurnalus ir skaičiuoja prieigos bandymų skaičių iš kiekvieno IP adreso. Nustatymuose nurodomos taisyklės, kiek tam tikru intervalu leidžiama bandyti pasiekti – po to šis IP adresas blokuojamas tam tikram laikui. Pavyzdžiui, leidžiame 5 nesėkmingus autentifikavimo bandymus per SSH per 2 valandų laikotarpį, po kurio šį IP adresą blokuojame 12 valandų.
Be SSH, „Fail2Ban“ gali apsaugoti kitas „nginx“ arba „Apache“ žiniatinklio serverio paslaugas.
Automatiniai saugos naujinimai
Kaip žinia, visose programose nuolat randama naujų spragų. Paskelbus informaciją, išnaudojimai pridedami prie populiarių išnaudojimo paketų, kuriuos plačiai naudoja įsilaužėliai ir paaugliai, nuskaitydami visus serverius iš eilės. Todėl labai svarbu įdiegti saugos naujinimus, kai tik jie pasirodys.
Ubuntu serveriuose pagal numatytuosius nustatymus įjungti automatiniai saugos naujinimai, todėl nereikia atlikti jokių papildomų veiksmų.
„CentOS“ / „Red Hat“ turite įdiegti programą dnf-automatas ir įjunkite laikmatį:
Natūralu, kad visi užpuolikai žino, kuriame prievade veikia SSH – ir nuskaito jį kartu su kitais standartiniais prievadais, kad sužinotų programinės įrangos versiją, patikrintų standartinius root slaptažodžius ir pan.
Standartinių prievadų keitimas – užtemimas – kelis kartus sumažina nepageidaujamo srauto apimtį, žurnalų dydį ir serverio apkrovą, taip pat sumažina atakos paviršių. Nors kai kurie kritikuoti šį „gynybos per nežinomybę“ metodą (saugumas per nežinomybę). Priežastis ta, kad ši technika prieštarauja pagrindinei architektūrinė apsauga. Todėl, pavyzdžiui, JAV nacionalinis standartų ir technologijų institutas „Serverio saugos vadovas“ nurodo atviros serverio architektūros poreikį: „Sistemos saugumas neturėtų remtis jos komponentų diegimo slaptumu“, – rašoma dokumente.
Teoriškai numatytųjų prievadų keitimas prieštarauja atviros architektūros praktikai. Tačiau praktiškai kenkėjiško srauto apimtys iš tikrųjų mažėja, todėl tai paprasta ir efektyvi priemonė.
Prievado numerį galima konfigūruoti pakeitus direktyvą Port 22 konfigūracijos faile / etc / ssh / sshd_config. Tai taip pat nurodo parametras -p <port> в sshd. SSH klientas ir programos sftp taip pat palaiko parametrą -p <port>.
Parametras -p <port> galima naudoti norint nurodyti prievado numerį jungiantis naudojant komandą ssh Linux sistemoje. IN sftp и scp naudojamas parametras -P <port> (didžioji P). Nurodžius jį komandinėje eilutėje, nepaisoma bet kokios reikšmės konfigūracijos failuose.
Jei serverių yra daug, beveik visi šie Linux serverio apsaugos veiksmai gali būti automatizuoti pagal scenarijų. Bet jei yra tik vienas serveris, geriau valdyti procesą rankiniu būdu.
Dėl reklamos teisių
Užsisakykite ir pradėkite dirbti iš karto! VDS kūrimas bet kokia konfigūracija ir su bet kuria operacine sistema per minutę. Maksimali konfigūracija leis jums pasipūsti – 128 CPU branduoliai, 512 GB RAM, 4000 GB NVMe. Visai epiškai :)