Luku 3 · 3.2
Salasanalla ja rootina kirjautumisen poistaminen käytöstä
Jokainen internetissä oleva palvelin saa pian vieraikseen ohjelmia, jotka yrittävät arvata salasanoja. Jos kirjautuminen onnistuu vain avaimella, niillä ei ole mahdollisuuksia. Otat sen nyt käyttöön.
Huomaa: Toimiiko kirjautuminen avaimellasi käyttäjänä anna (katso Oma käyttäjä sudo-oikeuksilla)? Ota silloin ensin tilannevedos (katso Snapshotit: turvaverkko jokaiseen suureen muutokseen) ja pidä yksi istunto auki näiden vaiheiden ajan. Jos jokin menee pieleen, pääset sisään konsolin kautta (katso Konsoli: VPS selaimessasi).
Oma asetustiedosto
Debianissa ja Ubuntussa SSH-palvelin lukee ensin hakemiston /etc/ssh/sshd_config.d/ tiedostot aakkosjärjestyksessä. Kunkin asetuksen kohdalla pätee ensimmäinen arvo, jonka se löytää. Siksi oma tiedostosi saa nimen, joka on järjestyksessä ensimmäisenä:
anna@web1:~$ sudo nano /etc/ssh/sshd_config.d/00-eigen.conf
Kirjoita siihen:
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin no
PasswordAuthentication no: ei enää salasanoja SSH:n kautta.KbdInteractiveAuthentication no: ei myöskään salasanakyselyä kiertotietä.PermitRootLogin no: root ei voi enää kirjautua SSH:n kautta, ei edes avaimella. Työskentelet käyttäjänä anna ja käytät sudoa. Jos haluat yhä sallia rootin kirjautumisen avaimella, käytä asetustaprohibit-password.
Tarkista ja ota käyttöön
anna@web1:~$ sudo sshd -t
anna@web1:~$ sudo sshd -T | grep -Ei '^(passwordauthentication|kbdinteractiveauthentication|permitrootlogin)'
passwordauthentication no
kbdinteractiveauthentication no
permitrootlogin no
anna@web1:~$ sudo systemctl restart ssh
sshd -t ei tulosta mitään, jos tiedosto on kunnossa. sshd -T näyttää, mitkä arvot ovat oikeasti voimassa. Näkyykö vielä passwordauthentication yes? Silloin jokin toinen hakemiston sshd_config.d tiedosto ottaa sen taas käyttöön, usein 50-cloud-init.conf. Oma tiedostosi 00-eigen.conf on järjestyksessä ennen sitä ja voittaa, joten tarkista, että nimi on oikein.
AlmaLinuxissa ja Rocky Linuxissa palvelun nimi on sshd: sudo systemctl restart sshd.
Testaa ennen kuin suljet istuntosi
Avaa uusi ikkuna ja kokeile:
ssh anna@203.0.113.10
ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no anna@203.0.113.10
anna@203.0.113.10: Permission denied (publickey).
ssh root@203.0.113.10
root@203.0.113.10: Permission denied (publickey).
Ensimmäisen pitää toimia. Kaksi muuta pitää torjua. Onko kaikki kunnossa? Poista silloin tilannevedos.
Vinkki: Muu porttinumero kuin 22 pitää lokisi rauhallisempana, mutta ei tee palvelimestasi turvallisempaa. Avain hoitaa varsinaisen työn. Jos vaihdat porttia silti, avaa se ensin palomuurissasi (katso Palomuuri ufw:llä (tai nftablesilla)).
