Co znamená otevřený port?
Než se pustíme hlouběji do kontroly otevřených portů, nejprve si povíme, co to znamená. Otevřený port nebo naslouchající port je port, na kterém je spuštěna nějaká aplikace. Spuštěná aplikace naslouchá na nějakém portu a s touto aplikací můžeme komunikovat přes tento naslouchající port. Pokud je aplikace spuštěna na portu a my se pokusíme spustit jinou aplikaci na stejném portu, jádro způsobí chybu. To je jeden z mnoha důvodů, proč před spuštěním aplikací kontrolujeme otevřené porty.
Seznam otevřených portů pomocí nmap
Network Mapper, známý jako nmap, je open source a bezplatný nástroj, který se používá ke skenování portů v systému. Používá se k hledání zranitelností, objevování sítí a hledání otevřených portů. V této části použijeme nmap k získání seznamu otevřených portů v systému. Nejprve aktualizujte mezipaměť na Ubuntu před instalací nmap:
[chráněno e-mailem]: ~ $ sudo apt-get update -yNmap lze nainstalovat pomocí následujícího příkazu v terminálu:
[chráněno e-mailem]: ~ $ sudo apt-get install nmap -yPo instalaci nmap ověřte instalaci kontrolou verze nmap:
[chráněno e-mailem]: ~ $ nmap --verze
Pokud poskytuje verzi nmap, je nainstalována perfektně, jinak zkuste výše uvedené příkazy znovu a správně nainstalujte nmap. Nmap se používá k provádění několika souvisejících se sítěmi a skenování portů je jednou z těchto úloh. Nástroj nmap se používá spolu s mnoha možnostmi. Seznam všech dostupných možností můžeme získat pomocí následujícího příkazu:
[chráněno e-mailem]: ~ $ man nmapChcete-li tedy prohledat svého místního hostitele, použijte níže uvedený zadržený příkaz:
[chráněno e-mailem]: ~ $ sudo nmap localhost
Zobrazí seznam všech otevřených portů na localhost, jak je zobrazeno na obrázku výše. Můžeme také použít nmap ke skenování vzdálených hostitelů:
[chráněno e-mailem]: ~ $ sudo nmap 93.184.216.34Místo IP adresy můžeme také použít název hostitele vzdáleného serveru:
[chráněno e-mailem]: ~ $ sudo nmap www.příklad.comPříkaz nmap lze také použít ke skenování řady IP adres. V příkazu zadejte rozsah adres IP, jako v níže uvedeném příkazu:
[chráněno e-mailem]: ~ $ sudo nmap 192.168.1.1-10Výše uvedený příkaz prohledá všechny adresy IP od 192.168.1.1 až 192.168.1.10 a zobrazí výsledek v terminálu. Pro skenování portů v podsíti můžeme použít nmap následujícím způsobem:
[chráněno e-mailem]: ~ $ sudo nmap 192.168.1.1/24Výše uvedený příkaz prohledá všechny hostitele s IP adresami v podsíti definované v příkazu.
Někdy musíte skenovat porty na náhodných hostitelích, kteří jsou v různých podsítích a nejsou v pořadí, pak je nejlepším řešením napsat soubor hostitelů, do kterého jsou zapsána všechna jména hostitelů, oddělená jednou nebo více mezerami, kartami nebo novými řádky. Tento soubor lze použít s nmap následovně:
[chráněno e-mailem]: ~ $ sudo nmap -iL hostitelé.txt
Můžeme použít nmap ke skenování jednoho portu v systému zadáním portu pomocí příznaku '-p' spolu s nmap, jako v následujícím příkazu:
[chráněno e-mailem]: ~ $ sudo nmap -p 80 localhost
Rozsah portů lze v systému skenovat také pomocí nmap následujícím způsobem:
[chráněno e-mailem]: ~ $ sudo nmap -p 80-85 localhost
Můžeme skenovat všechny porty systému pomocí nmap:
[chráněno e-mailem]: ~ $ sudo nmap -p- localhost
Chcete-li získat seznam nejčastěji otevřených portů ve vašem systému, můžete použít příkaz nmap s příznakem '-F':
[chráněno e-mailem]: ~ $ sudo nmap -F localhost
Porty TCP lze v systému skenovat pomocí nmap pouhým přidáním příznaku '-T' spolu s příkazem nmap:
[chráněno e-mailem]: ~ $ sudo nmap -sT localhost
Podobně pro porty UDP můžete použít příkaz '-U' pomocí příkazu nmap:
[chráněno e-mailem]: ~ $ sudo nmap -sU localhost
Seznam otevřených portů pomocí lsof
Příkaz lsof, známý také jako 'seznam otevřených souborů', se používá k získání informací o otevřených souborech používaných různými procesy v operačních systémech UNIX a LINUX. U většiny distribucí pro Linux je tento nástroj předinstalován. Instalaci lsof můžeme ověřit pouhou kontrolou jeho verze:
[chráněno e-mailem]: ~ $ lsof -v
Pokud verzi nezobrazí, není ve výchozím nastavení nainstalován lsof. Stále jej můžeme nainstalovat pomocí následujících příkazů v terminálu:
[chráněno e-mailem]: ~ $ sudo apt-get update -y[chráněno e-mailem]: ~ $ sudo apt-get install lsof
Můžeme použít příkaz lsof spolu s různými možnostmi. Seznam všech dostupných možností lze zobrazit pomocí následujícího příkazu v terminálu:
[chráněno e-mailem]: ~ $ man lsofNyní v této části použijeme lsof k zobrazení portů systému různými způsoby:
[chráněno e-mailem]: ~ $ sudo lsof -i
Výše uvedený příkaz zobrazil všechny otevřené porty. Můžeme také použít příkaz lsof k zobrazení všech otevřených soketů:
[chráněno e-mailem]: ~ $ sudo lsof -n -P | pozdrav poslouchat
Můžeme vypsat filtrované porty na základě protokolu pomocí lsof. Spuštěním níže uvedeného příkazu zobrazte seznam všech typů připojení TCP:
[chráněno e-mailem]: ~ $ sudo lsof -i tcp
Podobně můžeme vypsat všechny typy připojení UDP pomocí lsof následujícím způsobem:
[chráněno e-mailem]: ~ $ sudo lsof -i udp
Seznam otevřených portů pomocí netstat
Netstat, známý také jako statistika sítě, je program příkazového řádku, který se používá k zobrazení podrobných informací o sítích. Zobrazuje příchozí i odchozí připojení TCP, směrovací tabulky, síťová rozhraní atd. V této části použijeme netstat k vypsání otevřených portů v systému. Nástroj netstat lze nainstalovat spuštěním následujících příkazů:
[chráněno e-mailem]: ~ $ sudo apt-get update -y[chráněno e-mailem]: ~ $ sudo apt-get install net-tools -y
Po spuštění výše uvedených příkazů můžete instalaci ověřit kontrolou verze netstat:
[chráněno e-mailem]: ~ $ netstat --version
Pokud zobrazuje verzi síťových nástrojů, je instalace v pořádku, jinak spusťte instalační příkazy znovu. Chcete-li získat přehled všech dostupných možností, které lze použít, spolu s příkazem netstat, spusťte následující příkaz:
[chráněno e-mailem]: ~ $ man netstatSeznam všech naslouchajících portů můžeme získat pomocí příkazu netstat v Ubuntu spuštěním následujícího příkazu:
[chráněno e-mailem]: ~ $ sudo netstat -l
Příkaz netstat lze také použít k filtrování poslechu portů TCP a UDP pouhým přidáním příznaku spolu s příkazem. Pro poslech TCP portů:
[chráněno e-mailem]: ~ $ sudo netstat -lt
Pro poslech portů UDP použijte následující příkaz:
[chráněno e-mailem]: ~ $ sudo netstat -lu
Chcete-li získat seznam všech naslouchajících portů UNIX, můžete v terminálu spustit následující příkaz:
[chráněno e-mailem]: ~ $ sudo netstat -lx
Seznam otevřených portů pomocí ss
Příkaz ss se používá k zobrazení informací o soketech v systému Linux. Zobrazuje podrobnější informace o soketech než příkaz netstat. Příkaz ss je předinstalován pro většinu distribucí Linuxu, takže jej před použitím nemusíte instalovat. Seznam všech možností, které lze použít spolu s příkazem ss, získáte spuštěním příkazu 'man' s ss:
[chráněno e-mailem]: ~ $ man ssChcete-li získat seznam všech připojení bez ohledu na jejich stav, použijte příkaz ss bez příznaku:
[chráněno e-mailem]: ~ $ sudo ss
Chcete-li získat seznam všech naslouchajících portů, použijte příkaz ss s příznakem '-l'. Příznak '-l' se používá k zobrazení pouze naslouchajících portů:
[chráněno e-mailem]: ~ $ sudo ss -l
K získání všech naslouchajících portů TCP můžeme použít příznak '-t' a '-l' spolu s příkazem ss:
[chráněno e-mailem]: ~ $ sudo ss -lt
Podobně můžeme získat seznam všech naslouchajících portů UDP pomocí příkazu ss spolu s příznaky '-u' a '-l':
[chráněno e-mailem]: ~ $ sudo ss -lu
Příkaz ss lze také použít k získání seznamu všech připojení ke zdrojovému nebo cílovému portu. V následujícím příkladu získáme seznam všech připojení k cílovému nebo zdrojovému portu 22:
[chráněno e-mailem]: ~ $ sudo ss -at '(dport =: 22 nebo sport =: 22)'
Pokud jste se připojili ke vzdálenému systému pomocí ssh, získáte seznam všech příchozích a odchozích připojení.
Závěr
Pro správce systému, profesionály v oblasti zabezpečení a další osoby související s IT je důležité si uvědomit otevřené porty na serverech. Linux je bohatý na nástroje používané k diagnostice sítí a poskytuje mnoho nástrojů, které mohou být užitečné pro různé druhy síťových aktivit. V tomto tutoriálu jsme použili některé nástroje jako netstat, ss, lsof a nmap ke kontrole otevřených portů na Ubuntu. Po absolvování tohoto článku budete moci mnoha způsoby snadno zobrazit seznam všech portů pro poslech na serveru Linux.