Miten suojata SSH-yhteys CentOS 7:ssä

SSH on tärkein protokolla, jota käytetään Linux-palvelimiin liittymiseen ja niiden hallintaan. Tämän vuoksi se on yksi yleisimmin hyökätyistä porteista, kun pahansuovat toimijat yrittävät päästä käsiksi palvelimeesi. Tässä artikkelissa käsittelemme muutamia menetelmiä, joilla voit tehdä SSH-yhteydestäsi turvallisemman.

Huomautus: Riippuen OVHcloud-tuotteestasi, osa näistä vaiheista on ehkä jo tehty. Jos näin on, siirry yksinkertaisesti seuraavaan vaiheeseen. Lisäksi tämän artikkelin vaiheissa oletetaan, että tunnistaudut palvelimelle SSH-avaimilla. Jos käytät sen sijaan salasanaa, tietyt tämän artikkelin vaiheet eivät toimi.

Edellytykset

  • SSH-avainten käyttäminen
  • Palvelin, jossa on CentOS 7

Teemat

  • Uuden Sudo-käyttäjän luominen
  • SSH-demonin muuttaminen
  • . Konfigurointi

Uuden Sudo-käyttäjän luominen

On aina paras käytäntö kieltää pääkäyttäjän tunnistautuminen SSH:n kautta, koska tähän käyttäjätunnukseen yritetään murtautua eniten. Näin ollen ensimmäinen asia, jonka haluamme tehdä turvataksemme palvelimemme, on luoda uusi sudo-käyttäjä SSH:ta varten. Tee se kirjoittamalla seuraava komento ja korvaamalla punainen käyttäjätunnus haluamallasi käyttäjätunnuksella:

# adduser username

Seuraavaksi asetamme käyttäjälle salasanan:

# passwd username

Seuraa kehotusta luoda ja vahvistaa salasana. Nyt haluamme antaa uudelle käyttäjällemme sudo-oikeudet, jotta voimme tulla pääkäyttäjäksi ja suorittaa komentoja, jotka tarvitsevat järjestelmänvalvojan oikeuksia. Voimme tehdä tämän syöttämällä seuraavan komennon.

# usermod -aG wheel username

Viimeiseksi haluamme antaa uudelle käyttäjällemme mahdollisuuden tunnistautua käyttämällä julkista SSH-avainta, jonka olemme jo antaneet root-käyttäjälle. Voimme käyttää yksinkertaista rsync-komentoa kopioidaksemme julkisen avaimen uuden käyttäjämme authorized_keys-tiedostoon.

# rsync --archive --chown=username:username ~/.ssh /home/username

Ennen kuin jatkat seuraavaan vaiheeseen, kirjaudu ulos ja varmista, että voit tunnistautua palvelimelle uutena käyttäjänä SSH:n avulla. Jos et pysty kirjautumaan uutena käyttäjänä, voit silti kirjautua sisään root-käyttäjänä; varmista, että kaikki komennot on syötetty oikein, ja yritä kirjautua uudelleen uutena käyttäjänä.

SSH Daemon -konfiguraation muuttaminen

Koska käytämme SSH-avaimia ja uutta käyttäjää todentautuaksemme palvelimellemme, emme missään nimessä halua kenenkään autentikoivan palvelinta salasanaa tai root-käyttäjätunnusta käyttäen. Tätä varten haluamme ensin siirtyä OpenSSH-demonin konfigurointitiedostoon. Avaa tiedosto haluamassasi tekstieditorissa seuraavalla komennolla:

$ sudo vi /etc/ssh/sshd_config

Tässä tiedostossa on kolme muutosta, jotka haluamme tehdä. Ensinnäkin haluamme muuttaa porttia, jossa OpenSSH kuuntelee pyyntöjä.

Warning: Jos sinulla on aktiivisia palomuureja, sinun on sallittava liikenne valitsemasi portin kautta tai lukitset itsesi ulos palvelimestasi. Jos lukitset itsesi ulos palvelimestasi, voit saada pääsyn takaisin IPMI:n tai KVM:n kautta. Jos haluat lisätietoja, tutustu artikkeliin Getting Started with IPMI.

Tiedoston yläosassa on osio, joka näyttää oletusarvoisesti tältä:

#Port 22#AddressFamily any#ListenAddress 0.0.0.0#ListenAddress ::

Merkitse ”Port”-osio ja valitse mikä tahansa kelvollinen porttinumero, kuten seuraavassa esimerkissä. Esimerkissämme käytämme porttia 12345.

Port 12345#AddressFamily any#ListenAddress 0.0.0.0#ListenAddress ::

Seuraavaksi selaa alaspäin tiedoston # Authentication:-osioon. Näet viisi vaihtoehtoa, jotka näkyvät oletusarvoisesti seuraavasti:

#LoginGraceTime 2m#PermitRootLogin yes
PermitRootLogin yes#StrictModes#MaxAuthTries 6#MaxSessions 10

Tässä haluamme muuttaa ”PermitRootLogin” -kohdan vieressä olevan ”yes”-vaihtoehdon muotoon ”no”. Se tulee näkyviin seuraavasti:

#LoginGraceTime 2m
#PermitRootLogin yesPermitRootLogin no#StrictModes#MaxAuthTries 6#MaxSessions 10

Nyt haluamme selata sshd_config-tiedostoa hieman alaspäin tehdaksemme viimeisen muutoksemme – salasanatodennuksen poistamisen käytöstä. Näet kohdan, joka näyttää oletusarvoisesti tältä:

# To disable tunneled clear text passwords, change to no here!#PasswordAuthentication yes#PermitEmptyPasswords no
PasswordAuthentication yes

Tahdomme muuttaa ”PasswordAuthentication” -kohdan vieressä olevan ”yes”-kohdan ”no”-kohdaksi. Se näyttää seuraavalta:

# To disable tunneled clear text passwords, change to no here!#PasswordAuthentication yes#PermitEmptyPasswords no
PasswordAuthentication no

Tallenna ja poistu tiedostosta. Lopuksi meidän on käynnistettävä OpenSSH uudelleen, jotta muutokset tulevat voimaan. Tee tämä kirjoittamalla seuraava komento:

$ sudo systemctl restart sshd.service

Katsotaanpa vielä hetki, mitä teimme tässä. Muutimme porttinumeroa, jota käytämme SSH-pyyntöjen kuuntelemiseen. Sitten poistimme SSH-yhteyden käytöstä pääkäyttäjältä tai muilta käyttäjiltä, jotka yrittävät tunnistautua salasanalla. Jos olemme tehneet tämän oikein, seuraava komento ei enää toimi kirjautuaksemme palvelimeen.

$ ssh [email protected]

Kirjautuaksemme sisään meidän on nyt määritettävä porttinumero, jota käytämme SSH-pyyntöjen kuuntelemiseen. Tämä tarkoittaa, että tästä lähtien meidän on käytettävä seuraavaa komentoa ja korvattava ”-p” -kohdan vieressä oleva numero aiemmin valitsemallamme porttinumerolla:

$ ssh -p 12345 [email protected]

Varmista, että tämä komento toimii ja että edellinen komento ei toimi. Jos se toimii, olet valmis käyttämään palvelintasi turvallisesti SSH:n kautta.

Johtopäätös

Kun niin monet pahat toimijat käyttävät internetiä, ei ole koskaan ollut tärkeämpää turvata kaikki mahdolliset sisäänpääsypisteet palvelimeesi. Noudattamalla tätä opasta olet auttanut Linux-palvelimien yleisimmän sisäänpääsypisteen suojaamisessa.

Vastaa

Sähköpostiosoitettasi ei julkaista.