You are currently viewing Sisäverkkoon ulkomaailmasta SSH:lla: ProxyJump

Sisäverkkoon ulkomaailmasta SSH:lla: ProxyJump

Olin saanut asennettua VPN-palvelun ja lisäksi vielä dynaamisen DNS:n, että ei tarvitsisi muistaa IP-osoitteita. Kehuin, että nyt onnistuu sitten perheen kaikkiin koneisiin SSH:lla näppärästi. Valmistelin aiheen demoamista ja törmäsin ongelmaan, jonka kokeneemmat varmaan olisivat oivaltaneet heti – minä tarvitsin hieman enemmän aikaa. Jos kotiverkon ulkopuolelta ottaa SSH-yhteyden routerin ulkomaailmalle näkyvään WAN-porttiin 22, niin mihin verkon koneeseen yhteys lopuksi päätyy? Tietysti siihen, joka routerin palomuurin porttia 22 kuuntelee, joka sillä hetkellä oli oma koneeni. Muihin ei päässyt kirjautumaan, vaikka niissä olikin SSH-serveri päällä. Tarvitaan jonkinlaisen serveri, joka jatko-ohjaisi yhteydet automaattisesti sinne minne kuuluukin.

Se, että jokaisen sisäverkon tietokoneen SSH-asiakasohjelmalta pääsee routerin läpi maailmalle mihin haluaa, on oma asiansa. Siinä työn hoitaa router, joka kuuntelee erikseen jokaista konetta ja päästää ne oman älykkyytensä pohjalta maailmalle. Aivan samoin kuin jokaisen tietokoneen webselain pääsee maailmalle.

Serveri vastaa kun kysytään

Jos yrittää päästä maailmalta SSH:lla omaan tietokoneeseensa, niin se ei onnistu. Routerin palomuuri estää sen, koska ei ole porttia, johon liikenne otettaisiin vastaan. Ei ole myöskään serveriä, joka moista porttia kuuntelisi. SSH-asiakas, se joka on nykyään käytännössä vakiona käynnissä kaikissa Windows 10 koneissa, osaa soittaa ulos. Se ei osaa kuitenkaan vastata saapuvaan puheluun – siksi sen nimi on asiakas.

Jotta maailmalla oleva ET voisi phone home, niin kotiverkkoon tarvitaan serveri, joka vastaisi saapuvaan puheluun. Jokaiseen Windows 10 koneeseen saa siedettävän helpolla SSH-serverin käyntiin ja linuxpurkeissa se on vielä helpompaa.

Jokaiseen sisäverkossa olevaan koneeseen on pakko asentaa SSH-serveri, jos haluaa siihen yhteyden mistä tahansa muualta. Tämä on oleellisen tärkeä asia miettiä. Jos sinulla ei ole koskaan tarvetta saada SSH:lla etäyhteyttä juuri omaan tietokoneeseesi, niin älä asenna serveriä. Edes muuten vaan ja harrastuksen vuoksi.

Serveri on suoja ja riski

Serveri on valmis vastaamaan aivan kaikille kysyjille. Ei pelkästään sinulle, vaan myös sille verkkotekniikan harrastelijalle Kiinasta. Asetuksista ja turvallisuussäädöistä sitten riippuu vastataanko sille kiinalaiselle vai lyödäänkö hänelle luuri korvaan. Kyse on koko ajan siitä, että kun asennetaan serveri, niin sen asetuksista ja turvallisuudesta täytyy pitää huolta.

Jos ei ole serveriä, ei ole sinänsä huoltakaan.

Tietenkään asia ei ole aivan näin mustavalkoinen. Maailman ja sisäverkon välissä on palomuuri, routeri. Niin kauan kun se hoitaa tehtävänsä eikä päästä ulkopuolisia sisään, niin sisäverkossa saa puuhailla suunnilleen mitä haluaa. Järjellä toki, mutta silti on aika suojassa (ainakin niin kauan kun ne win-läppärit eivät vuoda…).

Sisäverkossa voi, saa ja usein on syytäkin ottaa käyttöön jokaisessa koneessa SSH-serveri. Se nimittäin helpottaa aika ajoin määrättyjä eri laitteiden välillä tehtäviä asioita ja rutiineja. Eikä se koske pelkästään SSH:ta. Ylipäätään minkä tahansa palvelun voi ottaa käyttöön sisäverkossa, kunhan se ei näy ulkomaailmalle. Yksinkertaisin sovellus on laittaa pyörimään webserveri, jossa voi selaimelle penkoa galleriamuodossa perheen valokuvia. Kyse on siitä, että routerille ei kerrota asiasta, eikä serverille avata porttia ulkomaailmaan.

Palomuuri ja palomuuri

Kun kuitenkin tarvitsee pääsyä ulkomaailmasta omaan koneeseen, niin silloin serveri laitetaan kuuntelemaan jotain routerin palomuuriin avattua porttia. Se voi olla se samainen webserveri, jotta voi esitellä kuvia myös isovanhemmille. Tai sitten se on SSH-palvelin, jossa saisi nopean ja kevyen komentorivipohjaisen työkalun käyttöönsä, että saa rakennettua joustavan backup-järjestelmän – kyllä, myös graafinen työpöytä onnistuu, mutta ei puututa siihen tällä kertaa, koska se on hieman oma maailmansa.

Jos jokaisessa koneessa pyörii oma SSH-serverinsä, niin jokaiselle koneelle on avattava oma porttinsa routeriin. Joskus se saattaa olla se helpoimman vaivan tie, varsinkin jos jokainen hoitaa luotettavasti oman koneensa tietoturvan, eikä koneita ole paljon. Silloin ei tarvitse miettiä mitä pöydän toisella puolella häärätään, vaan hoitaa itse oman tonttinsa.

Jokaisella on kuitenkin oltava oma portti käytössä. Se on perusedellytys. Yhtä porttia voi kuunnella vain yksi palvelu. Jos perheen kaikkien koneiden SSH-serverit kuuntelisivat samaa porttia, niin ei tiedettäisi mihin liikenne tulee ohjata.

Routerin palomuuri on perusteiltaan melkoisen yksinkertainen. Se sulkee portit ja päästää vain sen liikenteen läpi, joka on syntynyt sisäverkon puolella olevasta koneesta ja haluaa ulospäin. Routerin palomuuri ei päästä proaktiivista yrittäjää sisään. Toki routereissa voidaan tehdä perustason IP-suodatuksia tai sivuestoja, mutta ne ovat pohjimmiltaan säätelemässä ja rajoittamassa sisäverkon liikennettä maailmalle, ei toisinpäin. Yleisesti voidaan sanoa, että kuluttajatason routerit kotitalouksissa ovat tehokkaita, mutta eivät kovinkaan älykkäitä.

Kun palomuuriin avataan portti serverille, niin routerin palomuuri lakkaa piittaamasta ja koko vastuu siirtyy serverille. Jos serveri on omassa koneessa, niin kaikki suojamekanismit perustuvat serverin asetuksille ja mitä juuri sen tietokoneen oma palomuuri tekee. Windowsin palomuurit ovat vastaavia kuin routerin, eli suojaamassa enemmänkin uloslähtijää kuin kotia saapuvalta. Linuxeissa tilanne on helpompi, koska palomuuri on tismalleen sama kuin servereilläkin, joten ainoastaan sen käyttö on merkityksellistä.

Bastion linnakkeen suojana

Kun jokaiselle sisäverkon koneelle avataan ikioma portti, niin jokaisen koneen ikioma palomuuri tulee olla käytössä ja kunnossa. Myös kaikki muut tietoturvaan liittyvät asiat on varmistettava jokaiselle koneelle erikseen. Ei se jollain parin koneen kotiverkolla kovinkaan suuri työkysymys ole ja siksi useat käyttävät kotiverkkoaan kuin ei olisi verkkoa ollenkaan. Jokainen kone on oma serverinsä.

Silti se sisäverkko on siellä ja pitää sisällään jokaisen laitteen, joka kytkeytyy routeriin kaapelilla tai wifillä. Silloin sisäverko turvallisuus on juuri yhtä vahva kuin sen heikoin lenkki, SSH:n tapauksessa joku perheen tietokoneista. Äärimmäisenä esimerkkinä joku avaa oman koneensa SSH:n levälleen maailmalle, ja kiinalainen script kiddie pääsee siitä sisäverkon puolelle ja julkaisee isän parisuhdekuvat sekä tuhoaa äidin yrityksen kirjanpidon. Ei merkitystä kuinka tiukasti isä ja äiti ovat oman koneensa sulkeneet ulkomaailman suuntaan, koska saavuttiin takaoven kautta.

Bastion-serveri on käsitteenä serveri, joka erottaa turvallisen sisäverkon turvattomasta ulkomaailmasta ja koko liikenne kulkee sen kautta. Itse asiassa routeri on bastion, mutta se voi olla myös erillinen serveritietokone.

Isojen poikien järjestelmissä bastion ei tee yhtään mitään muuta kuin välittää liikennettä. Sinne ei kirjauduta käyttämään verkkolevyä tai tekemään mitään muutakaan. Se on vain portti, joka aktiivisesti suojelee sisäverkon koneita. Kyllä, se on eräällä tavalla määritelmällisesti tietokone, jonka ainoa tehtävä on olla palomuuri – tehokas sellainen.

Kotiverkoissa ei tarvitse olla aivan noin äärimmäinen, mutta ottaen huomioon Raspberryjen hinnat, niin ei moinen ratkaisu mahdotontakaan ole. Useimmat kuitenkin valitsevat eräänlaisen välimuodon: router hoitaa sen minkä osaa ja määrätyt yhteydet, kuten SSH, kiertää yhden serverin kautta maailmalle ja sieltä sisään.

Silloin ei tarvitse olla aivan niin tarkka sisäverkon koneiden suhteen, koska niihin ei päästä maailmalta suoraan, vaan SSH-serverin kautta. Silti sillä samalla serverillä voi olla myös muitakin toimintoja, vaikka NAS-palvelin jakamassa verkkokovalevyä. Tai olla se sisäverkon ikioma webserveri.

Laite voi olla mikä tahansa, mutta kustannustehokkain ja tehoiltaan riittävä on Raspberry Pi. Turha täysikokoista tietokonetta tai läppäriä on jättää jatkuvasti käyntiin.

Julkinen IP-osoite

Operaattorit myyvät lisäpalveluna sellaista keksintöä kuin julkinen IP-osoite. Normaalisti ulosnäkyvä IP-osoite muutetaan operaattorin oman verkon NAT:ssa sisäverkon IP-osoitteeksi ja se muutetaan sitten kerran vielä routerin NAT:ssa oman sisäverkon IP:ksi. Tuota systeemiä kutsutaan ei-julkiseksi IP-osoitteeksi.

Kun ostaa julkisen IP-osoitteen, niin maailmalle näkyvä IP-osoite pysyy saman läpi operaattorin NAT:n aina omalle routerille asti.

Ongelma on siinä, että aika ajoin ei-julkinen IP-osoite ei toimi SSH:lla. Kun otat yhteyden omaan sisäverkkoosi sen julkisesti näkyvällä IP:llä, niin yhteys katkeaa operaattorin NAT:iin. Ulos toki pääsee omasta sisäverkostaan.

Tuo estää tehokkaasti, paitsi ylipäätään SSH-liikenteen, niin myös minkä tahansa ProxyJump-säädön. Silloin ei auta kuin raottaa lompakkoa noin kehden euron verran kuukaudessa.

Mutta mikä ärsyttävintä, niin välillä toimii. Riippuu täysin siitä kuinka monella ja missä routerisi näkemä operaattorin verkon IP-osoite on tai on ollut käytössä.

Ikioma portti maailmalle

Jokaisen laitteen ikioma portti on vähimmän vaivan tie ylläpidossa, mutta kuten todettua, niin myös tietoturvalle kysymysmerkki. Oletuksena on, että sinulla on SSH-serveri asennettuna omassa koneessasi.

  • Avataan routerin asetukset.
  • Avataan jokaiselle käyttäjällä oma ulkoinen WAN-portti SSH:ta varten, esimerkiksi 2221, 2222 jne. – se saa olla mikä tahansa, kunhan ei ole jonkun muun palvelun käytössä.
  • Protokolla on TCP
  • LAN-portti saa olla mikä tahansa, vaikka kaikille sama, esim. 2222 – taas, se saa olla mikä vaan, kunhan ei ole muun palvelun käytössä (Windowsissa, jossa on WSL2, se saa olla 22, vaikka porttia käyttää Windowsin oma SSH-serveri, mutta tämä on sekava asia – ja WSL2 käyttäjien ei edes sinänsä kannata ottaa linuxin OpenSSH serveriä käyttöön)
  • /etc/ssh/sshd_config tiedostoon (lue täältä ohjeet miten löydät tuon tiedoston Windows 10 koneesta) merkitään kuunneltava LAN portti, esimerkiksi Port 2222

Käynnistetään jokaisen asiakaskoneen SSH uudestaan:

  • oikea Ubuntu (vähemmän oikea on Windowsin WSL:n Ubuntu asennus, mutta siihen ei kannata serveriä asentaa)

sudo systemctl restart ssh

  • Windows 10 vaatii kaksi komentoa PowerShellissä
Stop-Service -f sshd
Start-Service sshd
  • Windowsissa joudut lisäksi avaamaan sen omaan palomuurin asettamasi portin, jos se on joku muu kuin 22

Nyt jokainen pääsee oman koneensa shelliin komennolla ssh tunnus@kodin.julkinen.ip.osoite -p WANporttinumero eli esimerkiksi näin:

ssh jakke@104.248.141.204 -p 2221

Jos on tarvetta kirjautua sisäverkossa olevan toisen koneen shelliin, niin se onnistuu

  • samalla komennolla, kunhan vaihtaa portin oikeaksi (ja kohdekoneessa on käyttäjätili, mutta tämähän on itsestäänselvyys aina)
  • omasta shellistä komennolle ssh tunnus@laitteen.LAN.ip -p LANporttinumero

Etu tai haitta on siinä, että yhteys todellakin otetaan omaan koneeseen ja sen on oltava käynnissä. Jos ei ole, niin se vaikuttaa vain sinun yhteyksiisi, mutta kaikki muut koneet on edelleen saavutettavissa.

Yksi osoite, yksi portti, yksi sisäänkäynti

Ylläpidon, ja itseasiassa myös käytettävyyden, kannalta olisi parempi käyttää yhtä IP-osoitetta maailman suuntaan. Tai host nimeä, onnistuu sekin, mutta hieman mutkan kautta, koska tarvitset siihen ostetun domainin. Sitten vaan asetat domainin nimitiedoissa sen osoittamaan kotiverkkosi eli routerin julkista IP-osoitetta. Koska IP-osoite on suurella todennäköisyydellä vaihtuva, niin kannattaa ottaa käyttöön VPN ja dynaaminen DNS.

Serverin käytössä on kaksi tapaa:

  • saavutaan normaalisti serverille julkisen IP-osoitteen kautta, tehdään töitä siellä tai jatketaan sisäverkossa omalle koneelle normaalilla ssh-komennolla
  • serveri on ns. jump box, joka kääntää yhteyden ottavan koneen ~/.ssh/config asetusten tai suoran ssh -J komennon mukaan automaattisesti oikealle sisäverkon laitteelle

Kummassakin tavassa serverin on oltava koko ajan päällä ja käynnissä, jos halutaan esteetön pääsy. Serveriksi kelpaa mikä tahansa, jossa pyörii linux. Aika monet käyttävätkin siihen työhön jotain vanhaa pöytäkonetta tai läppäriä, joka on liian vanha ja väsynyt pyörittämään graafista työpöytää.

Minäkin kokeilin vastaavaa, mutta kyllästyin läppärin viemään tilaan, lämpenemiseen ja jatkuvaan hurinaan. Sijoitin satasen maailman tunnetuimpaan tietotekniseen saippuakoteloon: ostin Raspberry Pi:n. Nyt minulla hoitaa serverin virkaa näkymätön ja äänetön kone, jossa on vähintään samat tehot kuin vanhassa läppärissä – itseasiassa jopa enemmän.

Välipysäkkinä serveri

Jos SSH-serveriltä voi jatkaa omalle koneelle erillisellä komennolla malliin ssh tunnus@192.168.100.10, niin mitään sen kummallisempia asetuksia ei tarvitse tehdä. Riittää, että portit ovat auki sisäverkossa jokaisella koneella, eli käyttäjillä, on tili serverillä ja IP-osoitteita ei blokata.

IP-osoitteiden muistaminen on aivan tuskaa. Asiat saa tehdä helpomminkin. Ja kuten aina, niin toteutustapoja on useita. Silti kaksi lienee helpointa.

Voi käyttää bashin aliasta.

echo "alias omakone='ssh oma_tunnus@192.168.100.1'" >> ~/.bash_aliases && . ~/.bashrc

Silloin komento omakone ottaa SSH-yhteyden haluttuun laitteeseen.

Parempi on kuitenkin käyttää SSH:n ikiomaa asetustiedostoa ~/.ssh/config niin asiat pysyvät omilla paikoillaan. Plus jos joskus muuttaa jotain, niin joku unohdettu alias ei jää kummittelemaan. config-tiedosto ei ole valmiina, vaan se on luotava itse.

nano ~/.ssh/config

Jos haluat edetä sisäverkon etummaisena olevalta SSH-serveriltä erillisellä komennolla omalle koneellesi, niin tarvittava asetus on helppoakin helpompi:

Host win10
        Hostname 192.168.100.40
        User jakke

Host saa olla mikä vaan, se on vain alias, nimi. Oleellista on, että Hostname (joka saa olla nimi, jos se toimii, tai IP-osoite) osoittaa oikeaan koneeseen ja User on siinä koneessa, johon haluat kirjautua, oleva käyttäjätunnus. Eli tuo tarkoittaa tismalleen samaa kuin ssh jakke@192.168.100.40 mutta sitä käytetään komennolla ssh win10.

  • Tuo olettaa portin 22. Jos kohdekoneen serverillä on määritelty joku muu, niin tarvitse mukaan rivin Port 1234 tai mikä käytössä oleva portti sitten onkaan.

Jotta salasanaa ei tarvitsisi antaa, niin SSH-serverin käyttäjän ~/.ssh/id_rda.pub avain täytyy olla sen koneen authorized_keys tiedostossa, jonne ollaan menossa.

ProxyJump

Kun halutaan edetä ulkoa SSH-serverin läpi omalle koneelle helpoimmalla mahdollisella tavalla, niin tehdään config muokkaus sille koneelle, josta yhteyden ottaa.

Eli sillä koneella, josta aiot yhteyden avata:

nano ~/.ssh/config

Lisää sinne tämä:

## Asetetaan SSH-serveri, se ensimmäisenä oleva
# Host on alias ja saa olla mitä vaan
# HostName on SSH-serverin nimi tai IP
# User on SSH-serverin käyttäjätunnuksesi    
Host jumppi
    HostName serveri.example.com
    User tunnus

## Asetetaan se kone, joka on sisäverkossa ja jonne ollaan matkalla
# Host on alias ja saa olla mitä vaan
# HostName on sisäverkon IP-osoite
# User on sisäverkon koneen käyttäjätunnus
# ProxyJump viittaa SSH-serverin aliakseen
Host omakone
    HostName 192.168.100.1
    User tunnus2
    #ProxyCommand ssh -W %h:%p jumppi
    ProxyJump jumppi

Kun annat komennon ssh omakone niin SSH katsoo omakone säännöistä IP:n mihin ollaan menossa ja käytettävän tunnuksen, mutta huomaakin, että nyt täytyy tehdä hyppy ja poukkaakin jumppi-serverille ja antaakin vasta siellä omakoneen IP:n ja tunnuksen ssh:lle. Ja päästään perille.

  • Kommentoitu ProxyCommand on vanhemman version komento ja ProxyJump tekee saman helpommalla. Mutta ProxyCommand sallii enemmän säätöjä, jos niitä tarvitsee.

config-tiedostossa pystyy kertomaan mitä tunnistustiedostoa käytetään. Koska pyöritän muutaman koneen sisäverkkoa, niin en alkanut taistelemaan asian kanssa. Kopioin sen koneen, josta maailmalla otan yhteyttä, id_rsa.pub avaimen ja laitoin sen sisäverkon koneen authorized_keys tiedostoon. Ei riitä, että sen SSH-serverin, josta hyppy tehdään sisäverkon koneelle, julkinen avain löytyy kohdekoneesta. Täytyy löytyä myös sen ensimmäisenkin.

Jumpin voi tehdä myös yhdellä komennolla, jos ei halua muokata config tiedostoa:

ssh -J tunnus@ssh-serveri tunnus2@192.168.100.1

Tai jos kummastakin on tehty config-tiedostoon oma ”perusmäärittelynsä”, niin yksinkertaistetaan lisää:

ssh -J jumppi omakone

Samalla vaivalla tekee sitten heti config-tiedostoon kunnollisen ProxyJump säädön.

Sama kone sisällä ja ulkona

Edellä neuvottu ProxyJump on näppärä, jos tietokonetta käytetään vain maailmalla eikä koskaan sisäverkossa. Kun samaa konetta käytetään myös kotona sisäverkossa, niin config-tiedostoa on muutettava ainakin SSH-serverin osalta. Edellä olevan ohjeen mukaan ”pikakomento” ssh jumppi ei enää toimikaan, koska sisäverkko ei tunnista host-nimeä eikä IP-osoitetta.

Ja kuten niin tuttua on, niin sama asia saavutetaan useammalla tavalla.

Yksi tapa on tehdä config-tiedostoon uusi määrittely uudella aliaksella:

Host serveri 
    HostName 192.168.100.10
    User tunnus

Nyt komennolla ssh serveri tehtäisiin sama kuin komennolla ssh tunnus@192.168.100.10

Tuokin toimii, mutta on taas uusi nimi muistettavana. Joten viedään homma vähän pidemmälle. Tehdään säätö, jossa voi aina käyttää komentoa ssh jumppi päästäkseen SSH-serverille, mutta pyydettävä IP-osoite muuttuu sen mukaan ollaanko sisäverkossa ja vai ulkomaailmassa.

Avataan taas config:

nano ~/.ssh/config

Muuta Host jumppi tällaiseksi:

Match Host jumppi Exec "ifconfig | grep 192\.168\.100\."
    HostName 192.168.100.10
    User tunnus

Host jumppi
    HostName serveri.example.com
    User tunnus

Ensin tarkitetaan IP-osoite ja jos se alkaa 192.168.100.* niin ollaan sisäverkossa, joten tehdään yhteys sisäverkon IP-osoitteeseen 192.168.100.10. Jos IP-osoite on jotain muuta, niin siirrytään seuraavaan, jolloin otetaan yhteyttä hostiin serveri.example.com (kyllä, saa käyttää IP-osoitettakin).

En määritellyt portteja, koska itse käytän aina porttia 22 joka paikassa. Jos portti muuttuu, ja varsinkin jos se muuttuu jump-ketjussa jossain välissä, niin silloin on syytä määritellä käytettävä portti jokaiseen host-sääntöön malliin Port XXXX.

Vieras kone

config-säätöä ei voi tehdä vieraaseen koneeseen, joten ainoaksi vaihtoehdoksi jää joko ssh -J komento tai sitten menee ssh:lla ensin jump boxiin/SSH-servereille ja jatkaa sieltä sitten sisäverkon koneelle. Joka kerta annat salasanan ja toivot, että kukaan ei seuraa mitä kirjoitat.

Silloin on oltava tiedostossa /etc/ssh/sshd_config salasanojen käyttö sallittuna. Jos olet vieraalla koneella, niin et sinä voi sen julkista avainta antaa luotetuksi. Niin ei vaan tehdä. Joten jos ainoa tapa kirjautua SSH:lla on avain, niin sitten et pysty kirjautumaan.

Turvallisuuden kannalta SSH-serverin sshd_config asetuksissa pitäisi kieltää salasanat ja rootin kirjautuminen. Sen sijaan sisäverkossa taasen voidaankin sallia salasanat ja root, koska SSH-serveri toimii eräällä tavalla bastionina ulkomaailmaa vastaan ja tekee periaatteessa sisäverkosta turvallisen DMZ-alueen – paino sanalla hyvinkin luovasti periaatteessa, koska jokainen sisäverkon läppäri on kuitenkin alttiina ulkomaailmalle.

Kun sisäverkon koneet sallivat myös salasanat, niin aivan jokaisen laitteen julkista avainta ei tarvitse vaivautua siirtämään jonkun satunnaisen käynnin takia. Tosin, onko salasanojen muistaminen sitten vähemmän työlästä kuin julkisten avainten siirto kertaurakkana?

Kumpi vai kampi?

Riippuu aivan omista tarpeista kumpi tapa on järkevin. Jos ei ole muutoin sen kummallisempaa serveritarvetta esimerkiksi tiedostoihin, ja nykyiset pilvipalvelut malliin Dropbox, Google Cloud, OneDrive jne. ovat saatavilla, niin kannattaa antaa jokaiselle sisäverkon koneelle oma reikä routeriin. Tiedostojen siirto on kuitenkin varmaan yleisin syy virittää ns. tavis-huusholleissa SSH käyttöön.

Samaten jos ei ole mitään tarvetta koskaan päästä ulkoa shelliin, vaan tarve on vain kotona koneesta toiseen, niin mitään erillistä serveriä ei tarvita. Silloin jokainen kone on oma serverinsä.

On olemassa toinenkin nyrkkisääntö. Jos sisäverkko muodostuu Windows-koneista, eikä sinulle ole koskaan ollut tarvetta tehdä mitään komentoriviltä, niin unohda kaikki serveriratkaisut. Siinäkin tapauksessa, että tarvitsisit elokuva-arkistoille tai musiikille jonkin mediaserverin, niin valinta on ostaa sellainen verkkolevy, joka osaa itse toteuttaa moisen. Ei rakentaa erillistä serveriä. Tosin – jos olet tuossa tilanteessa, niin tuskin olet lukenut tätä juttua tähän asti.

Aina välillä tekeminen vain siksi, että voi tehdä, on arvo sinällään.

Jos ei haittaa yksi ylimääräinen kone, niin silloin erillisen serverin pystyttäminen on vain järkevä ratkaisu. Plus pystyy ennakoimaan tilanteen, että reissulta joskus pääsee edes johonkin kotona olevalle koneelle.

Oma tarve on harvemmin ulkomaailmasta sisälle, mutta silloin kun se tarve on, niin se on ehdoton. Toinen vaihtoehto olisi soittaa kotiin ja neuvoa puhelimessa jotakuta perheestä tekemään tarvittavat asiat.

Sen sijaan päivittäinen tarve on päästä omalta win-läppäriltä maailmalla oleviin virtuaaliservereihin. En minä siihen jumpboxia tarvitse. PuTTY osaa ottaa yhteyden aivan hienosti suoraan ihan itsekseen. Saman tekee Windowsin oma komentokehoite ja siellä config tiedoston ”perusasetus” toimii ihan vaan aliaksena, ettei tarvitse muistaa IP-osoitteita. Windows keskustelee suoraan routerin kanssa ohittaen hienon SSH-serverini.

Mutta koska tekniikka on valmis, niin minulla on vapaat kädet katkaista Windows-koneiden yhteydet routeriin, sillata se ja antaa Raspberryn toimia routerina. Silloin minulla on käytössä palomuuri, josta tiedän mitä se tekee ja näen logeista mitä tapahtuu. Siinä vaiheessa ProxyJump voikin tulla tarpeeseen, vaikkakin päinvastaisessa järjestyksessä mitä sitä yleensä käytetään.

 

Jakke Lehtonen

Teen B2B-markkinoille sisällöntuottoa sekä UX-testauksia. Samaan liittyy myös koulutukset yrityksille ja webmaailman kanssa muutoin painiville. Serverien sielunelämää on joutunut ohessa opettelmaan. Toinen puoli toiminnasta on koirien ravitsemuksen ja ruokinnan suunnittelua sekä varsinkin omistajien kouluttamista hoitamaan koiriaan oikein ja vielä paremmin. Profiili: Jakke Lehtonen

Keskustele foorumilla Meta/KATISKA