Ako vypísať zoznam otvorených portov v systéme Linux?

How List Open Ports Linux



V sieťach je port zaujímavou funkciou. Je to spôsob, akým sieťová prevádzka identifikuje 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, ktorá popisuje, čo je to prístav. Predstavte si loď naloženú nákladom, ktorá poputuje do ďalekej krajiny. Aké informácie sú potrebné na správne dosiahnutie cieľa? V záujme jednoduchosti povedzme, že potrebuje krajinu (IP adresu) a prístav loď zakotví.







V tejto príručke sa pozrite na zoznam otvorených portov v systéme Linux.



Porty na Linuxe

Porty slúžia ako koncový bod komunikácie. Je to 16-bitové číslo (0 až 65 535 v desatinnom čísle). Aj keď je rozsah veľký, kvôli jednoduchosti použitia sú porty zaradené do troch kategórií. Každá kategória je označená ako rozsah hodnoty portu:



  • 0 až 1023: Jedná sa o dobre známe porty, tiež známe ako systémové porty, ktoré sú vyhradené pre systémové procesy, ktoré ponúkajú širokú škálu sieťových služieb. Aby sa proces mohol spojiť so známym portom, musí mať oprávnenie superužívateľa.
  • 1024 až 49151: Ide o registrované porty, tiež známe ako užívateľské porty, ktoré IANA označuje pre konkrétne služby. Na požiadanie k nim môže mať prístup proces. V prípade väčšiny systémov nevyžaduje používanie týchto portov žiadne oprávnenie superužívateľa.
  • 49152 až 65535: Ide o dynamické porty, tiež známe ako súkromné ​​porty. Tieto porty nie je možné zaregistrovať v IANA. Tieto porty je možné používať pre súkromné ​​alebo prispôsobené služby a môžu byť tiež automaticky priradené ako dočasné porty (krátkodobé porty používané IP).

V systéme Linux existuje niekoľko spôsobov kontroly otvorených portov. V predvolenom nastavení zostane akýkoľvek port zatvorený, pokiaľ ho aplikácia nepoužíva. Ak je port otvorený, musí byť priradený k službe/procesu.





Vytvorte zoznam otvorených portov

Je jednoduchšie identifikovať, ktoré porty sa používajú, než ktoré porty sú otvorené. Preto v nasledujúcej časti budú uvedené metódy na zoznam všetkých portov, ktoré sa aktuálne používajú. V systéme Linux je na úlohu k dispozícii viacero nástrojov. Väčšina z nich je zabudovaná v akomkoľvek distribúcii Linuxu.

Zistenie, ktoré porty sú momentálne otvorené, môže byť užitočné v rôznych scenároch. Pre konkrétnu aplikáciu je možné nakonfigurovať vyhradený port. Otvorený port môže byť tiež silným znakom narušenia siete.



Nasledujúce metódy sú demonštrované na Ubuntu 20.04.1 LTS.

Zoznam protokolov a otvorených portov zo súboru /etc /services

Súbor /etc /services obsahuje informácie o aktuálne spustených službách. Je to veľký súbor, pripravený na zahltenie.

$kat /atď/služieb| menej

Vytvorte zoznam otvorených portov pomocou netstat

Nástroj netstat je nástroj na zobrazenie sieťových pripojení pre TCP, smerovacie tabuľky a rôzne sieťové rozhrania. Ponúka tiež štatistiky sieťových protokolov. Použitím netstatu môžeme vytvoriť zoznam všetkých otvorených portov systému.

Spustite nasledujúci príkaz netstat:

$netstat -atu

Poďme si rýchlo rozložiť všetky vlajky, ktoré sme použili v tomto príkaze.

  • do : Povie netstatu, aby zobrazil všetky sokety
  • t : Hovorí netstatu, aby vypísal porty TCP
  • u : Informuje netstat o zozname portov UDP

Tu je ďalšia variácia príkazu netstat:

$netstat -iba

V príkaze sú použité dva nové vlajky. Čo si myslia?

  • the : Hovorí netstatu, aby tlačil iba zásuvky na počúvanie
  • n : Informuje netstat, aby zobrazil číslo portu

Ak chcete zobraziť PID procesu, ktorý používa port, použite príznak -p:

$netstat -Úvod

Zoznam otvorených portov pomocou ss

Nástroj ss je nástroj na skúmanie soketu. Jeho použitie je podobné ako netstat.

Ak chcete zobraziť zoznam otvorených portov, spustite nasledujúci príkaz ss:

$ss-iba

Vlajky sú podobné netstatu. Funkcie, ktoré popisujú, sú tiež dosť podobné.

  • the : Hovorí ss, aby zobrazovala zásuvky na počúvanie
  • n : Hovorí ss, aby sa nepokúšala prekladať názvy služieb
  • t : Hovorí ss, aby zobrazoval sokety TCP
  • u : Hovorí ss, aby zobrazoval zásuvky UDP

Vytvorte zoznam otvorených portov pomocou príkazu lsof

Príkaz lsof je vytvoriť 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 <protokol>

Vytvorte 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ť hovorí nmapu, aby vyhľadával porty TCP.
  • -p- : Toto hovorí nmapu, aby skenoval všetkých 65535 portov. Ak sa nepoužije, nmap v predvolenom nastavení naskenuje iba 1 000 portov.

Ak potrebujete vytvoriť zoznam otvorených portov UDP, spustite nasledujúci príkaz nmap:

$sudo nmap -jeho -p-localhost

Ak chcete získať otvorené porty TCP aj UDP, použite nasledujúci príkaz:

$sudo nmap -n -PN -sT -jeho -p-localhost

Vytvorte zoznam otvorených portov pomocou servera netcat

Nástroj netcat je nástroj príkazového riadka 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 naskenuje port od 1 do 1000. Príkaz netcat štandardne vykoná skenovanie na protokole TCP:

$nc-S -vlocalhost1-1 000

Môže byť tiež rozšírený na celý zoznam možných portov:

$nc-S -vlocalhost1-65535

Poďme si rýchlo rozložiť vlajky.

  • S : Hovorí serveru netcat, aby vyhľadával iba otvorené porty bez odosielania akýchkoľvek údajov
  • v : Hovorí netcatu, aby bežal v podrobnom režime

Ak chcete z tohto zoznamu získať iba otvorené porty, vyfiltrujte výstup pomocou grep pre výraz, ktorý bol úspešný.

$nc-S -vlocalhost0-65535 2> &1 | uchopeniepodarilo

Ak chcete vykonať skenovanie na protokole UDP, pridajte príznak -u.

$nc-S -v -ulocalhost0-65535 2> &1 | uchopeniepodarilo

Záverečné myšlienky

Ako bolo ukázané, v Linuxe existuje veľa spôsobov, ako vyhľadávať otvorené porty. Odporúčam vyskúšať všetky metódy, než sa rozhodnete, ktorú zvládnete. Ak pravidelne používate určitý nástroj, ako je netcat alebo nmap, bude zvládnutie pridružených metód nanajvýš prospešné.

Veľa šťastia pri práci s počítačom!