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.