TCP, UDP og porter
De fleste datapakker som går via nettverk og over internett bruker enten TCP (Transmission Control Protocol) eller UDP (User Datagram Protocol). Disse transportprotokollene ligger på lag 4, transportlaget, i TCP/IP-modellen.
Protokollene deler opp data fra programmer (prosesser) som ønsker å sende data ut over nettverk eller internett. Dataene deles opp i datapakker, og hver pakke får et pakkehode med informasjon om portnummer, sjekksum og, for TCP, sekvensnummer (sequence number).
Portnummer er et nummer mellom 1 og 65 535 som datapakker merkes med for å indikere hvilket program de skal leveres til hos mottakermaskinen.
Standardiserte portnummer
Mange av portnumrene er standardisert. For eksempel er port 22 standardport for SSH, som brukes for fjernstyring av Linux-terminal, og 443 er standardport for nettlesertrafikk i HTTPS. De fleste programmer vil forvente at standard portnummer brukes, men vi kan overstyre dette ved behov. I slike tilfeller må portnummeret spesifiseres både på server- og klientsiden. Om du for eksempel setter opp en webserver, kan du sette den til å bruke port 8 000. For å nå denne fra en klientmaskin må portnummeret også spesifiseres, for eksempel ved å skrive inn følgende adresse i nettleseren:
https://192.168.1.55:8000
Wikipedia har ei liste over portnummer og tjenestene de er assosiert med, enten offisielt eller av vane:
Wikipedia: List of TCP and UDP port numbers
Sikkerhetsrisiko ved å ha porter åpne mot internett
Standardporter for fjernstyring av servere, som SSH og RDP (Remote Desktop Protocol) er vanlige mål for eksterne trusselaktører. Servere som har tjenester som kan nås fra internett, bør ikke ha disse portene satt opp slik at de aksepterer trafikk utenfra lokalnettverk.
Selv bruk av ikke-standardiserte porter er risikabelt da moderne skannerverktøy kan finne ut hvilke tjenester som aksepterer trafikk på hvilke porter.
Det anbefales derfor å sette opp VPN, avgrense hvilke IP-områder (ranges) som har tillatelse til å ta kontakt på disse portene eller andre tiltak som hindrer at eksterne har noen som helst mulighet til å forsøke tilkobling til porter relatert til fjernstyring.
UDP (User Datagram Protocol) er en transportprotokoll som er spesialisert for hurtig kommunikasjon (time-sensitive) for eksempel ved overføring av video og lydstrømmer og DNS-oppslag.
UDP har ikke fram-og-tilbake-kommunikasjonen mellom avsender og mottaker som sikrer at datapakkene faktisk kommer fram. Overføringer med UDP kan dermed ha noe pakketap. Dette gjør UDP upassende for sending av datafiler, men bra for strømmer og enkle kommunikasjonspakker. UDP brukes ofte for nettbaserte spill der lav forsinkelse er essensielt. I slike tilfeller må det bygges inn i spillklient og server hvordan de skal håndtere tapte datapakker.
TCP (Transmission Control Protocol) er en transportprotokoll med funksjonalitet for å hindre pakketap. TCP-datapakker merkes med et sekvensnummer som identifiserer hver pakkes nummer i rekka av datapakker.
Det går aktiv kommunikasjon fram og tilbake mellom klient og server. Dette sikrer at datapakker som går tapt underveis på vei til mottakeren, blir sendt på nytt fra avsenderen. Ulempen med den ekstra kommunikasjonen er at protokollen gir noe høyere forsinkelse.
Related content
TCP/IP-modellen viser hvordan datapakker bygges opp for å få den fram til riktig mottaker og hvordan de tolkes når de kommer fram.