SSH-tunnelointi

Johdanto

Yksinkertaistettuna SSH-tunneloiminen tarkoittaa ns. "ylimääräisen putken" avaamista kahden koneen välille muodostetun SSH-yhteyden rinnalle. Käyttötarkoituksista yleisimmät ovat joko FTP-autentikaation tai POP3-mailiyhteyden salaaminen, jottei arkaluontoinen tieto joutuisi vääriin käsiin.

Tässä ohjetekstissä arkaluontoisella datalla tarkoitetaan lähinnä käyttäjätunnusten salasanoja, sillä esimerkiksi itse sähköpostien salaamiseen SSH-tunnelointi ei ole toimiva ratkaisu, koska postit ovat todennäköisesti jo matkustaneet selväkielisinä verkossa ennen POP3-serverille päätymistään. Ohjeita sähköpostin kunnolliseen salaamiseen kannattaa hakea esimerkiksi OpenPGP'n sivuilta.

Lisäksi on muistettava, että FTP-yhteyden SSH-tunnelointi kryptaa pääasiassa pelkän autentikoinnin, ts. vain salasanan syöttämisen, eli siirrettävät tiedostot kulkevat edelleen selväkielisinä. Syy ilmiöön on, että FTP-protokollan mukaan autentikointi ja varsinainen ftp-data käyttävät eri portteja, joten autentikointiportin tunneloiminen jättää ftp-dataportin entiselleen.

Helpoin tapa FTP-yhteyden täydelliseen salaamiseen on käyttää joko SSH2-protokollan päällä pyörivää SCP- tai SFTP-ohjelmaa.

Perusperiaate

FTP-yhteyden SSH-tunnelointi voisi tapahtua esimerkiksi seuraavasti:
FTP-ohjelma => Oma kone:2210(*) => Palvelin:21(**)

* = Esimerkissä käytetty portti 2210 voi olla mikä tahansa omalla koneella vapaana oleva portti, kunhan se on määritetty SSH-ohjelmassa tunnelin kotipääksi.
** = Vastaavasti POP3-liikennettä tunneloitaessa kohdeportin (esimerkin "Palvelin:21") tulee olla 110 (=yleisimmin oikea portti POP3-palvelua varten).


Huomioi:

Tunnelin pystyttämien SSH Secure Shell -ohjelman avulla

Kotikäyttäjille ilmainen SSH Secure Shell -asiakasohjelma löytyy SSH:n FTP-palvelimelta tai esimerkiksi Funetin mirrorilta. Paketin mukana tulevat myös SFTP- ja SCP-ohjelmat, joilla tiedostojen siirtäminen turvallisesti onnistuu ilman erillistä tunnelointia.

Windows

1. Asennettuasi ohjelman käynnistä se
2. Valitse Edit-valikosta Settings-kohta
3. Valitse Profile Settings -> Tunneling ja Outgoing
4. Paina Add-nappulaa ja täytä tiedot sen mukaan, mitä haluat tunneloida.

I. FTP-tunnelin luominen SSH'n Secure Shell-clientissä

Kirjoita Add New Outgoing Tunnel -ikkunan kohtiin seuraavat tiedot:

Display Name: FTP (tällä ei ole merkitystä tunneloinnin toiminnan kannalta)
Type: FTP
Listen Port: 2210 (mikä tahansa kotikoneella vapaana oleva portti käy)
Destination Host: leviathan.wellfish.fi
Destination Port: 21

II. POP3-tunnelin luominen

POP3-yhteyden tunnelointi SSH-putken läpi sujuu samalla periaatteella kuin yllä neuvottu FTP-yhteyden muodostaminen.

Säädä SSH-clientin asetukset esimerkiksi seuraavasti:

Display Name: E-mail (=kommentti, ei vaikutusta toimintaan)
Type: TCP
Listen Port: 2211 (mikä tahansa kotikoneella vapaa portti käy)
Destination Host: mail.nodeta.fi
Destination Port: 110

III. FTP-ohjelman asetukset, esimerkkinä CuteFTP 4.2

Avaa Site Manager (F4-näppäimellä) ja paina alareunan New-nappia ja täytä seuraavat tiedot:
FTP Host Address: localhost
FTP site User Name: käyttäjätunnuksesi
FTP site connection port: 2210 (portti, jonka kerroit SSH-ohjelmallesi)

Tämän jälkeen paina alhaalta Edit-nappia ja varmista, että Use PASV mode -kohta on rastitettu. Tunnelia käytettäessä yhteys ftp-tiedostonsiirtoa varten on muodostettava passiivisena tai muussa tapauksessa ohjelma siirtyy jumitusmoodiin.

IV. Sähköpostiohjelman asetukset, esimerkkiohjelmana MS Outlook

1. Valitse Työkalut -valikosta Tilit ja sen alta välilehti Sähköposti.
2. Paina Lisää -nappulaa ja valitse Sähköposti.
3. Kirjoita sivun Sähköpostipalvelinten osoitteet kohtaan Saapuvan postin palvelin localhost (tai 127.0.0.1, jollei localhost toimi).
4. Säädä tunneloimasi portti (esimerkissä 2211) valikosta ominaisuudet -> lisäasetukset
5. Lähtevän postin palvelimeksi merkkaa oman palveluntarjoajasi SMTP-palvelin (esimerkiksi mail.kolumbus.fi).
6. Tulevien sähköpostien palvelin on -kohdasta valitse oletus, eli POP3.
7. Seuraavan sivun tilinimi -kenttään kirjoita Wellfishin käyttäjätunnuksesi.

Huomioi:

UNIX (SSH Secure Shell, OpenSSH)

Avaa SSH-yhteys antamalla parametri -L <kotiportti>:<palvelin>:<etäportti>

Esimerkiksi:
   $ ssh -L 2210:leviathan.wellfish.org:21 leviathan.wellfish.org
Jos yhteys muodostui, voit tämän jälkeen siirtää auenneen SSH-tunnelin kautta dataa leviathan.wellfish.fi -palvelimen porttiin 21. Huomaa, että ftp-dataa siirtääksesi yhteys on muodostettava passiivisena.

Komenna kotikoneellasi:
   $ pftp localhost 2210
   Connected to localhost.
   220 FTP server at leviathan ready.
   Name (localhost:mattimeikalainen):
   331 Password required for mattimeikalainen.
   Password:
   230 User mattimeikalainen logged in.
   Remote system type is UNIX.
   Using binary mode to transfer files.
   ftp>

Jollei sinulla ole ohjelmaa pftp, yritä yhteyden avaamista normaalisti ohjelmalla ftp. Kirjauduttuasi sisään, kirjoita "passive on". Jos ohjelmasi kuittaa tähän jotain, mistä voisi päätellä passiivisen tiedonsiirron olevan käytössä, kaiken pitäisi olla kunnossa tiedostojen siirtelyä varten.

Näppärä komentoriviltä toimiva ftp-ohjelma on esimerkiksi NcFTP.

Huomioi:


Edellä olevaa tekstiä ei saa julkaista toisaalla ilman allekirjoittaneiden lupaa.
Poikkeuksena pidettäköön linkitystä.

- Janne Valo <janne@wellfish.fi> (ohjeet Windows-ohjelmille)
- Petrus Repo <pre@wellfish.fi> (muu sisältö ja kirjoitusvirheet)
Nodeta Oy
Kutomotie 9 C
00380 Helsinki
nodeta@nodeta.fi