Kaip apsaugoti ir grūdinti „OpenSSH“ serverį


Kalbant apie prieigą prie nuotolinių įrenginių, tokių kaip serveriai, maršrutizatoriai ir jungikliai, SSH protokolas yra labai rekomenduojamas, atsižvelgiant į jo galimybę užšifruoti srautą ir apsaugoti visus, kurie gali bandyti pasiklausyti jūsų ryšių.

Kaip bebūtų, numatytieji SSH nustatymai nėra neklystantys, o norint apsaugoti protokolą, reikia papildomų patobulinimų. Šiame vadove mes ištyrėme įvairius būdus, kuriais galite apsaugoti ir sustiprinti „OpenSSH“ diegimą serveryje.

1. Nustatykite SSH autentifikavimą be slaptažodžių

Pagal numatytuosius nustatymus SSH reikalauja, kad vartotojai pateiktų savo slaptažodžius prisijungdami. Tačiau štai kas: įsilaužėliai gali atspėti slaptažodžius ar net atlikti žiaurios jėgos ataką naudodami specialius įsilaužimo įrankius ir gauti prieigą prie jūsų sistemos. Kad būtų saugu, labai rekomenduojama naudoti SSH be slaptažodžių autentifikavimą.

Pirmasis žingsnis yra sukurti SSH raktų porą, susidedančią iš viešojo rakto ir privataus rakto. Privatus raktas yra jūsų pagrindinėje sistemoje, o viešasis raktas nukopijuojamas į nuotolinį serverį.

Sėkmingai nukopijavus viešąjį raktą, jūs galite sklandžiai SSH prisijungti prie nuotolinio serverio, nenurodydami slaptažodžio.

Kitas žingsnis - išjungti slaptažodžio autentifikavimą. Norėdami tai pasiekti, turite modifikuoti SSH konfigūracijos failą.

$ sudo vim /etc/ssh/sshd_config

Konfigūracijos failo viduje slinkite ir raskite šią direktyvą. Nekomentuokite ir pakeiskite parinktį yes į no

PasswordAuthentication no

Tada iš naujo paleiskite SSH demoną.

# sudo systemctl restart sshd

Šiuo metu prieigą prie nuotolinio serverio turėsite tik naudodami SSH rakto autentifikavimą.

2. Išjunkite vartotojo SSH prisijungimo užklausas be slaptažodžių

Kitas rekomenduojamas būdas sustiprinti jūsų serverio saugumą yra išjungti SSH prisijungimus iš vartotojų be slaptažodžių. Tai skamba kiek keistai, tačiau kartais sistemos administratoriai gali susikurti vartotojų paskyras ir pamiršti priskirti slaptažodžius - tai yra labai bloga idėja.

Jei norite atmesti vartotojų užklausas be slaptažodžio, vėl eikite į konfigūracijos failą adresu /etc/ssh/sshd_config ir įsitikinkite, kad turite toliau nurodytą direktyvą:

PermitEmptyPasswords no

Tada iš naujo paleiskite SSH paslaugą, kad būtų atliktas pakeitimas.

$ sudo systemctl restart sshd

3. Išjunkite SSH šaknų prisijungimus

Neįmanoma galvoti, kas gali nutikti, jei įsilaužėlis sugeba grubiai priversti jūsų šakninį slaptažodį. Nuotolinio šakninio prisijungimo leidimas visada yra bloga idėja, galinti pakenkti jūsų sistemos saugumui.

Dėl šios priežasties visada rekomenduojama išjungti SSH nuotolinį prisijungimą prie šaknų ir verčiau laikytis įprasto ne root vartotojo. Dar kartą eikite į konfigūracijos failą ir pakeiskite šią eilutę, kaip parodyta.

PermitRootLogin no

Baigę iš naujo paleiskite SSH paslaugą, kad pakeitimas būtų atliktas.

$ sudo systemctl restart sshd

Nuo šiol nuotolinis šakninis prisijungimas bus išjungtas.

4. Naudokite 2 SSH protokolą

SSH yra dviejų versijų: SSH 1 protokolas ir 2 protokolas. SSH 2 protokolas buvo pristatytas 2006 m. Ir yra saugesnis nei 1 protokolas dėl savo stiprių kriptografinių patikrinimų, masinio šifravimo ir patikimų algoritmų.

Pagal numatytuosius nustatymus SSH naudoja 1 protokolą. Norėdami pakeisti saugesnį 2 protokolą, pridėkite žemiau esančią eilutę prie konfigūracijos failo:

Protocol 2

Kaip visada, iš naujo paleiskite SSH, kad pakeitimai įsigaliotų.

$ sudo systemctl restart sshd

Toliau SSH pagal numatytuosius nustatymus naudos 2 protokolą.

Norėdami patikrinti, ar SSH 1 protokolas dar palaikomas, vykdykite komandą:

$ ssh -1 [email 

Gausite klaidą, kurioje rašoma „SSH protokolo v.1 nebepalaikoma“.

Šiuo atveju komanda buvo:

$ ssh -1 [email 

Be to, galite tiesiog nurodyti žymą -2 , kad įsitikintumėte, jog 2 protokolas yra numatytasis naudojamas protokolas.

$ ssh -2 [email 

5. Nustatykite SSH ryšio skirtojo laiko neveikos vertę

Palikus kompiuterį be priežiūros ilgesnį laiką naudojant nenaudojamą SSH ryšį, gali kilti pavojus saugumui. Kažkas gali tiesiog praeiti pro šalį ir perimti jūsų SSH sesiją ir padaryti viską, kas jiems patinka. Todėl norint išspręsti šią problemą, reikia nustatyti tuščiosios eigos laiko apribojimą, kurį viršijus SSH sesija bus uždaryta.

Dar kartą atidarykite savo SSH konfigūracijos failą ir raskite direktyvą „ClientAliveInterval“. Priskirkite pagrįstą vertę, pavyzdžiui, aš nustatiau ribą iki 180 sekundžių.

ClientAliveInterval 180

Tai reiškia, kad SSH sesija bus nutraukta, jei po 3 minučių nebus užregistruota jokia veikla, o tai atitinka 180 sekundžių.

Tada paleiskite SSH demoną iš naujo, kad atliktumėte atliktus pakeitimus.

$ sudo systemctl restart sshd

6. Apriboti SSH prieigą tam tikriems vartotojams

Jei norite pridėti papildomą saugos sluoksnį, galite apibrėžti vartotojus, kuriems reikia SSH protokolo, kad prisijungtų ir atliktų nuotolines sistemos užduotis. Tai apsaugo nuo kitų vartotojų, kurie gali bandyti patekti į jūsų sistemą be jūsų patvirtinimo.

Kaip visada, atidarykite konfigūracijos failą ir pridėkite direktyvą „AllowUsers“, nurodydami norimų suteikti vartotojų vardus. Toliau pateiktame pavyzdyje leidau vartotojams „tecmint“ ir „james“ turėti nuotolinę prieigą prie sistemos per SSH. Visi kiti vartotojai, bandantys gauti nuotolinę prieigą, bus užblokuoti.

AllowUsers tecmint james

Po to iš naujo paleiskite SSH, kad pakeitimai išliktų.

$ sudo systemctl restart sshd

7. Sukonfigūruokite bandymų slaptažodžiu limitą

Kitas būdas pridėti saugumo sluoksnį yra apriboti SSH prisijungimo bandymų skaičių taip, kad po kelių nesėkmingų bandymų ryšys nutrūktų. Taigi dar kartą pereikite prie konfigūracijos failo ir suraskite „MaxAuthTries“ direktyvą bei apibrėžkite maksimalaus bandymų skaičiaus vertę.

Šiame pavyzdyje nustatyta 3 bandymų riba, kaip parodyta.

MaxAuthTries 3

Ir pagaliau iš naujo paleiskite SSH paslaugą, kaip ir ankstesniuose scenarijuose.

Šie taip pat gali būti naudingi šie su SSH susiję straipsniai:

  • Kaip įdiegti „OpenSSH 8.0“ serverį iš šaltinio sistemoje „Linux“
  • Kaip įdiegti „Fail2Ban“, kad apsaugotumėte SSH „CentOS/RHEL 8“
  • Kaip pakeisti SSH prievadą sistemoje „Linux“
  • Kaip sukurti „SSH Tunneling“ arba „Port Forwarding“ sistemoje „Linux“
  • 4 būdai, kaip pagreitinti SSH ryšius sistemoje „Linux“
  • Kaip rasti visus nepavykusius SSH prisijungimo bandymus sistemoje „Linux“
  • Kaip atjungti neaktyvius arba tuščiosios eigos SSH ryšius sistemoje „Linux“

Tai buvo keletas priemonių, kurių galite imtis, kad apsaugotumėte savo SSH nuotolinius ryšius. Svarbu pridurti, kad vartotojams, turintiems nuotolinę prieigą prie žiaurios jėgos atakų, visada turėtumėte priskirti tvirtus slaptažodžius. Tikimės, kad šis vadovas jums pasirodė įžvalgus. Jūsų atsiliepimai yra labai laukiami.