Krátce si popíšeme porty v rámci počítačové sítě a dále si povíme, jak můžeme vypsat každý otevřený port v Linuxu.
Port lze definovat jako logickou entitu z hlediska počítačové sítě a softwaru.
Funguje jako komunikační koncový bod pro identifikaci daného procesu nebo aplikace na serveru Operační systém Linux . Port je a 16-bit (o až 65535) číslo, které odlišuje jednu aplikaci od ostatních na různých koncových systémech.
Dva z nejznámějších protokolů internetového přenosu, User Datagram Protocol (UDP) a Transmission Control Protocol (TCP) a další protokoly používají čísla portů pro mnoho relací komunikace (čísla cílových a zdrojových portů ve spojení s cílovou a zdrojovou IP adresou).
Kombinace protokolu, portu a IP adresy jako TCP/UDP se nazývá a zásuvka. Je nutné, aby všechny služby měly specifický socket.
rozvětvené stromy
Kategorie přístavu
Tyto porty jsou pro snadné použití rozděleny do tří kategorií, protože řada portů je velká. Všechny kategorie jsou označeny jako rozsah hodnot portu:
0-1023: Tyto porty jsou dobře známý a zavolal 'Systém' porty. Jsou vyhrazeny pro procesy systému, které poskytují širokou škálu síťových služeb. Proces by měl mít práva superuživatele pro vazbu s jakýmkoliv 'známý' přístav.
1024-49151: Tyto porty jsou 'Registrovaný' a zavolal na 'Uživatel' porty. Jsou určeny přes IANA za jedinečné služby. Proces může mít na požádání autentizaci. Pro použití těchto portů ve většině případů nepotřebuje žádné oprávnění superuživatele.
49152-65535: Tyto porty jsou 'Dynamický' a zavolal na 'Soukromé' porty. Nelze je registrovat IANA. Tyto typy portů jsou otevřené pro použití pro přizpůsobené a soukromé služby a mohou být také přiděleny jako dočasné porty (známé jako krátkodobé porty použité IP) automaticky.
Existuje mnoho způsobů, jak zkontrolovat otevřené porty v Linuxu. Ve výchozím nastavení se port uzavře, pokud jej nepoužije žádná aplikace. Port by měl být přiřazen procesu nebo službě, pokud jsou otevřené.
Otevřete seznam portů
Je snazší zjistit, který port se používá, místo toho, který port je otevřený. Proto níže uvedená část poskytne metody pro výpis všech aktuálně používaných portů.
V Linuxu existuje několik nástrojů pro tento úkol. Většina z nich je k dispozici vestavěný v linuxové distribuci.
Zjištění, který port je aktuálně otevřený, může být užitečné v mnoha situacích. Je možné určit vyhrazený port pro zajištěnou aplikaci. Otevřený port může být silnou indikací narušení v rámci sítě.
Metody se používají na Ubuntu 20.04 LTS které jsou uvedeny níže.
Seznam otevřených portů a protokolů pomocí souboru /etc/services
Soubor, tj. /etc/services obsahuje podrobnosti o běžících službách (aktuálně). Je to velký soubor.
$cat /etc/services | less
Seznam otevřených portů pomocí netstat
The netstat Tento nástroj lze popsat jako nástroj pro zobrazení síťových připojení pro směrovací tabulky, TCP a několik síťových rozhraní. Také usnadňuje statistiku síťového protokolu. Pomocí nástroje netstat bychom mohli vypsat všechny otevřené porty systému.
Můžeme provést následující příkaz:
$ netstat -atu
Pojďme rychle vysvětlit rozdělení každého příznaku, který jsme použili ve výše uvedeném příkazu:
1. a: Tento příznak informuje netstat pro zobrazení každého soketu.
2. t: Tento příznak informuje netstat pro výpis TCP portů.
3. v: Tento příznak informuje netstat pro výpis portů UDP.
The netstat příkaz má další variantu, která je uvedena níže:
$ netstat -lntu
Ve výše uvedeném příkazu jsou nové dva příznaky, což je vysvětleno následovně:
1. l: Tento příznak informuje netstat pro tisk pouze naslouchacích soketů.
2. n: Tento příznak informuje netstat pro zobrazení čísla portu.
Můžeme použít vlajku, tj. '-p' pro zobrazení PID procesu, který používá libovolný port.
$ netstat -lntup
Lokálně zkontrolujte otevřené porty
Příkaz netstat je k dispozici na každém operačním systému počítače pro monitorování síťových připojení. Níže uvedený příkaz použije netstat pro zobrazení každého naslouchajícího portu s protokolem TCP:
netstat -lt
Pojďme stručně definovat příznaky, které jsou přítomny ve výše uvedeném příkazu:
1. -l: Uvádí seznam naslouchacích portů.
2. -t: Specifikuje protokol TCP.
Výsledek je dobře uspořádán ve sloupcích zobrazujících protokol, přátelské k lidem, odeslané a přijaté pakety, stav portu, vzdálené a místní IP adresy.
Pokud upravíme protokol TCP pro protokol UDP, bude výstup zobrazovat pouze otevřené porty. Výsledek se zobrazí bez popisu stavu kvůli rozporu s protokolem TCP.
netstat -lu
Můžeme ignorovat popisování protokolů a použít pouze volbu --listen nebo -l pro získání podrobností o každém portu, který volně naslouchá protokolu:
netstat --listen
Výše uvedená možnost zobrazí podrobnosti o protokolech soketů Unix, UDP a TCP.
Každý příklad výše ukazuje, jak vytisknout podrobnosti přes naslouchající porty bez autorizovaných připojení. Níže uvedené příkazy ukazují, jak zobrazit naslouchající porty a autorizovaná připojení.
netstat -vatn
Kde:
1. -v: Používá se pro výřečnost.
2. -a: Zobrazuje aktivní připojení.
inicializátor slovníku c#
3. -t: Zobrazuje připojení TCP.
4. -n: Zobrazuje porty (číselná hodnota).
Řekněme, že v našem systému rozpoznáme podezřelý proces a přejeme si zkontrolovat související porty k němu. Můžeme použít příkaz lsof, který se používá pro výpis otevřených souborů souvisejících s procesy.
lsof -i 4 -a -p
Kde,
1. -i: Uvádí seznam souborů spolupracujících s internetem 6 možnost je k dispozici pro IPv6, a 4 pokyny pouze pro tisk IPv4.
2. -a: Dává pokyn, aby byl výsledek Ty jsi dal.
3. -p: Specifikuje číslo PID procesu, které chceme zkontrolovat.
Seznam otevřených portů s ss
The ss nástroj může být specifikován jako nástroj pro prozkoumání zásuvky. Použití tohoto nástroje je stejné jako u netstat příkaz.
Pro výpis otevřených portů můžeme spustit následující příkaz:
$ ss -lntu
Výše uvedené příznaky jsou stejné jako netstat příkaz. Funkce, které popisuje nástroj ss, jsou také zcela stejné.
1. l: Tento příznak informuje ss pro zobrazení naslouchacích soketů.
2. n: Tento příznak informuje ss, aby se nepokoušel uzavřít názvy služeb.
3. t: Tento příznak informuje ss pro zobrazení soketů TCP.
4. v: Tento příznak informuje ss pro zobrazení soketů UDP.
Seznam otevřených portů pomocí lsof
Příkaz lsof lze použít pro výpis otevřených souborů. Lze jej však použít také k zobrazení otevřených portů.
Můžeme provést následující příkaz:
$ lsof -i
Chcete-li získat otevřené porty konkrétního protokolu (UDP, TCP atd.), zadejte je po použití '-i' flag, můžeme provést následující příkaz:
$ lsof -i
Seznam otevřených portů pomocí nmap
Příkaz nmap lze definovat jako silný pro skenování portů/zabezpečení a průzkum sítě. Může také hlásit každý otevřený port v systému.
Pro výpis otevřených TCP portů můžeme provést následující příkaz.
$ sudo nmap -sT -p- localhost
Tento příkaz, který je zmíněn výše, má dvě části:
1. -sT: Informuje nástroj nmap pro skenování TCP porty.
2. -p-: Informuje nástroj nmap pro skenování každý 65535 porty. Nástroj nmap prohledá 1000 porty pouze ve výchozím nastavení, pokud nejsou používány.
Pokud požadujeme vypsat seznam otevřených portů UDP, můžeme provést následující příkaz:
$ sudo nmap -sU -p- localhost
Můžeme také provést následující příkaz pro získání portů UDP i TCP:
$ sudo nmap -n -PN -sT -sU -p- localhost
Seznam otevřených portů pomocí netcat
Nástroj netcat lze popsat jako nástroj příkazového řádku pro čtení a zápis dat přes mnoho síťových připojení na protokolech UDP a TCP. Lze jej také použít k zobrazení seznamu otevřených portů. Tento nástroj může implementovat testy na konkrétním portu nebo na různých portech.
Níže uvedený příkaz netcat se používá pro skenování portu z 1-1000. Ve výchozím nastavení bude implementovat skenování přes protokol TCP:
$ nc -z -v localhost 1-1000
Může být také rozšířen na celý seznam určitých portů:
$ nc -z -v localhost 1-65535
Pojďme si tyto příznaky rychle rozebrat.
1. od: Informuje příkaz netcat pouze pro skenování otevřených portů bez přenosu jakýchkoli dat.
2. v: Informuje příkaz netcat pro spuštění v podrobném režimu.
výpočet držby v excelu
Výsledek můžeme filtrovat pomocí grep na termín 'uspěl' pro získání pouze otevřených portů prostřednictvím tohoto seznamu.
$ nc -z -v 127.0.0.1 20-80 | grep succeeded
Pokud chceme implementovat skenování přes protokol UDP, Můžeme zahrnout '-v' vlajka.
$ nc -z -v -u localhost 0-65535 2>&1 | grep succeeded