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:
- FTP-ohjelmalla otetaan yhteys omalle koneelle, ei suoraan palvelimelle.
- Tunnelointia varten sinun ei tarvitse asentaa kotikoneellesi mitään palvelinohjelmistoa. Tunneloinnilla tarkoitetaan käyttämäsi SSH-asiakasohjelman olemassa olevien ominaisuuksien hyödyntämistä.
- Tämän ohjetekstin perimmäisenä tarkoituksena ei ole jyystää välimerkkiä, vaan saada mahdollisimman moni Wellfishin käyttäjä (tai kuka ikinä tämän ohjeen lukeekaan) luopumaan pahasta tavasta lähetellä salasanoja kryptaamattomina verkkoon.
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:
- Käyttäessäsi tunneloitua yhteyttä (esimerkiksi Outlookilla tai CuteFTP:llä), on käyttämäsi SSH-ohjelman, ja yhteyden, oltava auki.
- Perusidea, mikä ylinnä olevassa taulukossa on esitetty, on myös muita ohjelmia käytettäessä sama. SSH-ohjelmalla luodaan tunneli, ftp/pop3-ohjelmalla otetaan yhteys tunnelin kotikoneella olevaan päähän ja se on suurinpiirtein siinä.
- Jollei sähköpostiohjelmasi anna määrittää porttia (tai jollei oikeaa kohtaa vaan millään löydy), kannattaa SSH-ohjelmassa tunnelin toinenkin pää (kotikone) asettaa porttiin 110, joka on sähköpostiohjelman POP3-oletusportti. Eli: localhost:110 -> pop3-server:110.
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:
- FTP-yhteyden SSH-tunneloiminen kryptaa pelkän autentikaation, ja itse tiedostot liikkuvat verkossa edelleen selväkielisinä. FTP-yhteyden täydelliseen kryptaamiseen kannattaa käyttää SCP- tai SFTP-ohjelmaa.
- SSH1-protokollan käyttö ei ole suositeltavaa. Todennäköisesti kaikki tarpeeksi uudet versiot suosituimmista SSH-asiakasohjelmista tukevat SSH2-protokollaa, joten siirtyminen kannattaa heti.
- Jostain kumman syystä SSH-tunnelointi ei toimi FreeBSD'ssä (SSH Secure Shell 2.4 - 3.0.1,
FreeBSD 4.1 - 4.3) niin kuin pitäisi.
Tunnelin saa kuitenkin kuntoon muokkaamalla SSH-ohjelmalle annettavan -L -parametrin hieman kummalliseen muotoon:
$ ssh -L ftp/2210:localhost:21 <etäkone>
Syntaksi on epäjohdonmukainen ja ristiriidassa dokumentoinnin kanssa, mutta ilman kikkailua ei toimi. OpenSSH'ssa ei vastaavaa ongelmaa liene.
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)
