V sieti je port zaujímavou funkciou. Je to spôsob, ako môže sieťový prenos identifikovať cieľovú aplikáciu alebo službu. Každý proces / služba dostane svoj jedinečný port. Port bude vždy spojený s IP adresou hostiteľa spolu s protokolom.
Toto je moja obľúbená metafora na opísanie toho, čo je prístav. Predstavte si loď naloženú nákladom, ktorá sa plaví do vzdialenej krajiny. Aké informácie sú potrebné na správne dorazenie do cieľa? Z dôvodu zjednodušenia povedzme, že potrebuje krajinu (IP adresu) a prístav loď zakotví.
V tejto príručke si prečítajte, ako uviesť zoznam otvorených portov v systéme Linux.
Porty v systéme Linux
Prístavy fungujú ako koncový bod komunikácie. Je to 16-bitové číslo (0 až 65535 v desatinnom čísle). Aj keď je rozsah veľký, pre ľahké použitie sú porty rozdelené do troch kategórií. Každá kategória je označená ako rozsah hodnoty portu:
- 0 až 1023: Jedná sa o „známe“ porty, známe tiež ako „systémové“ porty, ktoré sú vyhradené pre systémové procesy ponúkajúce širokú škálu sieťových služieb. Na vytvorenie väzby so „dobre známym“ portom musí mať proces oprávnenie superužívateľa.
- 1024 až 49151: Jedná sa o „registrované“ porty, tiež známe ako „používateľské“ porty, ktoré sú určené IANA pre konkrétne služby. Na požiadanie môže mať proces prístup k nim. V prípade väčšiny systémov použitie týchto portov nevyžaduje žiadne oprávnenie superužívateľa.
- 49152 až 65535: Jedná sa o „dynamické“ porty, známe tiež ako „súkromné“ porty. Tieto porty nie je možné zaregistrovať v IANA. Tieto porty sú otvorené na použitie pre súkromné alebo prispôsobené služby a možno ich tiež automaticky prideliť ako prchavé porty (porty s krátkou životnosťou používané protokolom IP).
V systéme Linux existuje niekoľko spôsobov kontroly otvorených portov. Predvolene zostane akýkoľvek port zatvorený, pokiaľ ho nepoužíva aplikácia. Ak je port otvorený, musí byť pridelený službe / procesu.
Zoznam otvorených portov
Je ľahšie zistiť, ktoré porty sa používajú, ako ktoré porty sú otvorené. Preto v nasledujúcej časti budú uvedené metódy na zoznam všetkých portov, ktoré sa momentálne používajú. V systéme Linux je pre úlohu k dispozícii niekoľko nástrojov. Väčšina z nich je zabudovaná v ľubovoľnom distribučnom systéme Linux.
Zistenie, ktoré porty sú momentálne otvorené, môže byť užitočné v rôznych scenároch. Je možné nakonfigurovať vyhradený port pre určitú aplikáciu. Otvorený port môže byť tiež silnou indikáciou narušenia siete.
Nasledujúce metódy sú demonštrované na Ubuntu 20.04.1 LTS.
Zoznam protokolov a otvorených portov z / etc / services
Súbor / etc / services obsahuje informácie o aktuálne spustených službách. Je to veľký súbor, takže môžete byť ohromení.
$ cat / etc / services | menej
Zoznam otvorených portov pomocou netstat
Nástroj netstat je pomôcka na zobrazovanie sieťových pripojení pre TCP, smerovacie tabuľky a rôzne sieťové rozhrania. Ponúka tiež štatistiku sieťového protokolu. Pomocou programu netstat môžeme vypísať všetky otvorené porty systému.
Spustite nasledujúci príkaz netstat:
$ netstat -atu
Poďme si rýchlo rozdeliť všetky vlajky, ktoré sme použili v tomto príkaze.
- a: Hovorí netstatu, aby zobrazil všetky zásuvky
- t: Hovorí netstatu, aby vypísal porty TCP
- u: Povedie netstatu, aby vypísal porty UDP
Tu je ďalšia variácia príkazu netstat:
$ netstat -lntu
V príkaze sú použité dva nové príznaky. Čo si myslia?
- l: Povie sieti netstat, aby tlačila iba zásuvky na počúvanie
- n: Povie netstat, aby zobrazil číslo portu
Ak chcete zobraziť PID procesu, ktorý používa port, použite príznak „-p“:
$ netstat -lntup
Zoznam otvorených portov pomocou ss
Nástroj ss je pomôcka na vyšetrovanie zásuviek. Jeho použitie je podobné ako v netstat.
Ak chcete zobraziť zoznam otvorených portov, spustite nasledujúci príkaz ss:
$ ss -lntu
Vlajky sú podobné ako netstat. Funkcie, ktoré popisujú, sú tiež dosť podobné.
- l: Hovorí ss, aby zobrazovala zásuvky na počúvanie
- n: Hovorí spoločnosti SS, aby sa nepokúšala vyriešiť názvy služieb
- t: Povie ss, aby zobrazovala zásuvky TCP
- u: Povie ss, aby zobrazovala zásuvky UDP
Zoznam otvorených portov pomocou lsof
Príkaz lsof je zoznam otvorených súborov. Môže sa však použiť aj na zobrazenie otvorených portov.
Spustite nasledujúci príkaz lsof:
$ lsof -i
Ak chcete získať otvorené porty konkrétneho protokolu (TCP, UDP atď.).) potom ho definujte za príznakom „-i“, použite:
$ lsof -i
Zoznam otvorených portov pomocou nmap
Nástroj nmap je výkonný nástroj na prieskum siete a zabezpečenie / skenovanie portov. Môže hlásiť všetky otvorené porty v systéme.
Ak chcete zobraziť zoznam otvorených portov TCP, spustite nasledujúci príkaz nmap. Tu je adresa IP hostiteľského počítača:
$ sudo nmap -sT -p- localhost
Tu sú dve časti argumentu príkazu.
- -sT: Táto časť informuje nmap, aby vyhľadával porty TCP.
- -p- : Toto informuje nmap, aby vyhľadal všetkých 65535 portov. Ak sa nepoužije, nmap predvolene skenuje iba 1 000 portov.
Ak potrebujete uviesť zoznam otvorených portov UDP, spustite nasledujúci príkaz nmap:
$ sudo nmap -sU -p- localhost
Ak chcete získať otvorené porty TCP aj UDP, použite nasledujúci príkaz:
$ sudo nmap -n -PN -sT -sU -p- localhostZoznam otvorených portov pomocou netcat
Nástroj netcat je obslužný program príkazového riadku na čítanie a zápis údajov cez sieťové pripojenia prostredníctvom protokolov TCP a UDP. Tento nástroj je možné použiť aj na výpis otvorených portov. Môže vykonávať testy na konkrétnom porte alebo rade portov.
Nasledujúci príkaz netcat prehľadá port od 1 do 1 000. Príkaz netcat vykoná predvolene kontrolu na protokole TCP:
$ nc -z -v localhost 1-1000
Môže sa tiež rozšíriť na celý zoznam možných portov:
$ nc -z -v localhost 1-65535
Poďme si rýchlo rozdeliť vlajky.
- z: Povie sieti netcat, aby skenovala iba otvorené porty bez odosielania akýchkoľvek údajov
- v: Hovorí sieti netcat, aby bežala v podrobnom režime
Ak chcete z tohto zoznamu získať iba otvorené porty, vyfiltrujte výstup pomocou výrazu grep pre výraz „úspešný“.
$ nc -z -v localhost 0-65535 2> & 1 | grep uspelAk chcete vykonať kontrolu na protokole UDP, pridajte príznak „-u“.
$ nc -z -v -u localhost 0-65535 2> & 1 | grep uspelZáverečné myšlienky
Ako je demonštrované, v systéme Linux existuje veľa spôsobov, ako vyhľadať otvorené porty. Navrhujem vyskúšať všetky metódy skôr, ako sa rozhodnete, ktorú z nich zvládnuť. Ak pravidelne používate určitý nástroj ako netcat alebo nmap, potom bude najpriaznivejšie zvládnuť súvisiace metódy.
Šťastné výpočty!