Zaščita povezav SSH vam pomaga zaščititi sistem in podatke Linux. Sistemski skrbniki in domači uporabniki morajo prav tako zavarovati računalnike, povezane z internetom. Tukaj je 10 preprostih načinov, ki vam bodo pomagali zaščititi vaš strežnik SSH .
Nekaj osnov o varnosti SSH
SSH pomeni Secure Shell. Protokol SSH ali programsko orodje omogoča sistemskim skrbnikom in uporabnikom varne povezave z oddaljenimi računalniki, ki uporabljajo ta protokol.
Protokol SSH je šifriran protokol, zasnovan za zagotavljanje varne povezave prek nevarnega omrežja, kot je internet. SSH v Linuxu je zgrajen na prenosni različici projekta OpenSSH. Izveden je v klasičnem modelu odjemalec-strežnik s strežnikom SSH, ki sprejema povezave odjemalcev SSH. Odjemalec se uporablja za povezavo s strežnikom in izpostavitev seje oddaljenim uporabnikom. Strežnik sprejme povezavo in začne sejo.
V svoji privzeti konfiguraciji bo strežnik SSH »poslušal« dohodne povezave na protokolu za nadzor prenosa (TCP), vrata 22. Ker so to standardizirana in priljubljena vrata, so tarča groženj akterjev in zlonamernih botov.
Zlonamerni akterji zaženejo robote, ki skenirajo obsege naslovov IP in iščejo odprta vrata. Nato ta vrata preišče za ranljivosti, ki jih je mogoče izkoristiti. Razmišljanje, da sem varen, da je veliko večjih in boljših tarč od mene, ki jih ciljajo negativci, je popolnoma napačno. Ti roboti ne izbirajo svojih tarč na podlagi kakršnih koli kriterijev, ampak le iščejo način, kako prodreti v sistem.
Če ne zavarujete svojega sistema, boste žrtev.
Varnostno trenje
Točka varnostnega trenja je vsaka situacija, ko je glavna naloga preprečena ali odložena zaradi varnostnih zahtev.
Varnostna trenja povzročajo nelagodje (na kateri koli ravni) uporabnikom in drugim, ko izvajate varnostne ukrepe. Ljudje, ki šele spoznavajo računalniške sisteme, lahko skrbi, ali bodo dejansko morali vnesti geslo vsakič, ko se bodo prijavili v glavni računalnik. Za njih je to tudi oblika varnostnih trenj.
Uvedba varnostnih ukrepov bo za nekatere ljudi pogosto vključevala neko obliko trenja. Lastniki podjetij morajo te ukrepe plačati. Uporabniki računalnikov bodo morda morali spremeniti navade ali si zapomniti različne podatke za preverjanje pristnosti in dodati korake za uspešno povezavo. Sistemski skrbniki bodo imeli dodatno delo pri izvajanju in vzdrževanju novih varnostnih ukrepov.
Zaostrovanje in zaklepanje operacijskega sistema Linux ali Unix je lahko hitro. Varnostni ukrepi tukaj so nabor preprostih korakov, ki bodo izboljšali varnost računalnika brez potrebe po aplikacijah tretjih oseb in globokem posegu požarnega zidu .
Uporabite protokol SSH različice 2
Leta 2006 je bil protokol SSH posodobljen z različice 1 na različico 2. To je pomembna nadgradnja. Obstaja veliko sprememb in izboljšav, zlasti pri šifriranju in varnosti, različica 2 pa ni združljiva za nazaj z različico 1. Če želite preprečiti povezave odjemalcev različice 1, lahko določite, da računalniki sprejemajo samo povezave iz različice 2.
Če želite to narediti, uredite datoteko /etc/ssh/sshd_config z naslednjim ukazom:
sudo gedit /etc/ssh/sshd_config

Dodajte naslednjo vrstico:
Protocol 2

In shranite datoteko, nato znova zaženite demonski proces SSH z naslednjim ukazom:
sudo systemctl restart sshd

Preizkusite novo nastavitev v akciji tako, da preklopite na drugo napravo in poskusite vzpostaviti SSH v preskusno napravo. Uporabili bomo možnost -1 (protokol 1), da prisilimo ukaz ssh k uporabi protokola različice 1.
ssh -1 [email protected]

Zahteva za povezavo zavrnjena. Prepričajte se, da se lahko še vedno povežete s protokolom 2. Za preizkus bomo uporabili -2 (protokol 2).
ssh -2 [email protected]

Dejstvo, da strežnik SSH zahteva geslo, je pozitiven znak, da je bila povezava vzpostavljena in da ste v interakciji s strežnikom. Sodobni odjemalci SSH bodo privzeto uporabljali protokol 2, protokola 2 nam ni treba določiti, če je odjemalec posodobljen.
ssh [email protected]

Povezava je bila sprejeta.
Izogibajte se vratom 22
Vrata 22 so standardna vrata za povezave SSH. Če so uporabljena druga vrata, vašemu sistemu doda malo varnosti skozi skrivnost (STO). Varnost zaradi dvoumnosti se nikoli ne sme obravnavati kot pravi varnostni ukrep. Pravzaprav nekateri pametnejši napadalni boti preiščejo vsa odprta vrata in se odločijo, katero storitev izvajajo, namesto da bi se zanašali na preprost iskalni seznam vrat in domnevali, da običajno zagotavljajo storitev. Toda uporaba nestandardnih vrat lahko pomaga zmanjšati slab promet na vratih 22.
Če želite konfigurirati nestandardna vrata, uredite konfiguracijsko datoteko SSH kot zgoraj.

Izbrišite # na začetku vrstice vrat in zamenjajte 22 s številko po vaši izbiri. Shranite konfiguracijsko datoteko in znova zaženite demon SSH.
Na drugem računalniku bomo uporabili ukaz ssh za povezavo s strežnikom. Privzeti ukaz ssh uporablja vrata 22:
ssh [email protected]

Povezava zavrnjena. Poskusite znova in določite vrata 470 z možnostjo –p (vrata):
ssh -p 479 [email protected]

Povezava potrjena.
Povežite filter s TCP Wrapperji
TCP Wrappers so lahko razumljiv seznam za nadzor dostopa. Omogoča vam, da zavrnete in dovolite povezave na podlagi značilnosti zahteve za povezavo, kot sta naslov IP ali ime gostitelja. TCP Wrappers je treba uporabljati s pravilno konfiguriranim požarnim zidom, ne pa namesto njega.
TCP Wrappers so vnaprej nameščeni na strojih Ubuntu 18.04 LTS . Nameščen mora biti v Manjaro 18.10 in Fedora 30.
Za namestitev v sistem Fedora uporabite naslednji ukaz:
sudo yum install tcp_wrappers

Za namestitev na Manjaro uporabite ta ukaz:
sudo pacman -Syu tcp-wrappers

Vključeni sta dve datoteki, ena datoteka vsebuje seznam dovoljenih in ena datoteka seznam zavrnjenih. Uredite seznam zavrnitev z naslednjim ukazom:
sudo gedit /etc/hosts.deny

Zgornji ukaz bo odprl urejevalnik gedit z datoteko, ki se v njem noče naložiti.

Dodati morate vrstico:
ALL : ALL
In shranite datoteko. Ta vrstica bo blokirala vse nepooblaščene dostope. Zdaj moramo podeliti dovoljenja za povezave, ki jih želite sprejeti. Če želite to narediti, morate urediti datoteko z dovoljenji:
sudo gedit /etc/hosts.allow

Zgornji ukaz bo odprl urejevalnik gedit z datoteko za prenos v njem.

Dodali smo ime demona SSH, SSHD in naslov IP računalnika, ki omogoča vzpostavitev povezave. Shranite datoteko in preverite, ali veljajo omejitve in dovoljenja.
Najprej se boste poskusili povezati iz računalnika, ki ni v datoteki hosts.allow:

Povezava zavrnjena. Poskušali se bomo povezati s stroja z naslovom IP 192.168.4.23:

Povezava sprejeta.
Tukajšnji primer dovoljuje samo en stroj za povezavo. Ovoji TCP so precej prilagodljivi, podpirajo imena gostiteljev, nadomestne znake in podomrežne maske za sprejemanje povezav iz obsegov naslovov IP.
Zavrni zahteve za povezavo brez gesla
Čeprav ni dobro, lahko skrbniki sistema Linux ustvarijo uporabniške račune brez gesel. To pomeni, da za oddaljene povezave iz tega računa ni potrebno geslo. Te povezave bodo sprejete, vendar ne bodo overjene.
Privzeta nastavitev za SSH sprejema zahteve za povezavo brez gesla. Preprosto ga lahko spremenimo in zagotovimo, da so vse te povezave overjene.
Urediti morate konfiguracijsko datoteko SSH.

Pomaknite se navzdol po datoteki, dokler ne vidite vrstice #PermitEmptyPasswords št . Izbrišite # na začetku vrstice in shranite datoteko. Znova zaženite demon SSH.
Namesto gesel uporabite ključe SSH
Ključi SSH zagotavljajo varen način za prijavo v strežnik SSH. Gesla je mogoče vdreti, uganiti ali vsiliti . Ključi SSH niso ranljivi za te vrste napadov.
Pri ustvarjanju ključa SSH ustvarite par ključev. Eden je javni ključ, drugi pa zasebni ključ. Javni ključ je nameščen na strežnikih, s katerimi se želite povezati. Zasebni ključ je varno shranjen v vašem računalniku.
SSH ključi omogočajo vzpostavljanje povezav brez gesla, kar je bolj varno kot povezave z avtentikacijo z geslom.
Ko zahteva povezavo, oddaljeni računalnik uporabi kopijo javnega ključa za ustvarjanje šifriranega sporočila, poslanega nazaj v računalnik. Ker je šifriran z javnim ključem, ga lahko računalnik dešifrira z zasebnim ključem.
Računalnik nato iz sporočila izvleče nekaj informacij, jih šifrira in pošlje nazaj na strežnik. Če ga lahko strežnik dešifrira s kopijo javnega ključa. Če se informacije v sporočilu ujemajo s tistimi, ki vam jih je poslal strežnik, bo povezava potrjena.
Tukaj uporabnik vzpostavi povezavo s strežnikom na naslovu 192.168.4.11 s ključem SSH. Upoštevajte, da niso pozvani k vnosu gesla.
ssh [email protected]

Popolnoma onemogočite preverjanje pristnosti gesla
Preverjanje pristnosti gesla lahko popolnoma onemogočite, če uporabljate ključe SSH. Urediti moramo konfiguracijsko datoteko SSH.

Pomaknite se navzdol po datoteki, dokler ne vidite vrstice, ki se začne z #PasswordAuthentication da . Izbrišite # na začetku vrstice, spremenite da v ne in shranite datoteko. Znova zaženite demon SSH.
Onemogoči posredovanje X11
Posredovanje X11 omogoča oddaljenim uporabnikom, da izvajajo grafične aplikacije iz vašega strežnika prek seje SSH, vendar ga slabi akterji zlahka izkoristijo. Bolje je, da ga izklopite tako, da uredite konfiguracijsko datoteko SSH.

Pomaknite se navzdol po datoteki, dokler ne vidite vrstice #X11Posredovanje št. , izbrišite # na začetku vrstice in shranite datoteko. Znova zaženite demon SSH.
Nastavite vrednost časovne omejitve nedejavnosti
Če je vzpostavljena povezava SSH z računalnikom in na njem nekaj časa ni dejavnosti, lahko to predstavlja varnostno tveganje.
Zato morate nastaviti časovno omejitev. Povezava SSH bo prekinjena, če v časovni omejitvi ne bo nobene dejavnosti. Ponovno moramo urediti konfiguracijsko datoteko SSH.

Pomaknite se navzdol po datoteki, dokler ne vidite vrstice, ki se začne z #ClientAliveInterval 0 . Odstranite # na začetku vrstice, spremenite številko 0 na želeno vrednost. Običajno ga ljudje nastavijo na 300 sekund, kar je 5 minut. Shranite datoteko in znova zaženite demon SSH.
Nastavite omejitev števila vnosov gesel
Če določite omejitev števila potrditev, lahko preprečite ugibanje gesel in napade s surovo silo. Po določenem številu zahtev za preverjanje pristnosti bo uporabnik prekinjen s strežnikom SSH. Privzeto število poskusov gesla ni omejeno, vendar ga lahko uredite v konfiguracijski datoteki SSH.

Pomaknite se navzdol po datoteki, dokler ne vidite vrstice, ki se začne z #MaxAuthTries 0 . Če odstranite # na začetku vrstice, spremenite število na želeno vrednost. Lahko ga nastavite na 3. Ko spreminjate datoteko, shranite datoteko in znova zaženite demon SSH.
To lahko preizkusite tako, da se poskusite povezati in vnesete napačno geslo.

Upoštevajte, da je število MaxAuthTries večje od števila poskusov, ki jih ima uporabnik dovoljeno. Po dveh neuspelih poskusih je povezava prekinjena, kar pomeni, da je MaxAuthTries nastavljen na 3.
Onemogoči korensko prijavo
Priporočamo vam, da se ne prijavite kot root, ampak samo uporabite kot običajen uporabnik v Linuxu in uporabite sudo za izvajanje dejanj, ki zahtevajo root dovoljenja. Prav tako ne smete dovoliti, da se root prijavi v strežnik SSH. Samo običajni uporabniki se lahko povežejo. Če morajo opraviti nalogo na upravni ravni, lahko uporabijo tudi sudo. Če morate korenskemu uporabniku dovoliti prijavo, ga lahko prisilite, da uporabi ključ SSH.
Uredite konfiguracijsko datoteko, da onemogočite korensko prijavo.

Pomaknite se navzdol po datoteki, dokler ne vidite vrstice, ki se začne z #PermitRootLogin prohibit-password , izbrišite # na začetku vrstice.
- Če želite rootu preprečiti prijavo, zamenjajte prohibit-password z št.
- Če root-u dovolite prijavo, vendar vsilite uporabo ključa SSH, pustite prohibit-password nedotaknjeno.
Shranite spremembe in znova zaženite demon SSH.
Zadnji korak
Seveda, če na vašem računalniku ne potrebujete SSH, ga izklopite z naslednjim ukazom:
sudo systemctl stop sshd
sudo systemctl disable sshd
Želim vam uspeh!