logo

Jak sprawdzić otwarte porty w systemie Linux

W skrócie opiszemy porty w sieci komputerowej, a dalej porozmawiamy o tym, jak możemy wyświetlić listę wszystkich otwartych portów w systemie Linux.

Port można zdefiniować jako jednostkę logiczną w kategoriach sieci komputerowych i oprogramowania.

Pełni funkcję końcowego punktu komunikacyjnego umożliwiającego identyfikację danego procesu lub aplikacji w sieci System operacyjny Linux . Port to A 16-bitowy (od do 65535) liczba odróżniająca pojedynczą aplikację od innych w różnych systemach końcowych.

Dwa z najbardziej znanych protokołów transportu internetowego, Protokół datagramów użytkownika (UDP) I Protokół kontroli transmisji (TCP) i inne protokoły stosują numery portów dla wielu sesji komunikacyjnych (numery portów docelowych i źródłowych w połączeniu z docelowymi i źródłowymi adresami IP).

Kombinacja protokołu, portu i adresu IP, np TCP/UDP nazywa się gniazdo elektryczne. Konieczne jest, aby wszystkie usługi miały określone gniazdo.

kiedy pojawił się system Windows 7

Kategorie Portu

Porty te podzielono na trzy kategorie, aby ułatwić korzystanie z nich, ponieważ różnorodność portów jest duża. Wszystkie kategorie są oznaczone jako zakres wartości portów:

0-1023: Te porty są dobrze znane i zadzwonił 'System' porty. Są one zarezerwowane dla procesów systemu, które dostarczają ogromny zakres usług sieciowych. Proces powinien mieć uprawnienia superużytkownika do łączenia się z dowolnymi procesami 'Dobrze znane' Port.

1024-49151: Te porty są 'Zarejestrowany' i zadzwonił 'Użytkownik' porty. Są wyznaczane przez IANA za wyjątkowe usługi. Proces może mieć uwierzytelnienie na żądanie. W przypadku większości systemów korzystanie z tych portów nie wymaga żadnych uprawnień superużytkownika.

49152-65535: Te porty są 'Dynamiczny' i zadzwonił 'Prywatny' porty. Nie można ich zarejestrować IANA. Tego typu porty są otwarte do wykorzystania w przypadku usług niestandardowych i prywatnych i mogą być również przydzielane jako porty efemeryczne (tzw. krótkotrwały porty stosowane przez IP) automatycznie.

Istnieje wiele sposobów sprawdzania otwartych portów w systemie Linux. Domyślnie port zostanie zamknięty, chyba że zastosuje go jakakolwiek aplikacja. Port powinien być przypisany do procesu lub usługi, jeśli jest otwarty.

Otwórz listę portów

Łatwiej jest dowiedzieć się, który port jest używany, niż który port jest otwarty. Dlatego w poniższej sekcji przedstawiono metody wyświetlania listy każdego aktualnie używanego portu.

W systemie Linux dostępnych jest kilka narzędzi do tego zadania. Większość z nich jest dostępna wbudowany w dystrybucji Linuksa.

Dowiedzenie się, który port jest aktualnie otwarty, może być pomocne w wielu scenariuszach. Istnieje możliwość określenia dedykowanego portu dla zabezpieczanej aplikacji. Otwarty port może być silną oznaką włamania do sieci.

Metody są stosowane Ubuntu 20.04 LTS które są wymienione poniżej.

Wyświetl listę otwartych portów i protokołów za pomocą pliku /etc/services

Plik, tj. /etc/usługi zawiera szczegółowe informacje na temat uruchomionych usług (obecnie). Jest to duży plik.

 $cat /etc/services | less 

Jak sprawdzić otwarte porty w systemie Linux

Wyświetl listę otwartych portów za pomocą netstat

The netstat narzędzie można opisać jako narzędzie do wyświetlania połączeń sieciowych dla tablic routingu, protokołu TCP i kilku interfejsów sieciowych. Ułatwia także statystykę protokołu sieciowego. Za pomocą narzędzia netstat możemy wyświetlić listę wszystkich otwartych portów systemu.

Możemy wykonać poniższe polecenie:

 $ netstat -atu 

Jak sprawdzić otwarte porty w systemie Linux

Wyjaśnijmy szybko podział każdej flagi, której użyliśmy w powyższym poleceniu:

1. a: Ta flaga informuje netstat o wyświetlaniu każdego gniazda.

2. t: Ta flaga informuje netstat o wyświetlaniu listy portów TCP.

3. w: Ta flaga informuje netstat o wyświetlaniu listy portów UDP.

The netstat polecenie ma inną odmianę, o której mowa poniżej:

 $ netstat -lntu 

Jak sprawdzić otwarte porty w systemie Linux

W powyższym poleceniu dwie flagi są nowością, co wyjaśniono w następujący sposób:

1. l: Ta flaga informuje netstat o drukowaniu tylko gniazd nasłuchujących.

2. n: Ta flaga informuje netstat o pokazywaniu numeru portu.

Możemy użyć flagi, tj. '-P' aby wyświetlić PID procesu korzystającego z dowolnego portu.

 $ netstat -lntup 

Jak sprawdzić otwarte porty w systemie Linux

Sprawdź otwarte porty lokalnie

Polecenie netstat jest dostępne w każdym systemie operacyjnym komputera i służy do monitorowania połączeń sieciowych. Poniższe polecenie stosuje netstat do wyświetlenia każdego portu nasłuchującego z protokołem TCP:

 netstat -lt 

Jak sprawdzić otwarte porty w systemie Linux

Zdefiniujmy pokrótce flagi obecne w powyższym poleceniu:

1. -l: Zawiera listę portów nasłuchujących.

2. -t: Określa protokół TCP.

Wynik jest dobrze uporządkowany w kolumnach wyświetlających protokół, przyjazne dla człowieka, wysłane i odebrane pakiety, stan portu, zdalne i lokalne adresy IP.

Jeśli zmodyfikujemy protokół TCP dla protokołu UDP, wówczas na wyjściu będą widoczne tylko otwarte porty. Wynik zostanie wyświetlony bez opisu stanu ze względu na sprzeczność z protokołem TCP.

 netstat -lu 

Jak sprawdzić otwarte porty w systemie Linux

Możemy zignorować opisywanie protokołów i zastosować jedynie opcję --listen lub -l, aby uzyskać szczegółowe informacje na temat każdego portu nasłuchującego swobodnie protokołu:

 netstat --listen 

Jak sprawdzić otwarte porty w systemie Linux

Powyższa opcja pokaże szczegóły protokołów gniazd Unix, UDP i TCP.

Każdy powyższy przykład pokazuje, jak wydrukować szczegóły na portach nasłuchujących bez autoryzowanych połączeń. Poniższe polecenia pokazują, jak wyświetlić porty nasłuchujące i autoryzowane połączenia.

 netstat -vatn 

Jak sprawdzić otwarte porty w systemie Linux

Gdzie:

1 w: Służy do gadatliwości.

2. -a: Wyświetla aktywne połączenia.

3. -t: Wyświetla połączenia TCP.

4. -n: Wyświetla porty (wartość liczbowa).

co to jest mapa Java

Załóżmy, że rozpoznaliśmy podejrzany proces w naszym systemie i chcemy sprawdzić powiązane z nim porty. Możemy użyć polecenia lsof, które służy do wyświetlania otwartych plików związanych z procesami.

 lsof -i 4 -a -p 

Gdzie,

1. -i: Zawiera listę plików współpracujących z Internetem, 6 opcja jest dostępna dla IPv6, i 4 opcja instruuje tylko drukowanie IPv4.

2. -a: Instruuje, jaki ma być wynik Daliście.

3. -p: Określa numer PID procesu, który chcemy sprawdzić.

Wyświetl listę otwartych portów za pomocą ss

The SS narzędzie można określić jako narzędzie do sprawdzania gniazda. Sposób użycia tego narzędzia jest taki sam jak w przypadku netstat Komenda.

Możemy uruchomić poniższe polecenie, aby wyświetlić listę otwartych portów:

 $ ss -lntu 

Jak sprawdzić otwarte porty w systemie Linux

Powyższe flagi są takie same jak flagi netstat Komenda. Funkcje opisane przez narzędzie ss są również takie same.

1. l: Ta flaga informuje ss o wyświetlaniu gniazd nasłuchujących.

2. n: Ta flaga informuje ss, aby nie próbował kończyć nazw usług.

3. t: Ta flaga informuje ss o wyświetlaniu gniazd TCP.

4. w: Ta flaga informuje ss o wyświetlaniu gniazd UDP.

Wyświetl listę otwartych portów za pomocą lsof

Do wyświetlenia listy otwartych plików można użyć polecenia lsof. Można go jednak również używać do wyświetlania otwartych portów.

Możemy wykonać następujące polecenie:

 $ lsof -i 

Jak sprawdzić otwarte porty w systemie Linux

Aby uzyskać otwarte porty określonego protokołu (UDP, TCP itp.), określ je po użyciu '-I' flagę, możemy wykonać następujące polecenie:

 $ lsof -i 

Wyświetl listę otwartych portów za pomocą nmap

Polecenie nmap można zdefiniować jako silne w przypadku skanowania portów/bezpieczeństwa i eksploracji sieci. Może także raportować każdy otwarty port w systemie.

Możemy wykonać następujące polecenie, aby wyświetlić listę otwartych portów TCP.

 $ sudo nmap -sT -p- localhost 

Jak sprawdzić otwarte porty w systemie Linux

Istnieją dwie sekcje tego polecenia, o których mowa powyżej:

1. -st: Informuje narzędzie nmap o konieczności skanowania TCP porty.

2. -p-: Informuje narzędzie nmap o konieczności skanowania każdego 65535 porty. Narzędzie nmap przeskanuje 1000 porty tylko domyślnie, jeśli nie są używane.

Jeśli chcemy wyświetlić listę otwartych portów UDP, możemy wykonać następujące polecenie:

 $ sudo nmap -sU -p- localhost 

Jak sprawdzić otwarte porty w systemie Linux

Możemy również wykonać następujące polecenie, aby uzyskać zarówno porty UDP, jak i TCP:

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

Jak sprawdzić otwarte porty w systemie Linux

Wyświetl listę otwartych portów za pomocą netcat

Narzędzie netcat można opisać jako narzędzie wiersza poleceń umożliwiające odczyt i zapis danych w wielu połączeniach sieciowych w protokołach UDP i TCP. Można go również użyć do wyświetlenia listy otwartych portów. To narzędzie może wdrożyć testy na określonym porcie lub na różnych portach.

Poniższe polecenie netcat służy do skanowania portu z 1-1000. Domyślnie zaimplementuje skanowanie przez protokół TCP:

 $ nc -z -v localhost 1-1000 

Jak sprawdzić otwarte porty w systemie Linux

Można go również rozszerzyć na całą listę niektórych portów:

 $ nc -z -v localhost 1-65535 

Jak sprawdzić otwarte porty w systemie Linux

Przeanalizujmy szybko te flagi.

1. z: Informuje polecenie netcat o skanowaniu tylko otwartych portów, bez przesyłania jakichkolwiek danych.

2. w: Informuje polecenie netcat o konieczności działania w trybie szczegółowym.

if-else Java

Możemy przefiltrować wynik za pomocą grep dla terminu „udało się” aby uzyskać tylko otwarte porty z tej listy.

 $ nc -z -v 127.0.0.1 20-80 | grep succeeded 

Jak sprawdzić otwarte porty w systemie Linux

Jeśli chcemy zaimplementować skanowanie przez protokół UDP, . Możemy uwzględnić '-W' flaga.

 $ nc -z -v -u localhost 0-65535 2>&1 | grep succeeded