Jak vypsat otevřené porty v Linuxu?

How List Open Ports Linux



V sítích je zajímavou funkcí port. Je to způsob, jakým síťový provoz identifikuje cílovou aplikaci nebo službu. Každý proces/služba dostane svůj jedinečný port. Port bude vždy spojen s IP adresou hostitele spolu s protokolem.

Toto je moje oblíbená metafora, která popisuje, co je to port. Představte si loď naloženou nákladem, která pojede do vzdálené země. Jaké informace jsou potřebné pro správné dosažení cíle? Pro jednoduchost řekněme, že potřebuje zemi (IP adresu) a přístav loď zakotví.







V této příručce se podívejte na seznam otevřených portů v systému Linux.



Porty na Linuxu

Porty fungují jako koncový bod komunikace. Je to 16bitové číslo (0 až 65535 v desítkové soustavě). Přestože je rozsah velký, pro snadné použití jsou porty rozděleny do tří kategorií. Každá kategorie je označena jako rozsah hodnoty portu:



  • 0 až 1023: Jedná se o dobře známé porty, známé také jako systémové porty, které jsou vyhrazeny pro systémové procesy, které nabízejí širokou škálu síťových služeb. Aby se proces mohl spojit se známým portem, musí mít oprávnění superuživatele.
  • 1024 až 49151: Jedná se o registrované porty, známé také jako uživatelské porty, které IANA označuje pro konkrétní služby. Na požádání k nim může mít přístup proces. V případě většiny systémů nevyžaduje použití těchto portů žádné oprávnění superuživatele.
  • 49152 až 65535: Jedná se o dynamické porty, známé také jako soukromé porty. Tyto porty nelze zaregistrovat u IANA. Tyto porty lze používat pro soukromé nebo přizpůsobené služby a mohou být také automaticky přiděleny jako pomíjivé porty (krátkodobé porty používané IP).

V Linuxu existuje několik způsobů kontroly otevřených portů. Ve výchozím nastavení zůstane jakýkoli port zavřený, pokud jej aplikace nepoužívá. Pokud je port otevřený, musí být přiřazen službě/procesu.





Seznam otevřených portů

Je snadnější určit, které porty se používají, než které porty jsou otevřené. Proto v následující části budou uvedeny metody pro seznam všech portů, které se aktuálně používají. V Linuxu je pro tento úkol k dispozici více nástrojů. Většina z nich je integrována v jakémkoli distribuci Linuxu.

Zjistit, které porty jsou aktuálně otevřené, může být užitečné v různých scénářích. Je možné konfigurovat vyhrazený port pro určitou aplikaci. Otevřený port může být také výraznou indikací vniknutí do sítě.



Následující metody jsou ukázány na Ubuntu 20.04.1 LTS.

Seznam protokolů a otevřených portů ze souboru /etc /services

Soubor /etc /services obsahuje informace o aktuálně spuštěných službách. Je to velký soubor, takže jste připraveni být zahlceni.

$kočka /atd/služby| méně

Seznam otevřených portů pomocí netstat

Nástroj netstat je nástroj pro zobrazení síťových připojení pro TCP, směrovací tabulky a různá síťová rozhraní. Nabízí také statistiky síťových protokolů. Pomocí netstatu můžeme vypsat seznam všech otevřených portů systému.

Spusťte následující příkaz netstat:

$netstat -atu

Pojďme si rychle rozebrat všechny příznaky, které jsme použili v tomto příkazu.

  • na : Říká netstatu, aby ukázal všechny sokety
  • t : Sděluje netstatu seznam TCP portů
  • u : Říká netstatu, aby vypsal porty UDP

Zde je další variace příkazu netstat:

$netstat -úplně

V příkazu jsou použity dva nové příznaky. Co tím myslí?

  • the : Říká netstatu, aby tiskl pouze naslouchací zásuvky
  • n : Informuje netstat, aby zobrazil číslo portu

Chcete -li zobrazit PID procesu, který používá port, použijte parametr -p:

$netstat -Začněte

Seznam otevřených portů pomocí ss

Nástroj ss je nástroj pro zkoumání soketu. Jeho použití je podobné jako u netstatu.

Chcete -li zobrazit seznam otevřených portů, spusťte následující příkaz ss:

$ss-úplně

Vlajky jsou podobné netstatu. Funkce, které popisují, jsou také velmi podobné.

  • the : Říká ss, aby zobrazoval poslechové zásuvky
  • n : Říká ss, aby se nepokoušela překládat názvy služeb
  • t : Říká ss, aby zobrazoval sokety TCP
  • u : Říká ss, aby zobrazoval sokety UDP

Seznam otevřených portů pomocí lsof

Příkaz lsof je seznam otevřených souborů. Lze jej však také použít k zobrazení otevřených portů.

Spusťte následující příkaz lsof:

$lsof-i

Chcete -li získat otevřené porty konkrétního protokolu (TCP, UDP atd.) A poté jej definovat za příznakem -i, použijte:

$lsof-i <protokol>

Seznam otevřených portů pomocí nmap

Nástroj nmap je výkonný nástroj pro průzkum sítě a zabezpečení/skenování portů. Může hlásit všechny otevřené porty v systému.

Chcete -li zobrazit seznam otevřených portů TCP, spusťte následující příkaz nmap. Zde je IP adresa hostitelského počítače:

$sudo nmap -Svatý -p-localhost

Zde existují dvě části argumentu příkazu.

  • -Svatý : Tato část říká nmap, aby vyhledal porty TCP.
  • -p- : Toto říká nmapu, aby vyhledal všech 65535 portů. Pokud není použit, bude nmap ve výchozím nastavení skenovat pouze 1000 portů.

Pokud potřebujete zobrazit seznam otevřených portů UDP, spusťte následující příkaz nmap:

$sudo nmap -své -p-localhost

Chcete -li získat otevřené porty TCP i UDP, použijte následující příkaz:

$sudo nmap -n -PN -Svatý -své -p-localhost

Seznam otevřených portů pomocí netcat

Nástroj netcat je nástroj příkazového řádku pro čtení a zápis dat přes síťová připojení prostřednictvím protokolů TCP a UDP. Tento nástroj lze také použít pro výpis otevřených portů. Může provádět testy na konkrétním portu nebo řadě portů.

Následující příkaz netcat zkontroluje port od 1 do 1000. Příkaz netcat ve výchozím nastavení provede skenování na protokolu TCP:

$nc-S -protilocalhost1-1000

Lze jej také rozšířit na celý seznam možných portů:

$nc-S -protilocalhost1-65535

Pojďme si rychle rozebrat vlajky.

  • S : Říká serveru netcat, aby vyhledával pouze otevřené porty bez odesílání jakýchkoli dat
  • proti : Informuje netcat, aby běžel v podrobném režimu

Chcete -li z tohoto seznamu získat pouze otevřené porty, filtrujte výstup pomocí grep pro výraz úspěšný.

$nc-S -protilocalhost0-65535 2> &1 | rukojeťuspěl

Pokud chcete skenovat protokol UDP, přidejte příznak -u.

$nc-S -proti -ulocalhost0-65535 2> &1 | rukojeťuspěl

Závěrečné myšlenky

Jak bylo ukázáno, v Linuxu existuje mnoho způsobů, jak vyhledávat otevřené porty. Doporučuji vyzkoušet všechny metody, než se rozhodnete, kterou zvládnete. Pokud pravidelně používáte určitý nástroj, jako je netcat nebo nmap, bude osvojení souvisejících metod nejpřínosnější.

Šťastný výpočet!