Serveriai veikia SSH paprastai yra švelnus brutalios jėgos atakų taikinys. Piratai nuolat sugalvoja naujoviškų programinės įrangos įrankių ir robotų, skirtų automatizuoti žiaurios jėgos atakas, kurios dar labiau padidina įsibrovimo riziką.
Šiame vadove nagrinėjame kai kuriuos patarimus, kuriuos galite įgyvendinti norėdami apsaugoti savo SSH serverius nuo žiaurios jėgos atakų RHEL pagrįsti Linux platinimai ir Debian dariniai.
Numatytasis autentifikavimo metodas SSH yra vartotojo vardo / slaptažodžio autentifikavimas. Tačiau, kaip matėme, slaptažodžio autentifikavimas yra linkęs į žiaurios jėgos atakas. Saugumo sumetimais rekomenduojama įdiegti raktu pagrįstą SSH autentifikavimą, kai autentifikavimas yra įmanomas naudojant viešąsias ir privačias SSH raktų poras. Privatusis raktas lieka kliento kompiuteryje, kol viešasis raktas nukopijuojamas į serverį.
SSH rakto autentifikavimo metu serveris patikrina, ar kliento kompiuteris turi privatųjį raktą. Jei patikrinimas sėkmingas, sukuriama apvalkalo sesija arba sėkmingai vykdoma komanda, išsiųsta į nuotolinį serverį. Turime išsamų vadovą
kaip sukonfigūruoti SSH raktu pagrįstą autentifikavimą.Net ir nustačius raktu pagrįstą autentifikavimą, jūsų serveris vis dar yra jautrus brutalios jėgos atakoms dėl tos paprastos priežasties, kad slaptažodžio autentifikavimas vis dar aktyvus. Tai reikia išjungti.
Todėl redaguokite numatytąjį SSH konfigūracijos failą.
$ sudo vim /etc/ssh/sshd_config.
Nustatyti Slaptažodžio autentifikavimas parametras į ne
taip, kaip parodyta.
Slaptažodis Autentifikavimo Nr.
Tada išsaugokite failą ir iš naujo įkelkite SSH, kad pritaikytumėte pakeitimus.
$ sudo systemctl iš naujo įkelti ssh.
Įrašyta Python, Fail2ban yra atvirojo kodo įsilaužimo prevencijos sistema, kuri nuskaito paslaugų žurnalo failus autentifikavimui gedimų ir uždraudžia IP, kurie pakartotinai nepavyksta slaptažodžio autentifikavimo patikrų tam tikram kiekiui laikas.
Fail2ban nuolat stebi serverio žurnalo failus, ar nėra bandymų įsilaužti ir kitos nešvankios veiklos, po iš anksto nustatyto autentifikavimo skaičiaus gedimai – dažniausiai 3 nesėkmingi prisijungimo bandymai – Fail2ban automatiškai blokuoja nuotolinio kompiuterio prieigą prie serverio, o pagrindinis kompiuteris laikomas "Kalėjimas“ tam tikrą laiką.
Tai darydamas Fail2ban žymiai sumažina neteisingo slaptažodžio autentifikavimo bandymų dažnį. Peržiūrėkite mūsų vadovą, kaip tai padaryti Įdiekite ir sukonfigūruokite „Fail2ban“ sistemoje „Linux“. kad apsaugotumėte savo serverį nuo Bruteforce atakų.
Kitas paprastas būdas apsaugoti serverį nuo žiaurios jėgos atakų yra apriboti SSH prisijungimo bandymų skaičių. Pagal numatytuosius nustatymus tai nustatyta į 3, bet jei atsitiktinai ši vertė nustatyta į didesnę, nustatykite ne daugiau kaip 3 bandymus prisijungti.
Pavyzdžiui, norėdami nustatyti maksimalų prisijungimo bandymų skaičių iki 3, nustatykite MaxAuthTries parametras į 3 taip, kaip parodyta
MaxAuthTries = 3.
Dar kartą išsaugokite pakeitimus ir iš naujo įkelkite SSH paslaugą.
$ sudo systemctl iš naujo įkelti ssh.
TCP wrappers yra biblioteka, teikianti pagrindinio kompiuterio pagrindą Prieigos kontrolės sąrašas (ACL), kuris apriboja nuotolinių klientų prieigą prie TCP paslaugų pagal jų IP adresus
Nuotoliniai kompiuteriai negali pasiekti sistemos paslaugų. TCP paketai naudoja /etc/hosts.allow ir /etc/hosts.deny konfigūracijos failus (tokia tvarka), kad nustatytų, ar nuotoliniam klientui leidžiama pasiekti konkrečią paslaugą, ar ne.
Paprastai šie failai yra komentuojami ir visi pagrindiniai kompiuteriai leidžiami per TCP paketų sluoksnį. Prieigos prie tam tikros paslaugos leidimo taisyklės pateikiamos /etc/hosts.allow failą ir turi viršenybę prieš taisykles, esančias /etc/hosts.deny failą.
Geriausia praktika rekomenduoja blokuoti visus gaunamus ryšius. Todėl atidarykite /etc/hosts.deny failą.
$ sudo vim /etc/hosts.deny.
Pridėkite šią eilutę.
VISI: VISI.
Išsaugokite pakeitimus ir išeikite iš failo.
Tada pasiekite /etc/hosts.allow failą.
$ sudo vim /etc/hosts.allow.
Konfigūruokite pagrindinius kompiuterius arba domenus, kurie gali prisijungti prie serverio per SSH, kaip parodyta. Šiame pavyzdyje mes leidžiame tik dviem nuotoliniams kompiuteriams prisijungti prie serverio (173.82.227.89 ir 173.82.255.55) ir paneigti likusią dalį.
sshd: 173.82.227.89 173.82.255.55. sshd: ALL: DENY.
Išsaugokite pakeitimus ir išeikite iš konfigūracijos failo.
Norėdami tai išbandyti, pabandykite prisijungti prie serverio iš pagrindinio kompiuterio, kuris nėra tarp tų, prie kurių jums leido pasiekti. Turėtumėte gauti leidimo klaidą, kaip parodyta.
$ ssh [apsaugotas el. paštas] kex_exchange_identification: skaityti: ryšį iš naujo nustatė bendraamžis. Ryšys iš naujo nustatytas naudojant 173.82.235.7 22 prievadą. prarado ryšį.
Dviejų faktorių autentifikavimas suteikia papildomą saugumo lygį slaptažodžio autentifikavimui, todėl jūsų serveris yra labiau apsaugotas nuo žiaurios jėgos atakų. Plačiai naudojamas Dviejų faktorių autentifikavimas sprendimas yra „Google Authenticator“ programa ir mes turime gerai dokumentuotą vadovą, kaip tai padaryti nustatyti dviejų faktorių autentifikavimą.
Tai buvo 5 geriausių praktikų, kurias galite įgyvendinti, kad išvengtumėte, santrauka SSH Brute Force prisijungimo atakas ir užtikrinti savo serverio saugumą. Taip pat galite skaityti Kaip apsaugoti ir sustiprinti OpenSSH serverį.