SSH: etäkäytön suojaaminen
Käy läpi SSH-kättely, isäntäavaimen todentaminen ja se, miten SSH suojaa etäistuntoja.
SSH: etäkäytön suojaaminen on ilmainen Cryptology Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Cryptology Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Cryptology Academy-kurssilla on yhteensä 4 oppituntia.
SSH-1 ja SSH-2: käytöstä poistamisen historia
SSH-1, alkuperäinen Secure Shell -protokolla, sisälsi perustavanlaatuisen suunnitteluvirheen, jonka ansiosta aktiivinen hyökkääjä saattoi lisätä mielivaltaista dataa salattuun istuntoon ilman, että sitä havaittiin. Vuonna 2006 RFC 4251-4254 -asiakirjoina julkaistu SSH-2 oli protokollan täydellinen uudelleensuunnittelu, joka korjasi nämä heikkoudet erillisillä siirto-, tunnistautumis- ja yhteyskerroksen protokollilla sekä vahvemmalla eheyden tarkistuksella HMAC:n avulla. SSH-1 on vanhentunut, eikä minkään nykyaikaisen palvelimen pitäisi ottaa sitä käyttöön.
SSH:n siirtokerros: salaus ja eheys
SSH:n siirtokerrosprotokolla hoitaa alustavan avaintenvaihdon ja muodostaa salatun, eheydeltään suojatun kanavan. Se neuvottelee avaintenvaihdon algoritmit (tyypillisesti ECDH), isännän tunnistautumisen (tyypillisesti Ed25519 tai RSA), symmetrisen salauksen (tyypillisesti AES-256-CTR tai ChaCha20-Poly130) sekä MAC-algoritmin (tyypillisesti HMAC-SHA2-256). Jokainen myöhempi paketti salataan ja sen eheys tarkistetaan neuvoteltuja algoritmeja käyttäen.
SSH:n käyttäjän tunnistautumiskerros
Kun siirtokerros on suojattu, käyttäjän tunnistautumiskerros neuvottelee, miten käyttäjä todistaa henkilöllisyytensä palvelimelle. Kolme yleistä menetelmää ovat salasana (käyttäjä kirjoittaa salasanan, joka lähetetään salattuna siirtokerroksen kautta), julkinen avain (käyttäjä todistaa hallitsevansa yksityistä avainta, joka vastaa palvelimella olevaa valtuutettua julkista avainta) ja GSSAPI (Kerberos-pohjainen kertakirjautumisen integrointi yritysympäristöihin).
SSH:n yhteyskerros: multipleksoidut kanavat
SSH:n yhteyskerros multipleksoi useita loogisia kanavia yhden salatun siirtoyhteyden kautta. Tyypillisessä SSH-istunnossa on yksi kanava vuorovaikutteiselle komentotulkille. Lisäkanavat tukevat porttien välitystä, X11-välitystä ja SFTP-tiedostonsiirtoa, ja kaikki käyttävät samaa tunnistettua ja salattua yhteyttä. Kanavapyynnöillä asiakas voi pyytää pseudo-päätettä, asettaa ympäristömuuttujia tai suorittaa tietyn komennon.
Isäntäavaimen tarkistus ja TOFU
Kun asiakas muodostaa ensimmäisen yhteyden SSH-palvelimeen, se vastaanottaa palvelimen isäntäavaimen ja joutuu päättämään, luottaako siihen. Oletuskäytäntö on Trust On First Use (TOFU): käyttäjää pyydetään tarkistamaan avaimen sormenjälki (joka näytetään yleensä SHA256:...-tyyppisenä tiivisteenä), ja hyväksyttäessä se tallennetaan known_hosts-tiedostoon. Myöhemmillä yhteyksillä tallennettua avainta verrataan palvelimen esittämään avaimeen, ja ristiriita aiheuttaa vakavan varoituksen mahdollisesta man-in-the-middle-hyökkäyksestä.
known_hosts ja avainten sormenjäljet
known_hosts-tiedosto, joka sijaitsee polussa ~/.ssh/known_hosts, ylläpitää palvelinten isäntäavainten tietokantaa, joka on indeksoitu isäntänimen ja IP-osoitteen mukaan. Jokainen merkintä yhdistää palvelimen osoitteen sen julkiseen avaimeen. Jos palvelimen avain muuttuu esimerkiksi palvelimen uudelleenasennuksen vuoksi tai siksi, että hyökkääjä esiintyy palvelimena, SSH kieltäytyy muodostamasta yhteyttä ja näyttää varoituksen. Ylläpitäjät käyttävät varmennepohjaista isännän tunnistautumista välttääkseen TOFU-luottamispäätökset suuressa mittakaavassa.
authorized_keys salasanattomaan kirjautumiseen
Julkisen avaimen tunnistautumisessa käyttäjän julkinen avain tallennetaan palvelimen tiedostoon ~/.ssh/authorized_keys. Kun käyttäjä muodostaa yhteyden, palvelin lähettää julkisella avaimella salatun haasteen; vain vastaavan yksityisen avaimen haltija voi vastata siihen oikein ja todistaa henkilöllisyytensä ilman, että yksityistä avainta tai salasanaa lähetetään. Tämä on salasanoja turvallisempaa, koska yksityisiä avaimia ei koskaan lähetetä verkon kautta eikä niitä voi kalastella tietojenkalastelulla.
SSH-avainalgoritmit
Kolme SSH-avainalgoritmien perhettä on yleisessä käytössä. Vähintään 3072- tai 4096-bittiset RSA-avaimet ovat yhteensopivia kaikkien palvelinten kanssa. NIST P-256 -käyrää käyttävä ECDSA on vastaavalla tietoturvatasolla RSA:ta nopeampi, mutta P-256:n tietoturvaparametrit ovat herättäneet tarkastelua. Edwardsin käyrän digitaaliseen allekirjoitusalgoritmiin perustuva Ed25519 on nykyaikainen suositus: avaimet ovat nopeita ja pieniä, vain 256-bittisiä, niiden tietoturvaominaisuudet ovat vahvat, eikä parametrien erityiskäsittelyyn liity huolia.
SSH:n historia: portti 22 ja Tatu Ylönen
Helsingin teknillisen korkeakoulun suomalainen tutkija Tatu Ylönen kehitti SSH:n vuonna 1995 sen jälkeen, kun salasanan sieppaushyökkäys hänen yliopistonsa verkossa paljasti satoja kirjautumistietoja. Hän valitsi portin 22, koska se oli telnetin (23) ja ftp:n (21) välissä. SSH korvasi molemmat turvattomat protokollat. Ylönen perusti SSH Communications Securityn ja julkaisi myöhemmin SSH-2:n avoimena standardina IETF:n kautta. OpenBSD-projekti loi vuonna 1999 OpenSSH:n, joka on nykyään hallitseva maksuton toteutus.
SSH-agentin ja avainten välityksen tietoturva
SSH-agentti on taustaprosessi, joka pitää puretut yksityiset avaimet muistissa ja mahdollistaa kertakirjautumisen useille palvelimille ilman tunnuslauseen syöttämistä uudelleen. Agentin välitys (-A-lippu) laajentaa tätä välittämällä agenttiyhteyden etäpalvelimille ja mahdollistamalla yksivaiheisen pääsyn sisäisiin palvelimiin. Agentin välitys on kuitenkin tietoturvariski: vaarantunut etäpalvelin voi käyttää välitettyä agenttia tunnistautuakseen muille palvelimille sinun nimissäsi. Käyttäkää agentin välityksen sijaan ProxyJumpia.
SSH:n suojaamisen parhaat käytännöt
Turvalliseen SSH-kokoonpanoon kuuluu pääkäyttäjän kirjautumisen poistaminen käytöstä (PermitRootLogin no), salasanoihin perustuvan tunnistautumisen poistaminen käytöstä (PasswordAuthentication no) ja pelkän julkiseen avaimeen perustuvan tunnistautumisen käyttäminen, Ed25519-isäntäavainten käyttö, vain SSH-2-protokollan salliminen, joutokäyntien aikakatkaisujen määrittäminen, sallittujen käyttäjien rajoittaminen komennoilla AllowUsers tai AllowGroups sekä oletusportin vaihtaminen hämäyskeinona automatisoitujen skannausten aiheuttaman kohinan vähentämiseksi. Fail2ban tai vastaavat työkalut estävät IP-osoitteet, joista tehdään toistuvasti epäonnistuneita yrityksiä.
SSH:n tunnistautumismenetelmät
Miksi SSH:n julkiseen avaimeen perustuvaa tunnistautumista pidetään turvallisempana kuin salasanaan perustuvaa tunnistautumista?
SSH: keskeiset opit
SSH-2 korvasi puutteellisen SSH-1:n erillisillä siirto-, tunnistautumis- ja yhteyskerroksilla. Siirtokerros neuvottelee salauksesta ja eheydestä. Käyttäjän tunnistautuminen tukee salasanoja, julkisia avaimia ja GSSAPI:ta. Isäntäavaimen tarkistuksessa käytetään TOFU-mallia ja known_hosts-tiedostoa. Ed25519 on suositeltu avainalgoritmi. Agentin välitys on tietoturvariski; käyttäkää sen sijaan ProxyJumpia. Suojaamiseen kuuluu pääkäyttäjän kirjautumisen ja salasanoihin perustuvan tunnistautumisen poistaminen käytöstä.
Opi Cryptology Academy tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 67
- Oppitunnit
- 261
Usein kysytyt kysymykset
Onko oppitunti ”SSH: etäkäytön suojaaminen” ilmainen?
Kyllä – oppitunnin ”SSH: etäkäytön suojaaminen” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Cryptology Academy-kurssin, päivitä CoddyKit PROhon. Cryptology Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”SSH: etäkäytön suojaaminen”?
Käy läpi SSH-kättely, isäntäavaimen todentaminen ja se, miten SSH suojaa etäistuntoja. Harjoittelet Cryptology Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Cryptology Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Cryptology Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.
Kuinka kauan ”SSH: etäkäytön suojaaminen”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Cryptology Academy-oppitunnilla?
Kyllä. Jokainen Cryptology Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Mikä tekee protokollasta turvallisen
- SSH: etäkäytön suojaaminen
- SFTP ja SCP: turvallinen tiedostonsiirto
- DNSSEC: DNS-vastausten todentaminen