rshell (remote shell) tai rlogin on protokollaperhe, jota käytettiin Unixissa ja sen kaltaisissa järjestelmissä yhteyden ottamiseen etäkoneeseen. Komentojen täydellisen tietoturvattomuuden vuoksi ne korvattiin 1990-luvun puolivälin jälkeen nopeasti Tatu Ylösen SSH:lla.

Perheen ohjelmat rcp, rsh, rlogin, rwho julkaistiin varhaisen TCP/IP-toteutuksen mukana BSD:n 4.1a-versiossa (jota ei ikinä jaettu Berkeleyn ulkopuolelle). Julkiseen jakoon ne tulivat 4.2BSD:n (1986) julkaisun aikaan. Työkalut oli tarkoitettu pikaisesti kehitetyiksi, jotka korvattaisiin myöhemmin paremmalla ratkaisulla.[1]

Toiminta

muokkaa

Perheeseen kuuluvat komennot:

  • rexec (TCP-portti 512)
  • rlogin (TCP 513)
  • ruptime (TCP 513)
  • rwho (TCP 513)
  • rsh (TCP 514)
  • rcp (TCP 514)
  • rstat (UDP)

Jokaisessa portissa kuuntelee on oma daemon-palvelinohjelmansa.

rlogin käynnistää istunnon etäkoneella. Siten se toimii samoin kuin telnet. Yhteydenoton protokolla on erittäin yksinkertainen. Asiakas lähettää nollamerkin, oman käyttäjätunnuksen, nollamerkin, etäkoneen käyttäjätunnuksen, nollamerkin, päätteen tyypin/nopeuden ja nollamerkin. Palvelin vastaa nollamerkillä, joka ilmoittaa että yhteys on muodostettu.[2]

rsh käynnistää komentotulkin etäkoneella (ilman istuntoa), jolla käyttäjä voi ajaa komentoja. Komentojen syöte- ja tulostusvuo kytketään käyttäjän terminaaliin.

rexec toimii samoin, mutta kysyy käyttäjän käyttäjätunnusta ja salasanaa.

rcp kopioi tiedostoja järjestelmien välillä. Koska rcp ei salaa liikennettä, se on kevyempi kuin SSH:n scp. Tiedostojen kopioinnissa voi lisäksi ajaa rsyncia rsh:n yli.

rwho toimii samoin kuin Unixin who, ja listaa koneella olevat käyttäjät. Sen palvelinta käyttää myös ruptime, joka toimii samoin kuin uptime, ja listaa koneen käynnissäoloajan, käyttäjien määrän ja kuormituksen.

rstat listaa tietoja etäkoneen kernelistä.

Autentikaatio ja tietoturva

muokkaa

rlogin perustuu siihen, että joukko tietokoneita määritellään samaksi klusteriksi, jolla on samat käyttäjätunnukset /etc/hosts.equiv -tiedoston avulla. Tässä tiedostossa voi luetella tietokoneet, joilta on pääsy koneelle etäyhteydellä. '+'-merkki tarkoittaa että kaikki verkon koneet ovat luotettuja. Lisäksi luotettuja koneita voi hakea NIS-hakemistopalvelussa määritellyistä ryhmistä. Lisäksi käyttäjä voi tehdä kotihakemistoonsa .rhosts-tiedoston, jossa on lueteltu käyttäjätunnukset eri tietokoneilla, joilta voi logata tunnukselle.[3][4]

Jos hyökkääjä väärentää lähiverkossa MAC-osoitteensa, IP-osoitteen tai kaappaa nimipalvelun, hän voi päästä ilman tunnuksia toisen koneen tileihin käsiksi. Koska yhteyksiä ei ole mitenkään salattu, hyökkääjä voi myös helposti kuunnella liikennettä 1990-luvun ei-kytkentäisissä hubeihin perustuvissa Ethernet-verkoissa.

Jos hyökkääjä pystyy ajamaan komentoja käyttäjän komentotulkilla (esim. shar-tiedostoista), hän voi ajaa komennon echo "+ +" > ~/.rhosts jolloin kuka tahansa miltä tahansa koneelta pääsee käsiksi tunnukseen ilman salasanoja.

Viitteet

muokkaa
  1. Open Sources: Voices from the Open Source Revolution § 4.2BSD [1]
  2. RFC 1282
  3. https://www.ibm.com/docs/en/aix/7.2?topic=formats-rhosts-file-format-tcpip
  4. https://www.ibm.com/docs/en/aix/7.2?topic=formats-hostsequiv-file-format-tcpip#hosts.equiv