Kako zavarovati in utrjevati strežnik OpenSSH


Ko gre za dostop do oddaljenih naprav, kot so strežniki, usmerjevalniki in stikala, je protokol SSH zelo priporočljiv glede na njegovo zmožnost šifriranja prometa in preprečevanje vseh, ki bi poskušali prisluškovati vašim povezavam.

Kakor koli že, privzete nastavitve SSH niso nezmotljive in za dodatno varnost protokola so potrebni dodatni popravki. V tem priročniku raziskujemo različne načine, s katerimi lahko zavarujete in utrjujete namestitev OpenSSH na strežniku.

1. Nastavite overjanje SSH brez gesla

SSH privzeto zahteva, da uporabniki ob prijavi navedejo svoja gesla. Ampak tukaj je to: hekerji lahko ugibajo gesla ali celo izvajajo napad s silovito silo s posebnimi orodji za vdiranje in dobijo dostop do vašega sistema. Da bi bili na varni strani, zelo priporočamo uporabo overitve SSH brez gesla.

Prvi korak je generiranje para ključev SSH, ki je sestavljen iz javnega in zasebnega ključa. Zasebni ključ je v vašem gostiteljskem sistemu, medtem ko se javni ključ nato kopira v oddaljeni strežnik.

Ko je javni ključ uspešno kopiran, lahko zdaj SSH brez težav vnesete v oddaljeni strežnik, ne da bi morali vnesti geslo.

Naslednji korak je onemogočiti preverjanje pristnosti gesla. Če želite to doseči, morate spremeniti konfiguracijsko datoteko SSH.

$ sudo vim /etc/ssh/sshd_config

V konfiguracijski datoteki se pomaknite in poiščite naslednjo direktivo. Odznačite in spremenite možnost yes v no

PasswordAuthentication no

Nato znova zaženite demon SSH.

# sudo systemctl restart sshd

Na tej točki boste imeli dostop do oddaljenega strežnika samo s preverjanjem pristnosti ključa SSH.

2. Onemogočite uporabniške zahteve za povezavo brez gesla

Drug priporočljiv način krepitve varnosti vašega strežnika je onemogočanje prijave SSH uporabnikom brez gesel. To se sliši nekoliko čudno, toda včasih lahko sistemski skrbniki ustvarijo uporabniške račune in pozabijo dodeliti gesla - kar je zelo slaba ideja.

Če želite zavrniti zahteve uporabnikov brez gesla, znova pojdite v konfiguracijsko datoteko na /etc/ssh/sshd_config in zagotovite, da imate spodnjo direktivo:

PermitEmptyPasswords no

Nato znova zaženite storitev SSH, da bo sprememba izvedena.

$ sudo systemctl restart sshd

3. Onemogočite korenske prijave SSH

Kaj se lahko zgodi, če hekerju uspe silovito izkoristiti vaše root geslo, ni nič pametnega Dovoljenje oddaljene korenske prijave je vedno slaba ideja, ki bi lahko ogrozila varnost vašega sistema.

Zaradi tega je vedno priporočljivo, da onemogočite oddaljeno prijavo za SSH in se namesto tega držite običajnega nekorenskega uporabnika. Še enkrat se pomaknite do konfiguracijske datoteke in spremenite to vrstico, kot je prikazano.

PermitRootLogin no

Ko končate, znova zaženite storitev SSH, da bo sprememba izvedena.

$ sudo systemctl restart sshd

Od zdaj naprej bo oddaljena prijava za root onemogočena.

4. Uporabite protokol SSH 2

SSH je na voljo v dveh različicah: SSH protokol 1 in protokol 2. SSH protokol 2 je bil uveden leta 2006 in je zaradi močnih kriptografskih pregledov, množičnega šifriranja in robustnih algoritmov varnejši od protokola 1.

Privzeto SSH uporablja protokol 1. Če želite to spremeniti v varnejši protokol 2, dodajte spodnjo vrstico v konfiguracijsko datoteko:

Protocol 2

Kot vedno znova zaženite SSH, da začnejo spremembe veljati.

$ sudo systemctl restart sshd

V prihodnje bo SSH privzeto uporabljal protokol 2.

Če želite preizkusiti, ali SSH protokol 1 ni več podprt, zaženite ukaz:

$ ssh -1 [email 

Prikazala se bo napaka, v kateri piše\"SSH protokol v.1 ni več podprt".

V tem primeru je bil ukaz:

$ ssh -1 [email 

Poleg tega lahko preprosto določite oznako -2 , da se prepričate, da je protokol 2 privzeti protokol, ki se uporablja.

$ ssh -2 [email 

5. Nastavite nedejavno vrednost časovne omejitve povezave SSH

Če računalnika dalj časa ne uporabljate v mirujoči povezavi SSH, lahko predstavlja varnostno tveganje. Nekdo lahko preprosto preide mimo in prevzame vašo sejo SSH in naredi, kar želi. Če želite odpraviti težavo, je preudarno, da določite časovno omejitev v prostem teku, ki bo, ko bo presežena, seja SSH zaprta.

Še enkrat odprite svojo konfiguracijsko datoteko SSH in poiščite direktivo "ClientAliveInterval". Dodelite razumno vrednost, na primer omejitev sem nastavil na 180 sekund.

ClientAliveInterval 180

To pomeni, da bo seja SSH izpuščena, če po 3 minutah ne bo registrirana nobena dejavnost, kar ustreza 180 sekundam.

Nato znova zaženite demon SSH, da izvede spremembe.

$ sudo systemctl restart sshd

6. Omejite dostop SSH nekaterim uporabnikom

Za dodaten varnostni sloj lahko določite uporabnike, ki potrebujejo protokol SSH za prijavo in izvajanje oddaljenih nalog v sistemu. To preprečuje morebitne druge uporabnike, ki bi brez vaše odobritve poskušali vstopiti v vaš sistem.

Kot vedno odprite konfiguracijsko datoteko in dodajte direktivo »AllowUsers«, ki ji sledijo imena uporabnikov, ki jih želite odobriti. V spodnjem primeru sem uporabnikom "tecmint" in "james" dovolil oddaljen dostop do sistema prek SSH. Vsak drug uporabnik, ki poskuša pridobiti dostop na daljavo, bo blokiran.

AllowUsers tecmint james

Nato znova zaženite SSH, da se spremembe ohranijo.

$ sudo systemctl restart sshd

7. Konfigurirajte omejitev za poskuse gesla

Drug način, kako lahko dodate plast varnosti, je omejevanje števila poskusov prijave SSH, tako da po številnih neuspelih poskusih povezava pade. Torej še enkrat pojdite v konfiguracijsko datoteko in poiščite direktivo\"MaxAuthTries" in določite vrednost za največje število poskusov.

V tem primeru je bila omejitev nastavljena na 3 poskuse, kot je prikazano.

MaxAuthTries 3

In končno, znova zaženite storitev SSH kot v prejšnjih scenarijih.

Morda se vam bodo zdeli koristni tudi naslednji članki, povezani s SSH:

  • Kako namestiti strežnik OpenSSH 8.0 iz vira v Linuxu
  • Kako namestiti Fail2Ban za zaščito SSH na CentOS/RHEL 8
  • Kako spremeniti vrata SSH v Linuxu
  • Kako ustvariti tuneliranje SSH ali posredovanje vrat v Linuxu
  • 4 načini za pospešitev SSH povezav v Linuxu
  • Kako najti vse neuspele poskuse prijave SSH v Linuxu
  • Kako prekiniti neaktivne ali nedejavne SSH povezave v Linuxu

To je bil pregled nekaterih ukrepov, s katerimi lahko zaščitite svoje oddaljene povezave SSH. Pomembno je dodati, da morate vedno dodeliti močna gesla uporabnikom, ki imajo oddaljen dostop, da preprečijo napade brutalne sile. Upamo, da se vam je ta vodnik zdel pronicljiv. Vaše povratne informacije so zelo dobrodošle.