Kuinka suojata ja vahvistaa OpenSSH-palvelin


Kun on kyse etälaitteiden, kuten palvelimien, reitittimien ja kytkimien, käyttämisestä, SSH-protokollaa suositellaan, koska se pystyy salaamaan liikenteen ja torjumaan kaikki, jotka yrittävät salakuunnella yhteyksiäsi.

Oli miten oli, SSH:n oletusasetukset eivät ole erehtymättömiä, ja lisäsäätöjä tarvitaan protokollan turvallisuuden parantamiseksi. Tässä oppaassa tutkimme erilaisia tapoja, joilla voit suojata ja vahvistaa OpenSSH-asennuksen palvelimelle.

1. Asenna salasanaton SSH-todennus

Oletuksena SSH edellyttää, että käyttäjät antavat salasanansa kirjautuessaan sisään. Mutta tässä on asia: hakkerit voivat arvata salasanoja tai jopa suorittaa raa'an voiman hyökkäyksen käyttämällä erityisiä hakkerointityökaluja ja päästä järjestelmääsi. Varmuuden vuoksi salasanattoman SSH-todennuksen käyttö on erittäin suositeltavaa.

Ensimmäinen vaihe on luoda SSH-avainpari, joka koostuu julkisesta avaimesta ja yksityisestä avaimesta. Yksityinen avain on isäntäjärjestelmässäsi, kun taas julkinen avain kopioidaan etäpalvelimelle.

Kun julkinen avain on kopioitu onnistuneesti, voit nyt SSH:ta etäpalvelimelle saumattomasti ilman salasanaa.

Seuraava askel on poistaa salasanatodennus käytöstä. Tämän saavuttamiseksi sinun on muutettava SSH-määritystiedostoa.

sudo vim /etc/ssh/sshd_config

Vieritä määritystiedoston sisällä ja etsi seuraava ohje. Poista kommentti ja muuta vaihtoehto 'kyllä' arvoksi 'ei'

PasswordAuthentication no

Käynnistä sitten SSH-daemon uudelleen.

sudo systemctl restart sshd

Tässä vaiheessa sinulla on pääsy etäpalvelimeen vain SSH-avaimella.

2. Poista käyttäjän salasanattomat SSH-yhteyspyynnöt käytöstä

Toinen suositeltava tapa vahvistaa palvelimesi turvallisuutta on estää SSH-kirjautumiset käyttäjiltä ilman salasanoja. Tämä kuulostaa hieman oudolta, mutta joskus järjestelmänvalvojat voivat luoda käyttäjätilejä ja unohtaa antaa salasanat - mikä on erittäin huono idea.

Jos haluat hylätä käyttäjien pyynnöt ilman salasanaa, siirry uudelleen määritystiedostoon osoitteessa /etc/ssh/sshd_config ja varmista, että sinulla on alla oleva ohje:

PermitEmptyPasswords no

Käynnistä sitten SSH-palvelu uudelleen, jotta muutos tulee voimaan.

sudo systemctl restart sshd

3. Poista SSH-juurikirjautumiset käytöstä

Ei ole käsittämätöntä, mitä voi tapahtua, jos hakkeri onnistuu raa'alla väkivallalla root-salasanasi. Pääkäyttäjän etäkirjautumisen salliminen on aina huono idea, joka voi vaarantaa järjestelmän turvallisuuden.

Tästä syystä on aina suositeltavaa poistaa SSH-etäjuurikirjautuminen käytöstä ja pysyä sen sijaan tavallisessa ei-root-käyttäjässä. Siirry vielä kerran määritystiedostoon ja muokkaa tätä riviä kuvan mukaisesti.

PermitRootLogin no

Kun olet valmis, käynnistä SSH-palvelu uudelleen, jotta muutos tulee voimaan.

sudo systemctl restart sshd

Tästä eteenpäin etäpääkirjautuminen poistetaan käytöstä.

4. Käytä SSH-protokollaa 2

SSH:sta on kaksi versiota: SSH protokolla 1 ja protokolla 2. SSH protokolla 2 otettiin käyttöön vuonna 2006, ja se on turvallisempi kuin protokolla 1 vahvojen kryptografisten tarkistusten, joukkosalauksen ja kestävien algoritmien ansiosta.

Oletuksena SSH käyttää protokollaa 1. Jos haluat muuttaa tämän turvallisemmaksi Protokolla 2, lisää alla oleva rivi määritystiedostoon:

Protocol 2

Kuten aina, käynnistä SSH uudelleen, jotta muutokset tulevat voimaan.

sudo systemctl restart sshd

Jatkossa SSH käyttää oletuksena protokollaa 2.

Testaa, tuetaanko SSH protokolla 1 enää, suorittamalla komento:

ssh -1 user@remote-IP

Näet virheilmoituksen, jossa lukee "SSH-protokollaa v.1 ei enää tueta".

Tässä tapauksessa komento oli:

ssh -1 [email 

Lisäksi voit yksinkertaisesti määrittää -2-tunnisteen varmistaaksesi, että Protokolla 2 on käytössä oletusprotokolla.

ssh -2 [email 

5. Aseta SSH-yhteyden aikakatkaisun joutokäyntiarvo

Tietokoneen jättäminen ilman valvontaa pitkiksi ajoiksi käyttämättömän SSH-yhteyden kanssa voi aiheuttaa turvallisuusriskin. Joku voi yksinkertaisesti ohittaa SSH-istunnon ja tehdä mitä haluaa. Ongelman ratkaisemiseksi on siksi järkevää asettaa tyhjäkäynnin aikaraja, jonka ylittyessä SSH-istunto suljetaan.

Avaa vielä kerran SSH-määritystiedostosi ja etsi käsky "ClientAliveInterval". Määritä kohtuullinen arvo, esimerkiksi olen asettanut rajaksi 180 sekuntia.

ClientAliveInterval 180

Tämä tarkoittaa, että SSH-istunto hylätään, jos toimintaa ei rekisteröidä 3 minuutin kuluttua, mikä vastaa 180 sekuntia.

Käynnistä sitten SSH-daemon uudelleen tehdäksesi muutokset.

sudo systemctl restart sshd

6. Rajoita SSH-käyttö tiettyihin käyttäjiin

Lisäsuojausta varten voit määrittää käyttäjät, jotka tarvitsevat SSH-protokollaa kirjautuakseen sisään ja suorittaakseen etätehtäviä järjestelmässä. Tämä estää muita käyttäjiä, jotka saattavat yrittää päästä järjestelmääsi ilman hyväksyntääsi.

Kuten aina, avaa määritystiedosto ja liitä käsky "AllowUsers" ja sen jälkeen käyttäjien nimet, jotka haluat myöntää. Alla olevassa esimerkissä olen antanut käyttäjille "tecmint" ja "james" käyttää järjestelmää SSH:n kautta. Kaikki muut käyttäjät, jotka yrittävät saada etäkäyttöä, estetään.

AllowUsers tecmint james

Käynnistä sitten SSH uudelleen, jotta muutokset pysyvät voimassa.

sudo systemctl restart sshd

7. Määritä salasanayritysten raja

Toinen tapa lisätä suojaustaso on rajoittaa SSH-kirjautumisyritysten määrää siten, että useiden epäonnistuneiden yritysten jälkeen yhteys katkeaa. Siirry siis vielä kerran määritystiedostoon ja etsi "MaxAuthTries" -direktiivi ja määritä yritysten enimmäismäärä.

Tässä esimerkissä rajaksi on asetettu 3 yritystä kuvan mukaisesti.

MaxAuthTries 3

Ja lopuksi käynnistä SSH-palvelu uudelleen kuten edellisissä skenaarioissa.

Saatat myös pitää hyödyllisinä seuraavat SSH:hen liittyvät artikkelit:

  • OpenSSH 8.0 -palvelimen asentaminen lähteestä Linuxissa
  • Fail2Banin asentaminen SSH:n suojaamiseksi CentOS/RHEL 8:ssa
  • Kuinka vaihtaa SSH-portti Linuxissa
  • Kuinka luoda SSH-tunnelointi tai portin edelleenlähetys Linuxissa
  • 4 tapaa nopeuttaa SSH-yhteyksiä Linuxissa
  • Kuinka löytää kaikki epäonnistuneet SSH-kirjautumisyritykset Linuxissa
  • Kuinka katkaista ei-aktiiviset tai käyttämättömät SSH-yhteydet Linuxissa
Johtopäätös

Tämä oli yhteenveto joistakin toimenpiteistä, joilla voit suojata SSH-etäyhteytesi. On tärkeää lisätä, että sinun tulee aina määrittää vahvat salasanat käyttäjille, joilla on etäkäyttö, jotta voit estää raa'an voiman hyökkäykset. Toivomme, että pidit tästä oppaasta oivaltavan. Palautteesi on erittäin tervetullutta.