GNU/Linux >> Znalost Linux >  >> Linux

Efektivní vyhledávání linuxových portů pro správce sítě

Hledáte způsob, jak okořenit zabezpečení vaší sítě? Proč se nenaučit, jak provádět skenování portů Linux jako profesionál?

V tomto tutoriálu se dozvíte o některých nejoblíbenějších nástrojích a technikách a předvídáte potenciální rizika a odměny spojené se skenováním portů.

Zní to slibně? Začněte skenovat porty a zabezpečte svou síť ještě dnes!

Předpoklady

Tento tutoriál bude praktickou ukázkou. Pokud chcete pokračovat, ujistěte se, že máte systém Linux – Tento tutoriál používá Ubuntu 20.04, ale bude fungovat jakákoli moderní distribuce Linuxu.

Vyhledávání otevřených portů pomocí Nmap

Existují různé způsoby skenování portů a Nmap je vynikající nástroj pro zjišťování sítě a bezpečnostní audit. Nmap vám umožňuje najít hostitele a služby v počítačové síti odesíláním paketů a analýzou odpovědí.

Nmap je k dispozici zdarma a je kompatibilní se systémy Windows, Linux a OS X.

Skenování portů vám umožňuje zjistit na serveru nebo hostiteli otevřené porty, což se hodí z různých důvodů:

  • Zjištění, které služby běží na hostiteli.
  • Objevování zranitelných míst
  • Výčet systému.

Ale než začnete využívat Nmap, musíte si nejprve nainstalovat Nmap na váš počítač:

1. Spuštěním příkazu apt update níže aktualizujte index systémových balíčků.

apt update -y

2. Dále spusťte následující příkaz apt install pro instalaci Nmap.

apt install nmap -y

3. Spusťte níže uvedený příkaz nmap –version a zkontrolujte verzi Nmap nainstalovanou na vašem počítači.

nmap --version

Níže je nainstalovaná verze Nmap 7.80, nejnovější vydání tohoto psaní.

4. Nyní spusťte následující příkaz nmap a naskenujte název cílového hostitele nebo IP adresu (scanme.nmap.org). Abyste mohli začít, potřebujete jen minimum možností.

nmap scanme.nmap.org

Níže je rozpis výstupu skenování.:

  • Adresa IPv4 cíle – 45.33.32.156 .
  • Adresa IPv6 cíle (je-li k dispozici) – 2600:3c01::f03c:91ff .
  • Reverzní název DNS (pokud je k dispozici).

Každý port a jeho stav můžete také vidět ve výstupu:

  • otevřené – Indikuje, že port je otevřený a čeká na příchozí připojení.
  • zavřeno – Indikuje, že port je uzavřen a nenaslouchá příchozím připojením.
  • filtrováno – Označuje, že port je filtrován a Nmap nemůže určit, zda je port otevřený nebo zavřený. Nmap odešle sondy na port, ale nedostane žádnou odpověď.

Skenování konkrétních portů

Nmap dělá mnoho věcí na pozadí, aby se pokusil určit stav každého portu. Skenování můžete dále přizpůsobit přidáním možností CLI pro lepší kontrolu, jako je -p volba. Tato možnost vám umožňuje určit, které porty se mají skenovat.

1. Spusťte následující příkaz pro skenování portu 80 v názvu cílového hostitele (scanme.nmap.org). Tento příkaz vám dá vědět, zda je port 80 cílového hostitele otevřený nebo uzavřený.

nmap -p 80 scanme.nmap.org

Níže vidíte, že port 80 je otevřený. Tento stav vám říká, že webový server běží na portu 80.

2. Dále spusťte následující příkaz a použijte veřejné servery DNS společnosti Google (8.8.8.8 a 8.8.4.4) ke skenování portu 80 názvu hostitele (scanme.nmap.org).

Možnost –dns-servers umožňuje určit, které servery DNS se mají použít pro skenování. Tato možnost je užitečná, když chcete skenovat hostitele v jiné síti. Zatímco parametr -v vám poskytuje více informací o kontrole.

nmap --dns-servers -p 80 8.8.8.8,8.8.4.4 -v scanme.nmap.org

Níže můžete vidět, že Nmap používá k překladu názvu hostitele veřejné servery DNS společnosti Google a skenování je úspěšné.

3. Nakonec spusťte níže uvedený příkaz ke skenování portu 80 názvu hostitele (scanme.nmap.org), jak jste to udělali v prvním kroku. Tentokrát ale přidejte volbu -d pro zvýšení úrovně ladění na 3. Tato volba je užitečná pro odstraňování problémů s Nmapem.

Volba -d bere jako argument celé číslo (mezi 0 a 9). Čím vyšší číslo, tím více výstupu ladění uvidíte.

Úroveň 9 je pro vysoce podrobný výstup, což je užitečné pro vývojáře, kteří pracují na Nmap.

nmap -d 3 -p 80 scanme.nmap.org

Skenování portů Pomocí Netcat (Ncat)

Netcat (nc ) je nástroj příkazového řádku pro průzkum sítě, bezpečnostní audit a penetrační testování. Netcat můžete použít k vytvoření jednoduchých TCP a UDP připojení a složitějších SOCKS a HTTP proxy. Ale v tomto tutoriálu budete používat Netcat ke skenování otevřených portů na vzdálených systémech.

1. Spusťte níže uvedený příkaz nc pro vyhledání otevřených portů bez odeslání jakýchkoli dat (-z) z portů 20 až 1000 na 159.89.176.25. Volba -v říká Netcatu, aby byl podrobný, takže můžete vidět, co se děje během kontroly.

nc -z -v 159.89.176.25 20-1000

Rozsah portů lze podle potřeby zvýšit nebo snížit. Ale porty 20-1000 pokrývají širokou škálu běžně používaných portů.

Níže uvedený výstup ukazuje, které porty jsou otevřené a jejich stav připojení je následující:

  • Spojení odmítnuto – Označuje, že připojení bylo odmítnuto odpovídajícím portem, což je pravděpodobně způsobeno tím, že na tomto portu není spuštěna služba – port je uzavřen.
  • Úspěch! – Označuje úspěšné připojení – port je otevřený.

Kromě portu 22 (SSH), který je otevřený na vzdáleném systému, uvidíte také mnoho dalších zpráv, které mohou být nepříjemné. Takže přejděte k následujícímu kroku a filtrujte výstup.

2. Spusťte níže uvedený příkaz grep pro skenování portů 20 až 100 na 159.89.176.25 a zobrazte pouze otevřené porty z každého výsledku skenování, u kterého bylo slovo úspěšné.

Část 2>&1 sděluje shellu, aby přesměroval stderr (deskriptor souboru 2) na stdout (deskriptor souboru 1), takže ve výstupu uvidíte chybovou zprávu, pokud nějaká existuje.

nc -z -v 159.89.176.25 20-100 2>&1 | grep succeeded

Jak můžete vidět níže, je otevřen pouze port 22, který také obsahuje úspěšnou zprávu.

3. Nakonec spusťte stejný příkaz jako ve druhém kroku. Tentokrát však přidejte volbu -u k vyhledání portů UDP, jak je znázorněno níže.

nc -z -v -u 159.89.176.25 20-100 2>&1 | grep succeeded

Pamatujte, že skenování trvá mnohem déle při skenování UDP než TCP portů:

  • Skenování TCP se pokusí navázat spojení s cílovým hostitelem a prohledá všech 65 535 portů, aby zjistilo, které z nich jsou otevřené.
  • Skenování UDP se nepokouší navázat spojení, ale odešle paket UDP na každý z portů cílového hostitele, aby zjistil, které z nich jsou otevřené. Skenování UDP je nižší než skenování TCP, protože odešlete paket a dokončí zpracování chyb a 3-cestný handshake.

Níže můžete vidět, že výstup je prázdný, protože na vzdáleném systému neběží žádné služby UDP.

Testování, zda je port otevřený pomocí skriptu Bash

Zatím jste viděli, jak používat Netcat a Nmap ke skenování otevřených portů v systému. I když jsou tyto nástroje užitečné, nejsou spolehlivé při automatizaci úlohy skenování portů.

Například plánujete vyhledat otevřené porty na 1000 hostitelích. V takovém případě se ruční skenování portů stává únavným a jeho dokončení trvá dlouho. Jak ale automatizujete úlohy skenování portů v Linuxu? Napsání Bash skriptu bude stačit.

Chcete-li vytvořit skript Bash pro automatizaci skenování portů:

1. Otevřete nový soubor ve svém oblíbeném textovém editoru. Pojmenujte soubor, jak chcete, ale pro tento výukový program se soubor nazývá ports.sh.

nano ports.sh

2. Přidejte níže uvedený kód do ports.sh souboru, ale nezapomeňte nahradit hodnoty SERVER a PORT svou vlastní IP adresou nebo názvem hostitele a portem, který chcete skenovat.

Po změně hodnot uložte změny a zavřete editor.

# Defines the server you want to scan. 
SERVER=adamtheautomator.com
# Defines the port to scan.
PORT=443
# Runs the nmap command and assigns the output to the state variable. 
# The grep command filters and displays the output of the nmap command
# with the lines containing the "open" keyword.
state=`nmap -p $PORT $SERVER | grep "$PORT" | grep open`
# Checks if the state variable is blank (port is closed).
if [ -z "$state" ]; then
	# Displays a message if the connection fails.
  echo "Connection to $SERVER on port $PORT has failed"
else
	# Displays a message if the connection succeeded.
  echo "Connection to $SERVER on port $PORT was successful"
	# Exits the script with an exit code of 1 
	# to determine if the script was successful or not.
  exit 1
fi # Ends the if statement

3. Nakonec spusťte níže uvedený příkaz bash a spusťte skript ports.sh.

bash ports.sh

Pokud vše půjde dobře, zobrazí se následující výstup oznamující, že port 443 je otevřen na adamtheautomator.com.

Závěr

V tomto tutoriálu jste se naučili vyhledávat otevřené porty v systému pomocí Netcat a Nmap. Kromě těchto nástrojů jste napsali skript Bash pro automatizaci skenování portů, abyste mohli dělat další úkoly na talíři.

V tuto chvíli již dobře rozumíte tomu, jak používat tyto nástroje ke skenování otevřených portů v systému, abyste mohli udržet svou síť v bezpečí. Ale pro další automatizaci úloh skenování portů, proč nevytvářet úlohy cron pro plánování spouštění vašich skriptů Bash?


Linux
  1. Průvodce linuxovým terminálem pro začátečníky

  2. 8 tipů pro příkazový řádek Linuxu

  3. 8 Linuxových příkazů pro efektivní řízení procesů

  1. Užitečné příklady Linux Dig pro správce sítě

  2. Hledání balíčků pro Kali Linux

  3. Kali na podsystému Windows pro Linux

  1. Odešlete své skeny do počítače se systémem Linux přes vaši síť

  2. 10 Linuxových příkazů pro diagnostiku sítě

  3. Kali Linux pro Gemini PDA