Pordid on üks peamisi põhjusi, miks and­me­pa­ke­tid suudavad jõuda soovitud sihtkohta. Need toimivad lii­des­tena arvutite ja süs­tee­mi­tee­nuste või prog­rammide vahel ning neid kasutavad TCP- ja UDP-võr­gu­pro­to­kol­lid. Koos IP-aad­res­siga suudavad ope­rat­sioo­ni­süs­tee­mid kindlaks teha, millisele arvutile ja millisele ra­ken­dus­ele andmed tuleb saata.

Mis on portide skan­ni­mine? Lühike selgitus

Portide skan­ni­mine tähendab ar­vu­ti­süs­teemi avatud portide si­hi­pä­rast kont­rol­li­mist spet­siaal­sete töö­riis­tade abil. Enne kui süveneme sellesse, mis on portide skan­ni­mine, võiks olla kasulik vaadata esmalt, mis on portid. Portid toimivad liidesena ak­tiiv­se­tele prog­rammi­dele ja in­ter­ne­tile. Neid ka­su­ta­takse sis­se­tu­le­vate ja väl­ja­mi­ne­vate and­me­pa­ket­tide suu­na­miseks õigetesse ra­ken­dus­tesse ning neid haldavad ope­rat­sioo­ni­süs­tee­mid.

Note

Selleks et rakendus saaks teatud pordi kaudu suhelda, peab see olema avatud. Portide avamine kujutab endast aga ohtu. Kui mõnel pordi kasutaval ra­ken­dusel on turvaauke, võib see port olla rün­da­ja­tele po­tent­siaal­seks sis­se­tun­gi­punk­tiks. Rün­na­ku­ohu mini­mee­ri­miseks peaksite alati teadma, millised pordid on teie süsteemis avatud ja millised ra­ken­dused nendega seotud on.

Portide skan­ni­miseks ei pea te siht­süs­tee­mis sisse logima. Piisab sellest, kui olete sellega ühendatud kohaliku võrgu või interneti kaudu. Por­tis­kan­ne­rite abil saate saata eri portidele testina spet­siaal­seid and­me­pa­kette. Seejärel saate vastused või veateated, mida kasutatav tööriist analüüsib. Sõltuvalt skan­ni­mis­prog­rammi funkt­sioo­ni­dest saate teavet selle kohta, millised pordid on avatud ja millised suletud. Samuti saate andmeid selle kohta, milliseid teenuseid ja/või rakendusi vastavad pordid kasutavad.

Portide skan­ni­mine pakub süs­tee­miad­mi­nist­raa­to­ri­tele väga tõhusat vahendit võr­gu­liik­luse jäl­gi­miseks. Portide skan­ni­mise abil on võimalik tuvastada või­ma­likke nõrkusi ja vähendada süsteemi rün­na­ku­pinda. Mõnel juhul võib see aidata ad­mi­nist­raa­to­ri­tel lahendada konk­reet­seid võr­gu­prob­leeme. Lisaks ei avalda need töö­riis­tad mär­ki­mis­väär­set mõju skan­ni­ta­vate süs­teemide jõud­lu­sele. Seetõttu saab neid kasutada tur­va­meet­metena, ilma et oleks vaja muretseda süsteemi jõud­lu­sele aval­da­tava soovimatu mõju pärast.

Portide skannerid on kasulikud ka ko­du­ar­vu­tite puhul. Niipea kui hakkate kasutama rakendusi, mis vajavad in­ter­ne­ti­ühen­dust, avatakse pordid au­to­maat­selt, välja arvatud juhul, kui teie tulemüür takistab nende avamist. Portide skan­ni­mine aitab teil olukorda üle­vaat­li­kult jälgida ja näitab pordid, mida enam vaja ei ole. Seejärel saate need sulgeda, et vähendada tur­va­riske.

Kuidas toimib portide skan­ni­mine?

Portide skannerid pakuvad palju erinevaid meetodeid. Enamik neist hõlmab siiski ühen­dus­ele orien­tee­ri­tud TCP-pro­to­kolli. Et mõista portide skan­ni­mise käigus toimuvaid põhilisi protsesse, on kasulik tutvuda TCP-ühenduste üldise struk­tuuriga:

  • Seda protsessi, mida tuntakse ka kol­me­poolse käe­pi­gis­tuse nime all, alustab klient, saates sihtporti SYN-paketi (sünk­ro­ni­see­ri­mine).
  • Kui pakett jõuab ra­ken­dus­eni, saab klient kom­bi­nee­ri­tud SYN/ACK-paketi (sünk­ro­ni­see­ri­mine/kinnitus), mis kinnitab, et ühendus on loodud.
  • Kolmandas ja viimases etapis saadab klient ACK-paketi (kinnitus), mis loob ühenduse ja võimaldab and­me­va­he­tuse alus­ta­mist.

Kui ühen­da­takse suletud pordiga, saab klient teises etapis RST-paketi (taas­ta­mine), mis lõpetab käe­pi­gis­tuse.

Kuna andmete va­he­ta­mine erinevat tüüpi ra­ken­dus­tega oleks keeruline ja ae­ga­nõu­dev, piirdub portide skan­ni­mine lihtsate ühenduse loomise katsetega, nagu näitavad järgmised skan­ni­mis­mee­to­did.

TCP-SYN-skan­ni­mine

TCP-SYN-skan­ni­mise eesmärk ei ole täieliku TCP-ühenduse loomine. Seetõttu ni­me­ta­takse seda tüüpi skan­ni­mist ta­va­li­selt poolava­tud portide skan­ni­miseks. Por­tis­kan­ne­rit kasutades saadab see meetod tüüpilisi SYN-pakette ük­si­ku­tele portidele ja ootab siht­ma­si­nalt vastust. Kui masin saadab tagasi SYN/ACK-paketi, tähendab see, et vastav port on avatud ja ühenduse loomine on võimalik. Kui vastuseks on RST-pakett, tähendab see, et port on suletud. Kui vastust ei tule, võib selle põhjuseks olla ülesvoolu asuv pa­kett­fil­ter (nt tulemüür).

TCP-SYN-skan­ni­mised ei ole hin­na­ta­vate ra­ken­duste jaoks nähtavad ning seetõttu ei tekita need mingeid lo­gi­and­meid. Seetõttu ni­me­ta­takse neid ka varjatud skan­ni­mis­teks.

TCP-ühenduste skan­ni­mine

Kui teete oma por­di­s­kan­neriga ühen­duss­kan­ni­mise, ei loo ega saada te and­me­pa­ketti te­ge­li­kult ise. Selle asemel kasutate süs­tee­mi­kõ­net „connect“. See on saadaval peaaegu igas ope­rat­sioo­ni­süs­tee­mis. Kui ühenduse loomine õnnestub, tähendab see, et port on avatud. Kui ühenduse loomine eba­õn­nes­tub, tähendab see, et port on suletud. Kui ühendus loodi edukalt (st port oli avatud), näete rakenduse lo­gi­fai­li­des, et kasutati seda skan­ni­mis­mee­to­dit. Siiski ei pakuta teavet kasutatud filt­ree­ri­mis­prog­rammide kohta. Kui teil pole õigusi too­rand­me­pa­ket­tide saat­miseks, võib TCP-ühen­duss­ka­nee­ri­mine olla kasulik al­ter­na­tiiv SYN-skan­ni­misele.

TCP-FIN-, jõulude- ja null-skannid

Need kolm por­di­s­kan­ni­mise meetodit või­mal­da­vad eristada avatud ja suletud pordid. Siin ka­su­ta­takse kahte põ­hi­mõis­tet, mis on do­ku­men­tee­ri­tud RFC 793-s:

  1. Suletud pordid peaksid pa­ket­ti­dele (kui need ei ole RST-paketid) alati vastama omaenda RST-paketiga.
  2. Avatud pordid peaksid ig­no­ree­rima kõiki pakette, mis ei ole märgitud SYN, RST või ACK-pa­ket­ti­dena.

RCF-stan­dar­dile vastavate süs­teemide skan­ni­misel kasutavad need skan­ni­mis­mee­to­did neid põ­hi­mõt­teid, kasutades omaenda pakette:

  • Null-skan­ni­mine ei kasuta mingeid erimärke.
  • FIN-skan­ni­misel saadab por­tis­kan­ner FIN-pakette (lõpetus)
  • Xmas-skannid kasutavad FIN-, PSH- (push) ja URG-mär­gis­tuste (urgent) kom­bi­nat­siooni, mis paneb paketid särama nagu jõulupuu.

Kõik kolm skan­ni­mis­mee­to­dit toimivad ühtmoodi. RFC-reeglite kohaselt tagavad test­pa­ke­tid, et suletud pordid vastavad RST-pa­ket­ti­dega ja avatud pordid ei anna mingit vastust. Kõik ruuterid ei saada vea­tea­teid, kui port on filt­ree­ri­tud, mis võib tähendada, et kui teadet ei ilmu, on tegemist filt­ree­ri­tud portiga (lisaks või­ma­lu­sele, et tegemist võib olla avatud portiga). Kuigi see meetod on palju disk­reet­sem kui SYN-skan­ni­mine, ei pruugi see kor­ra­li­kult töötada, kui süsteemid ei järgi täie­li­kult RFC 793 stan­dar­dit. Selle sil­ma­pais­tev näide on Windows.

UDP-skan­ni­mine

UDP-skan­ni­misel saa­de­takse kõikidele vabadele portidele tühjad UDP-peal­kir­jad, milles puuduvad andmed. Kui teenus vastab UDP-paketiga, on vastav port avatud. Kui por­tis­kan­ner saab ruuterilt veateate „Port un­reac­hable“ (tüüp 3, kood 3), loeb ta porti suletuks. Muud veateated annavad ka­su­ta­ja­tele teada, et portide blo­kee­ri­mise põhjuseks on pa­kett­filt­rid. UDP-portide testimise prob­lee­miks on sellega seotud tohutu ajakulu. Seda seetõttu, et paljude süs­teemide puhul võib tur­va­li­suse põhjustel vea­tea­dete väl­jas­ta­mine võtta kaua aega. Lisaks vastavad paljud neist süs­teemi­dest portidele vaid harva. Linuxi tuum piirab teadete arvu sekundis, mis tähendab, et 65 535 porti täie­likuks skan­ni­miseks kuluks umbes 18 tundi.

Milliseid por­di­s­kan­ne­reid on olemas?

On olemas palju erinevaid skan­ne­reid, mis erinevad üks­tei­sest pa­ku­ta­vate funkt­sioo­nide poolest. Enamik neist töö­riis­ta­dest on saadaval tasuta tarkvar ana või avatud läh­te­koo­diga ver­sioo­ni­dena. Paljud neist si­sal­da­vad klas­si­ka­lisi kä­su­reaprog­ramme, mida saab kasutada eraldi graa­fi­liste liideste kaudu. Lisaks on olemas palju vee­bi­la­hen­dusi, mis või­mal­da­vad ka­su­ta­ja­tel skannida porte otse brauseris. Sellised teenused nagu DNS-töö­riis­tade por­tis­kan­ner on funkt­sioo­nide poolest piiratud ja pakuvad ainult võimalust kont­rol­lida üksikuid porte. Seetõttu sobivad need hästi kiireks kont­rol­li­miseks per­so­naal­ar­vu­ti­tes.

Netcat

Netcat (lühend: nc) avaldas 1996. aastal anonüümne arendaja, keda tuntakse nime all „Hobbit”. Alguses kirjutati see Unixi plat­vormi­dele, kuid nüüdseks on olemas palju versioone sel­lis­tele süs­teemi­dele nagu Windows, samuti mitmed laien­dused, nagu GNU Netcat, OpenBSD Netcat, Cryptcat ja Netcat6 (toetab ka IPv6-i), mis on paljudes Linuxi dist­ri­but­sioo­ni­des vaikimisi kaasas. Käsurea tööriista põhiline versioon on mõeldud peamiselt andmete saat­miseks või lu­ge­miseks TCP- ja UDP-võr­gu­ühen­duste kaudu. Seda saab aga kasutada ka lihtsate portide skan­ni­mise üles­an­nete jaoks. See võimaldab ka­su­ta­ja­tel kont­rol­lida määratud süsteemi portide 20–30 staatust lihtsate käskudega, nagu:

nc -zv localhost 20-30
bash

UDP-portide kont­rol­li­miseks on vaja li­sapa­ra­meet­rit*-u*. Local­hosti asemel võid kasutada ka välise süsteemi hostinime või IP-aadressi (kui see on sulle teada).

Nmap

Oluliselt võimsam tööriist, mis on eriti kasulik portide skan­ni­miseks, on Network Mapper, mida sageli ni­me­ta­takse Nmapiks. Unix-laad­se­tele süs­teemi­dele loodud Nmap on GPL-litsentsi all ja on olnud saadaval ka Windows-süs­teemi­dele alates 2000. aastast (kuigi teatud piiran­gu­tega). See tähendab, et TCP-ühenduse skan­ni­mine võtab eba­pro­port­sio­naal­selt palju aega ning oma süsteemi portide skan­ni­mine on võimalik vaid kaudsete viiside kaudu. Üldiselt saab Nmap’i kasutada käsurealt. Zenmapil on aga võimas graa­fi­line ka­su­ta­ja­lii­des, mis võimaldab ka­su­ta­ja­tel võr­gu­töö­riista hõlpsasti kasutada.

Nmapi looja Gordon Lyon ja Nmap aren­dus­tiim vas­tu­ta­vad programmi ja selle por­di­s­kan­ni­mis­funkt­sioo­nide eda­siaren­da­mise eest. Eelkõige sellised teh­no­loo­giad nagu ope­rat­sioo­ni­süs­teemi tu­vas­ta­mine (st siht­ma­sina ope­rat­sioo­ni­süs­teemi ära­tund­mine) ja pordite taga peituvate teenuste tu­vas­ta­mine teevad Nmapist ühe po­pu­laar­se­maid por­di­s­kan­ne­rite lahendusi. Järgmises tabelis on esitatud selle programmi pakutavad erinevad meetodid:

Portide skan­ni­mise meetodid Nmap-käsk Kirjeldus
TCP-ühen­duss­ka­nee­ri­mine nmap -sT host Klas­si­ka­line kontroll mit­te­ad­mi­nist­raa­to­ri­tele
TCP Syn-skann nmap -sS host Kiired, märkamatu kont­rol­li­mee­to­did ad­mi­nist­raa­to­ri­tele.
TCP FIN-/XMAS-/Null-skann nmap -sF host nmap -sX host nmap -sN host Meetodid, mis või­mal­da­vad vältida tulemüüre
TCP ping -skann nmap -sP host Tra­dit­sioo­ni­liste portide skan­ni­mise jaoks; aitab kont­rol­lida hosti kät­te­saa­da­vust.
TCP ACK-skann nmap -sA host Määrab kindlaks kät­te­saa­da­vad pordid, kuid ei tee vahet avatud ja suletud pordide vahel
TCP Window skann nmap -sW host Võrreldav ACK-skan­ni­mi­sega; suudab tuvastada mõned avatud ja suletud pordid.
TCP Maimon-ska­nee­ri­mine nmap -sM host FIN- ja ACK-skannide kom­bi­nat­sioon.
TCP ooteseade nmap -sI zombie host host Kõige vähem märgatav, kõige kee­ru­li­sem ja seetõttu aeglaseim skan­ni­mis­mee­tod; töötab kolmanda arvuti kaudu, mida Nmap nimetab „zombieks”.
UDP-ska­nee­ri­mine nmap -sU host Ühen­dus­eta UDP-portide skan­ni­mis­mee­to­did
SCTP algskan­ni­mine nmap -sY host Portide skan­ni­mine SCTP-ga, al­ter­na­tiiv TCP-le ja UDP-le
IP-pro­to­kolli skan­ni­mine nmap -sO host Pordi skan­ni­mist ei toimu; kont­rol­li­takse, millist IP-põhist pro­to­kolli siht­süs­teem toetab

Nmap’i amet­li­kult vee­bi­le­helt saate alla laadida nii Nmap’i kui ka selle ka­su­ta­ja­lii­d­ese Zenmap oma ope­rat­sioo­ni­süs­teemi jaoks. Saadaval on nii praegune (stabiilne) versioon kui ka bee­ta­ver­sioon (aren­dus­ver­sioon).

Miks portide skan­ni­mine ei ole alati seaduslik

Portide kont­rol­li­mine ei ole alati seaduslik. Niipea kui tehakse katseära­ka­su­tada turvaauku (termin, mida kü­ber­jul­ge­oleku spet­sia­lis­tid kasutavad tur­va­prob­leemi või -lünka ära ka­su­ta­mise kohta), võivad selle eest vastutav isik või rühm sattuda silmitsi võimalike õiguslike ta­ga­jär­ge­dega.

Siiski on ebaselge, milline on õiguslik olukord juhul, kui ar­vu­ti­süs­teem seiskub in­ten­siivse por­di­s­kan­ni­mise tõttu. Ühen­dus­nõuete suure sageduse tõttu võivad sellised jäl­gi­mis­mee­to­did tekitada siht­süs­tee­mile probleeme, mis mõnikord viivad süsteemi kok­ku­jooks­miseni. Lisaks võivad rünnaku siht­mär­giks oleva süsteemi ad­mi­nist­raa­to­rid saada ründajate te­ge­vu­sest teada juba enne süsteemi kok­ku­jooks­mist ja tõl­gen­dada neid tegevusi rünnaku esimeste sammudena.

Sellistel juhtudel on oluline arvestada võimalike õiguslike ta­ga­jär­ge­dega. Kui siht­mär­giks olevat süsteemi koor­ma­takse taht­li­kult üle, võib seda käsitada DDoS-rünnakuna, mille ta­ga­jär­jel võib rünnaku ohver pöörduda kohtusse.

Tuleb alati veenduda, et teil on õigus süsteemi por­di­s­kan­ni­mist läbi viia, ning kasutada seda meetodit ainult tur­va­li­suse eesmärgil, mitte lihtsalt uudishimu ra­hul­da­miseks. Siin kä­sit­le­tud por­di­s­kan­ni­mise meetodid rõhutavad, kui oluline on jälgida nii oma süsteemi pordid ja võrgus olevaid arvuteid kui ka neid ka­su­ta­vaid teenuseid.

Go to Main Menu