Miten netti toimii
Portit selitettynä: miksi yksi osoite palvelee montaa palvelua
Portti on osoitteen jatke: se kertoo, mille ohjelmalle saapuva tieto kuuluu. Kun ymmärrät porttien logiikan, ymmärrät myös mitä palomuuri oikeasti tekee ja mitä avoin portti tarkoittaa.
Lyhyt vastaus
Portti on numero, joka kertoo mille ohjelmalle saapuva paketti kuuluu. IP-osoite riittää viemään tiedon oikeaan laitteeseen, mutta yhdessä laitteessa on yleensä monta ohjelmaa, jotka odottavat verkkoyhteyksiä, ja portti erottaa ne toisistaan. Palvelinpäässä käytetään vakiintuneita numeroita, esimerkiksi 443 salatulle verkkoliikenteelle, ja asiakaspää saa satunnaisen tilapäisen numeron jokaiselle yhteydelle. Palomuuri toimii juuri tällä tasolla: se päättää, mihin portteihin saapuva liikenne päästetään.
Sisällys
- Osoite vie taloon, portti huoneistoon
- Vakioportit ja niiden logiikka
- Kuka valitsee numeron: päivystäjä ja soittaja
- Palomuuri on porttien suodatin
- Mitä avoin portti oikeasti tarkoittaa
- Mitä porttiskannaus näkee ja mitä se ei näe
- Tarkistuslista kotiverkkoon
- Usein kysytyt kysymykset
- Lähteet ja lisälukemista
Kotona voi olla yksi julkinen IP-osoite, mutta samaan aikaan puhelimessa on auki karttasovellus, tietokoneella latautuu tiedosto ja televisiossa pyörii video. Kaikki liikenne tulee ja menee saman osoitteen kautta. Silti mikään ei mene sekaisin. Syy on porttinumeroissa.
Yleinen käsitys, jonka mukaan portti olisi jonkinlainen reikä laitteessa, johtaa harhaan. Portti ei ole fyysinen eikä sitä avata poraamalla. Se on pelkkä numero paketin otsikossa. Kun sanotaan että portti on auki, tarkoitetaan että laitteessa on ohjelma, joka on ilmoittanut käyttöjärjestelmälle ottavansa vastaan yhteyksiä tuolla numerolla, ja että matkalla oleva palomuuri päästää liikenteen perille.
Osoite vie taloon, portti huoneistoon
Vertaus kerrostaloon toimii tässä poikkeuksellisen hyvin. Katuosoite riittää viemään kirjeen oikeaan rakennukseen, mutta talossa on kymmeniä asuntoja. Huoneistonumero kertoo, kenelle kirje kuuluu. Ilman sitä posti jäisi rappuun.
Verkossa katuosoite on IP-osoite ja huoneistonumero on portti. Portti on 16-bittinen luku, eli mahdollisia numeroita on hieman yli 65 000 kappaletta. Numero on paketin kuljetuskerroksen otsikossa, ja siellä on aina kaksi porttia: lähtöportti ja kohdeportti.
Tästä seuraa, että yhteyttä ei tunnista yksi luku vaan neljä: lähde-IP, lähtöportti, kohde-IP ja kohdeportti. Kun avaat samasta koneesta kaksi välilehteä samalle sivustolle, kolme ensimmäistä lukua ovat samat mutta lähtöportti on eri. Sillä yhteydet erotetaan toisistaan.
Numeroavaruuksia on itse asiassa kaksi rinnakkain. TCP:n portti 53 ja UDP:n portti 53 ovat eri asioita, ja niissä voi olla eri palvelu. Tämä johtuu siitä, että portti on kuljetuskerroksen käsite ja kuljetuskerroksella on kaksi vakiintunutta vaihtoehtoa, joiden ero on selitetty artikkelissa TCP:n ja UDP:n työnjaosta. Palomuurisäännössä pitää siksi aina kertoa myös protokolla, ei pelkkää numeroa.
Sama nelikko selittää, miten kotisi reititin pystyy palvelemaan kymmentä laitetta yhdellä julkisella osoitteella. Osoitteenmuunnos eli NAT kirjoittaa lähtevän paketin lähtöportin uudeksi, pitää kirjaa muunnoksista ja osaa palauttaa vastauksen oikealle sisäverkon laitteelle. Ilman portteja tämä olisi mahdotonta.
Vakioportit ja niiden logiikka
Jotta yhteydenotto onnistuisi ilman erillistä sopimista, palvelinpuolen numeroista on sovittu etukäteen. Numeroavaruus on jaettu kolmeen alueeseen: matalimmat numerot ovat vakiintuneita palveluita varten, keskialue on rekisteröityjä numeroita ja ylin alue on varattu tilapäiskäyttöön.
| Portti | Palvelu | Mitä siinä tapahtuu |
|---|---|---|
| 80 | HTTP | Salaamaton verkkoliikenne, nykyään lähinnä uudelleenohjaus salattuun |
| 443 | HTTPS | Salattu verkkoliikenne, valtaosa selaimen liikenteestä |
| 53 | DNS | Nimen selvitys osoitteeksi, yleensä UDP:llä |
| 25 | SMTP | Sähköpostin siirto palvelimelta toiselle |
| 587 | SMTP submission | Sähköpostiohjelman lähetys omalle palvelimelle |
| 22 | SSH | Salattu etäkäyttöyhteys palvelimen komentoriville |
Olennaista on, että nämä ovat sopimuksia eivätkä sääntöjä. Mikään ei estä pystyttämästä verkkopalvelinta johonkin muuhun numeroon. Silloin osoitteeseen pitää vain kirjoittaa portti näkyviin, mikä on yksi harvoista tilanteista, joissa numero näkyy tavalliselle käyttäjälle. Muuten selain täydentää sen automaattisesti sen mukaan, alkaako osoite https vai http.
Matalimmat numerot ovat monissa käyttöjärjestelmissä suojattuja siten, että vain korotetuin oikeuksin toimiva ohjelma voi varata ne. Käytäntö on peräisin ajalta, jolloin monta käyttäjää jakoi saman koneen, eikä kuka tahansa saanut esiintyä koneen virallisena postipalvelimena. Nykyään palvelut ajetaan usein eristetyissä ympäristöissä, mutta jako on jäänyt voimaan ja selittää miksi omat kokeilut kannattaa tehdä korkeammilla numeroilla.
Vakioportin vaihtaminen johonkin epätavalliseen numeroon vähentää sokeasti kolkuttelevien yritysten määrää, mutta se ei ole suoja. Kohdennettu skannaus löytää palvelun numerosta riippumatta. Turvallisuus tulee siitä, mitä portin takana on, ei siitä missä numerossa se on.
Kuka valitsee numeron: päivystäjä ja soittaja
Porttien käytössä on selvä epäsymmetria, joka jää usein huomaamatta.
Palvelinpää päivystää. Ohjelma varaa itselleen tietyn numeron ja jää odottamaan yhteyksiä. Numero on pysyvä ja tunnettu, koska muuten kukaan ei osaisi ottaa yhteyttä. Yhdessä laitteessa vain yksi ohjelma voi kuunnella samaa numeroa samaan aikaan.
Asiakaspää soittaa. Kun selaimesi avaa yhteyden, käyttöjärjestelmä antaa sille vapaan numeron korkeasta päästä. Numero on satunnainen, se elää vain yhteyden ajan ja vapautuu sen jälkeen. Yhdellä laitteella voi olla satoja tällaisia yhteyksiä auki yhtä aikaa.
Sama epäsymmetria selittää, miksi porttinumeroista puhutaan lähes aina palvelinpään numeroina. Kun sanotaan että jokin palvelu käyttää porttia 443, tarkoitetaan päivystävää päätä. Soittavan pään numero vaihtuu joka kerta eikä sitä kirjata mihinkään sopimukseen. Kerrosjaon näkökulmasta portti kuuluu kuljetuskerrokselle, ja se on yksi selkeimmistä esimerkeistä siitä, miten kerrokset jakavat työn keskenään.
Tämä ero on syy siihen, miksi selaaminen ei vaadi mitään avaamista palomuurista. Lähtevä yhteys avataan sisältä ulos, ja vastausliikenne päästetään sisään siksi, että se liittyy jo olemassa olevaan yhteyteen. Vasta jos haluat, että joku ottaa yhteyttä sinuun päin, tarvitaan erillinen sääntö. Sitä käsitellään käytännön tasolla artikkelissa porttiohjauksesta ja etäkäytöstä.
Palomuuri on porttien suodatin
Palomuurin työ on yksinkertaisempi kuin usein luullaan. Se katsoo jokaista pakettia ja päättää sääntöjen perusteella, päästetäänkö se läpi. Tärkeimmät tiedot päätöksessä ovat lähde- ja kohdeosoite, kohdeportti ja se, kuuluuko paketti jo tunnettuun yhteyteen.
Se, mitä palomuuri ei tee, on yhtä tärkeää. Palomuuri ei tutki sisältöä, ei tunnista haittaohjelmia eikä tiedä onko yhteys mielekäs. Jos päästät liikenteen porttiin ja sen takana oleva ohjelma on haavoittuvainen tai heikosti salasanasuojattu, palomuuri on tehnyt työnsä ja ongelma on silti olemassa. Siksi etäkäytettävän palvelun tärkein suoja on aina riittävän vahva salasana ja ajan tasalla oleva ohjelmisto.
Kotireitittimessä oletuslinja on käytännössä aina sama: sisältä ulos saa, ulkoa sisään ei. Tämä ei johdu pelkästään palomuurisäännöistä vaan osittain osoitteenmuunnoksesta, joka ei muutenkaan tiedä minne saapuva yhteys pitäisi ohjata. Jos operaattorisi käyttää useamman asiakkaan yhteistä julkista osoitetta, saapuvat yhteydet eivät ole mahdollisia lainkaan ilman erillistä palvelua.
Mitä avoin portti oikeasti tarkoittaa
Sanonta on epätarkka, koska se voi tarkoittaa kolmea eri asiaa. Erottelu kannattaa opetella, koska se poistaa suurimman osan turhasta huolesta.
- Ohjelma kuuntelee laitteessa. Tietokoneellasi voi olla tiedostojen jakopalvelu, joka päivystää lähiverkossa. Tämä on täysin normaalia eikä näy internetiin.
- Reititin päästää liikenteen läpi. Jotta portti olisi auki ulospäin, reitittimessä pitää olla sääntö, joka ohjaa saapuvan liikenteen tiettyyn sisäverkon laitteeseen. Tämä on aina tietoinen asetus tai jonkin ohjelman automaattisesti tekemä.
- Palvelu vastaa internetistä käsin. Vasta kun molemmat edelliset toteutuvat, ulkopuolinen voi saada yhteyden.
Kaksi ensimmäistä kohtaa sekoitetaan usein keskenään. Laitteen oma tarkistustyökalu kertoo, mitkä ohjelmat kuuntelevat kyseisessä koneessa, ja lista voi näyttää pitkältä. Suurin osa niistä on sidottu vain laitteen sisäiseen osoitteeseen tai lähiverkkoon, eikä niihin ole pääsyä internetistä. Ulkoa tehty tarkistus taas kertoo, mitä reitittimen takaa oikeasti näkyy, ja se on yleensä paljon lyhyempi lista.
Riski ei ole portissa vaan siinä, mikä sen takana on. Ajan tasalla oleva palvelu vahvalla tunnistautumisella kestää jatkuvan kolkuttelun. Vanha, päivittämätön palvelu oletustunnuksilla ei kestä sitä montaakaan päivää. Julkisessa verkossa kolkuttelu on jatkuvaa ja automaattista, eikä se kohdistu erityisesti sinuun.
Mitä porttiskannaus näkee ja mitä se ei näe
Porttiskannaus tarkoittaa sitä, että osoitteeseen lähetetään yhteydenottopyyntöjä useisiin numeroihin ja katsotaan, mihin tulee vastaus. Se on tavallinen ylläpitäjän työkalu ja samalla hyökkääjän ensimmäinen askel. Vastaus jakautuu karkeasti kolmeen luokkaan.
| Tulos | Mitä se tarkoittaa | Mitä siitä seuraa |
|---|---|---|
| Avoin | Jokin ohjelma vastasi yhteydenottoon | Palvelu on tavoitettavissa, sen kunto ratkaisee |
| Suljettu | Laite vastasi mutta kertoi ettei mitään päivystä | Laite on olemassa ja tavoitettavissa |
| Suodatettu | Vastausta ei tullut lainkaan | Palomuuri pudotti paketin hiljaisesti |
Skannaus näkee siis vain sen, vastaako joku. Se ei näe liikenteen sisältöä, ei tiedostojasi eikä salasanojasi. Vastauksesta voi usein päätellä, minkä tyyppinen palvelu vastasi, koska monet palvelut esittäytyvät heti yhteyden alussa. Tämä on syy siihen, miksi tarpeettomia palveluita kannattaa sammuttaa: mitä vähemmän esittäytyy, sitä vähemmän on kohdetta.
Oman verkon skannaaminen on täysin sallittua ja hyödyllistä. Vieraiden osoitteiden järjestelmällinen skannaaminen ilman lupaa on eri asia, ja siihen kannattaa suhtautua kuten mihin tahansa toisen järjestelmän tutkimiseen ilman suostumusta.
Tarkistuslista kotiverkkoon
- Älä avaa porttia ulospäin, ellet tiedä täsmälleen mikä ohjelma sen takana päivystää ja miksi.
- Jos avaat, rajaa sääntö mahdollisimman tarkasti: yksi laite, yksi portti, mieluiten yksi sallittu lähdeosoite.
- Sammuta reitittimen automaattinen porttien avaus, jos et tarvitse sitä. Se on tehty helppouden vuoksi ja avaa portteja ilman että huomaat.
- Pidä etäkäytettävän palvelun ohjelmisto päivitettynä. Portin takana oleva vanha versio on suurempi riski kuin portti itse.
- Erottele vieraille ja epäluotettaville laitteille oma vierasverkko, jolloin ne eivät näe muiden laitteiden kuuntelevia portteja.
- Jos jokin palvelu ei toimi, tarkista ensin onko vika verkossa vai palvelussa. Portti on vain yksi mahdollinen syy monen joukossa, ja vianetsintä kannattaa tehdä järjestyksessä.
Usein kysytyt kysymykset
Mikä on portti tietokoneessa?
Portti on numero, joka kertoo mille ohjelmalle saapuva verkkoliikenne kuuluu. IP-osoite vie paketin oikeaan laitteeseen ja portti oikeaan ohjelmaan sen sisällä. Portti ei ole fyysinen liitäntä vaan pelkkä luku paketin otsikossa.
Montako porttia laitteessa on?
Numeroita on hieman yli 65 000, ja sama määrä on erikseen TCP:lle ja UDP:lle. Käytännössä laitteessa päivystää vain muutama, ja loput ovat vapaana tai käytössä lyhytikäisinä lähtöportteina. Numeroiden määrä ei kerro mitään laitteen turvallisuudesta.
Onko avoin portti vaarallinen?
Ei itsessään. Riski riippuu siitä, mikä ohjelma portin takana vastaa, onko se päivitetty ja miten se tunnistaa käyttäjän. Päivittämätön palvelu heikolla salasanalla on riski, hyvin ylläpidetty palvelu vahvalla tunnistautumisella ei juurikaan.
Miksi selaaminen toimii, vaikka en ole avannut yhtään porttia?
Koska selaaminen käyttää lähtevää yhteyttä. Laitteesi ottaa yhteyden ulos ja saa satunnaisen lähtöportin, ja vastausliikenne päästetään sisään siksi, että se kuuluu jo avattuun yhteyteen. Portin avaamista tarvitaan vain, jos joku ottaa yhteyttä sinuun päin.
Mitä tarkoittaa, että portti on suodatettu?
Se tarkoittaa, että yhteydenottoon ei tullut mitään vastausta, koska palomuuri pudotti paketin hiljaisesti. Suljettu portti taas vastaa kieltävästi, mikä paljastaa että laite on olemassa. Suodatettu kertoo yhteydenottajalle vähemmän kuin suljettu.
Kannattaako palvelu siirtää epätavalliseen porttiin turvallisuuden vuoksi?
Se vähentää sokeasti kolkuttelevien automaattien määrää lokeissa, mutta se ei suojaa kohdennetulta yritykseltä. Kohtuullisen nopea skannaus löytää palvelun numerosta riippumatta. Pidä sitä siivoustoimenpiteenä, älä suojauksena.
Voinko skannata oman kotiverkkoni portit?
Kyllä, oman verkon tutkiminen on sallittua ja se on hyvä tapa nähdä mitä laitteissasi päivystää. Toisen osoitteiden järjestelmällinen skannaaminen ilman lupaa on eri asia. Aloita sisäverkosta, koska se kertoo enemmän kuin ulkoa tehty skannaus.