Porty internetowe

IANA (ang. Internet Assigned Numbers Authority) to organizacja, która wyłoniła się z Internet Engineering Task Force w celu zaprowadzenia porządku w nazwach domen i adresach IP komputerów przyłączonych do Internetu.

Port protokołu – pojęcie związane z protokołami używanymi w Internecie do identyfikowania procesów działających na odległych systemach. Jest to jeden z parametrów gniazda.

Gniazdo w telekomunikacji (ang. socket) – pojęcie abstrakcyjne reprezentujące dwukierunkowy punkt końcowy połączenia. Dwukierunkowość oznacza możliwość wysyłania i odbierania danych. Wykorzystywane jest przez aplikacje do komunikowania się przez sieć w ramach komunikacji międzyprocesowej.

Gniazdo posiada trzy główne właściwości:

  1. typ gniazda identyfikujący protokół wymiany danych
  2. lokalny adres (np. adres IP, IPX, czy Ethernet)
  3. opcjonalny lokalny numer portu identyfikujący proces, który wymienia dane przez gniazdo (jeśli typ gniazda pozwala używać portów)

Gniazdo może posiadać (na czas trwania komunikacji) dwa dodatkowe atrybuty:

  1. adres zdalny (np. adres IP, IPX, czy Ethernet)
  2. opcjonalny numer portu identyfikujący zdalny proces (jeśli typ gniazda pozwala używać portów)

Adres IP wyznacza węzeł w sieci, numer portu określa proces w węźle, a typ gniazda determinuje sposób wymiany danych.

Numery portów reprezentowane są przez liczby naturalne z zakresu od 0 do 65535 (2^{16}-1). Niektóre numery portów (od 0 do 1023) są określone jako ogólnie znane (ang. well known ports) oraz zarezerwowane na standardowo przypisane do nich usługi, takie jak np. WWW czy poczta elektroniczna. Dzięki temu można identyfikować nie tylko procesy, ale ogólnie znane usługi działające na odległych systemach. Numery od 1024 do 49151 są określone przez IANA jako zarejestrowane, (ang. registered), a od 49152 do 65535 jako dynamiczne/prywatne, (ang. dynamic/private).

Różne usługi mogą używać tego samego numeru portów, pod warunkiem że korzystają z innego protokołu (TCP lub UDP), chociaż istnieją także usługi korzystające jednocześnie z jednego numeru portu i obu protokołów. Przykładem takiej usługi jest DNS – korzysta z portu 53 za pomocą TCP i UDP jednocześnie. Zdarza się także, że jedna usługa może korzystać z dwóch różnych portów używanych do innych zadań, jak to jest w przypadku FTP czy SNMP.

Poszczególne numery portów przydzielone są przez IANA.

Grupy portów:

Do dyspozycji jest ogółem 65 535 portów TCP i UDP. Aby zachować nad nimi kontrolę, a także by móc przydzielać aplikacjom stałe numery, podzielono je na trzy grupy.

  • Dobrze znane porty (well known ports) – zarezerwowane, standardowe numery portów od 1 do 1023. Ułatwiają nawiązanie połączenia, ponieważ zarówno nadawca, jak i odbiorca z góry wiedzą, że dane muszą być przesłane dla określonego procesu pod określony numer portu. Serwery Telnetu używają na przykład portu nr 23. Dobrze znane porty umożliwiają klientom nawiązywanie połączeń z serwerami bez dodatkowej konfiguracji. Zarządzaniem tymi portami zajmuje się Internet Assigned Numbers Authority (IANA). Listę aktualnie przydzielonych numerów portów można znaleźć pod adresem http://www.iana.org/assignments/port-numbers . Do roku 1992 dobrze znane porty ograniczały się do zakresu 1 do 255. Porty o numerach od 256 do 1023 były stosowane do usług uniksowych.
  • Zarejestrowane porty (registered ports) – porty o numerach od 1024 do 49.151 przewidziane są dla usług, które zwyczajowo korzystają z określonych portów. Przykładem może być port 3128, często wykorzystywany przez serwery proxy jako alternatywny port HTTP.
  • Porty przydzielane dynamicznie (dynamically allocated ports, również ephemeral ports) – jak wskazuje nazwa, zawsze przydzielane dynamicznie. Są to porty o numerach od 49.152 do 65.535. Każdy klient może korzystać z nich tak długo, jak długo kombinacja protokołu transportowego, adresu IP i numeru portu jest jednoznaczna. Proces, który potrzebuje dostępu do portu, żąda go od swojego hosta

W systemie Windows polecenie netstat  wyświetla listę aktualnie uruchomionych programów (usług) korzystających z zasobów sieci, adresy IP do których nastąpiło połączenie, aktualne porty zarówno lokalne jak i zdalne z którymi łączy się dany program (usługa) oraz stan połączenia. Program netstat posiada duże możliwości w wyświetlaniu danych. Dane formuje się poprzez przełączniki (dodatkowe argumenty podawane podczas wywoływania programu). Wszystkie przełączniki wyświetlane są po podaniu polecenia:

>netstat /?

Poniżej przykład działania programu netstat z opcją -b (wymaga uprawnień administratora):

  Proto  Local Address          Foreign Address        State
  TCP    10.100.2.21:59446      db5sch101102019:https  ESTABLISHED
 [OneDrive.exe]
  TCP    10.100.2.21:59752      162.125.18.133:https   ESTABLISHED
 [Dropbox.exe]
  TCP    10.100.2.21:59789      db5sch101101914:https  ESTABLISHED
 [Explorer.EXE]
  TCP    10.100.2.21:59798      db5sch101110315:https  ESTABLISHED
  ProfSvc
 [svchost.exe]
  TCP    10.100.2.21:59888      az0022:2078            ESTABLISHED
  WebClient
 [svchost.exe]
  TCP    10.100.2.21:59914      106.48.12.36:http      CLOSE_WAIT
 [wps.exe]
  TCP    10.100.2.21:59960      0126-01-1:7680         ESTABLISHED
  DoSvc
 [svchost.exe]

Standardowe usługi

Lista niektórych standardowych usług
Port Protokół
53 DNS
20 FTP – przesyłanie danych
21 FTP – przesyłanie poleceń
67 BOOTPserwer
68 BOOTPklient
79 Finger
70 Gopher
80 HTTP, dodatkowe serwery, np. proxy, są najczęściej umieszczane na porcie 8080
443 HTTPS (HTTP na SSL)
143 IMAP
220 IMAP3
6661 – 6667 IRC
5222 XMPP – dla serwera sieci Jabber
389 LDAP
636 LDAPS (LDAP na SSL)
3306 MySQL
119 NNTP
110 POP3
995 POP3S (POP3 na SSL)
5432 PostgreSQL
873 Rsync
25 SMTP
22 SSH
514 Syslog
23 Telnet
69 TFTP
6000 – 6007 X11
161 SNMP

W systemach uniksopodobnych lista portów i nazw odpowiadających im usług znajduje się w pliku /etc/services

Przykład:

za pomocą przeglądarki internetowej łączymy się ze stroną http://www.pg.edu.pl . Przeglądarka utworzy połączenie z adresem IP 153.19.40.170. Na serwerze zostanie użyty port TCP numer 80, dobrze znany port serwerów WWW (internetowych). Klient wykorzysta dynamicznie przydzielany port np. 29867.

Klient, który wywołuje stronę internetową, znajduje się w lokalnej sieci, co można poznać po adresie 192.168.0.55 Dane przechodzą przez router, gdzie stosowana jest maskarada z użyciem Network Address Translation (NAT).