Jak wymienić otwarte porty na Linux?

Jak wymienić otwarte porty na Linux?

W sieci, port jest interesującą cechą. To sposób na zidentyfikowanie ruchu sieciowego lub usługi docelowej. Każdy proces/usługa otrzymuje unikalny port. Port będzie zawsze powiązany z adresem IP hosta wraz z protokołem.

To moja ulubiona metafora, aby opisać, czym jest port. Wyobraź sobie statek załadowany ładunkiem, który będzie podróżował do odległej ziemi. Jakie informacje są potrzebne, aby właściwe dotarcie do miejsca docelowego? Ze względu na prostotę powiedzmy, że potrzebuje kraju (adres IP) i Port statek dokuje.

W tym przewodniku sprawdź, jak wymienić otwarte porty w Linux.

Porty w Linux

Porty działają jako punkt końcowy komunikacji. To liczba 16-bitowa (od 0 do 65535 w dziesięciu). Chociaż zakres jest duży, dla łatwości użytkowania, porty są podzielone na trzy kategorie. Każda kategoria jest oznaczona jako zakres wartości portu:

  • 0 do 1023: Są to „dobrze znane” porty, znane również jako porty „systemowe”, które są zarezerwowane dla procesów systemowych, które oferują szeroką gamę usług sieciowych. Aby wiązać się z „dobrze znanym” portem, proces musi mieć uprawnienia Superuser.
  • 1024 do 49151: Są to „zarejestrowane” porty, znane również jako porty „użytkownika”, które są oznaczone przez IANA dla określonych usług. Na żądanie proces może mieć do nich dostęp. W przypadku większości systemów nie wymaga żadnego uprawnienia do superuseru, aby korzystać z tych portów.
  • 49152 do 65535: Są to porty „dynamiczne”, znane również jako porty „prywatne”. Portów tych nie można zarejestrować w IANA. Porty te są otwarte na korzystanie z usług prywatnych lub dostosowanych i mogą być również automatycznie przydzielane jako efemeryczne porty (krótkotrwałe porty używane przez IP).

W Linux istnieje wiele sposobów sprawdzania otwartych portów. Domyślnie każdy port pozostanie zamknięty, chyba że aplikacja go używa. Jeśli port jest otwarty, należy go przypisać do usługi/procesu.

Wypisz otwarte porty

Łatwiej jest określić, które porty są używane, niż które porty są otwarte. Dlatego następna sekcja będzie zawierać metody wymieniania wszystkich obecnie używanych portów. W Linux dostępnych jest wiele narzędzi do tego zadania. Większość z nich jest wbudowana w dowolnej dystrybucji Linux.

Uczenie się, które porty są obecnie otwarte, może być przydatne w różnych scenariuszach. Możliwe jest skonfigurowanie dedykowanego portu dla określonej aplikacji. Otwarty port może być również silnym wskazaniem wtargnięcia w sieci.

Na Ubuntu 20 pokazano następujące metody.04.1 lts.

Protokoły na liście i otwarte porty z /etc /usługi

Plik /etc /usługi zawiera informacje o aktualnie uruchomionych usługach. To duży plik, więc gotowy na przytłoczenie.

$ cat /etc /usługi | mniej

Wymień otwarte porty za pomocą NetStat

Narzędzie NetStat to narzędzie do wyświetlania połączeń sieciowych dla TCP, tabel routingu i różnych interfejsów sieciowych. Oferuje również statystyki protokołu sieciowego. Korzystając z NetStat, możemy wymienić wszystkie otwarte porty systemu.

Uruchom następujące polecenie NetStat:

$ netstat -atu

Miejmy szybki podział wszystkich flag, których użyliśmy w tym poleceniu.

  • A: Mówi Netstat, aby pokazał wszystkie gniazda
  • T: Informuje Netstat, aby wymienił porty TCP
  • u: Mówi NetStat, aby wymienić porty UDP

Oto kolejna odmiana polecenia NetStat:

$ netstat -lntu

W poleceniu używane są dwie nowe flagi. Co mieli na myśli?

  • L: Mówi Netstat, aby wydrukował tylko gniazda słuchania
  • N: Mówi Netstat, aby pokazał numer portu

Aby wyświetlić PID procesu, który korzysta z portu, użyj flagi „-p”:

$ netstat -lntup

Wymień otwarte porty za pomocą SS

Narzędzie SS jest narzędziem do badania gniazda. Jego użycie jest podobne do Netstat.

Aby wymienić otwarte porty, uruchom następujące polecenie SS:

$ ss -lntu

Flagi są podobne do Netstat. Funkcje, które opisują, są również dość podobne.

  • L: Mówi SS, aby wyświetlał gniazda słuchania
  • N: Mówi SS, aby nie próbował rozwiązywać nazw usług
  • T: Mówi SS, aby wyświetlać gniazda TCP
  • u: Mówi SS, aby wyświetlać gniazda UDP

Wymień otwarte porty za pomocą LSOF

Poleceniem LSOF jest wymienienie otwartych plików. Można go jednak również używać do wyświetlania otwartych portów.

Uruchom następujące polecenie LSOF:

$ lsof -i

Aby uzyskać otwarte porty określonego protokołu (TCP, UDP itp.) Następnie zdefiniuj go po flagie „-i”, użyj:

$ lsof -i

Wymień otwarte porty za pomocą NMAP

Narzędzie NMAP jest potężne do eksploracji sieci i skanowania bezpieczeństwa/portów. Może zgłaszać wszystkie otwarte porty w systemie.

Aby wymienić otwarte porty TCP, uruchom następujące polecenie NMAP. Tutaj adres IP jest komputera hosta:

$ sudo nmap -st -p- localhost

Tutaj istnieją dwie części argumentu poleceń.

  • -St: Ta sekcja mówi NMAP, aby skanował w poszukiwaniu portów TCP.
  • -P- : To mówi NMAP, żeby skanował dla wszystkich 65535 portów. Jeśli nie jest używany, NMAP domyślnie skanuje tylko 1000 portów.

Jeśli musisz wymienić otwarte porty UDP, uruchom następujące polecenie NMAP:

$ sudo nmap -su -p- localhost

Aby uzyskać zarówno otwarte porty TCP, jak i UDP, użyj następującego polecenia:

$ sudo nmap -n -pn -st -su -p- localhost

Wymień otwarte porty za pomocą Netcat

Narzędzie NETCAT to narzędzie wiersza poleceń do odczytu i zapisywania danych w połączeniach sieciowych przez protokoły TCP i UDP. To narzędzie można również użyć do wyświetlania otwartych portów. Może wykonywać testy na określonym porcie lub zakresie portów.

Następujące polecenie NetCat skanuje port od 1 do 1000. Polecenie NETCAT domyślnie przeprowadzi skanowanie protokołu TCP:

$ nc -z -v localhost 1-1000

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

$ nc -z -v localhost 1-65535

Zróbmy szybki podział flag.

  • z: Informuje Netcat, aby skanował tylko w poszukiwaniu otwartych portów bez wysyłania danych
  • v: Mówi Netcat, aby działał w trybie wetbose

Aby uzyskać tylko otwarte porty z tej listy, filtruj dane wyjściowe z GREP dla terminu „sukces”.

$ nc -z -v localhost 0-65535 2> i 1 | Grep się udało

Jeśli chcesz wykonać skanowanie protokołu UDP, dodaj flagę „-u”.

$ nc -z -v -u localhost 0-65535 2> i 1 | Grep się udało

Końcowe przemyślenia

Jak pokazano, istnieje mnóstwo sposobów skanowania w poszukiwaniu otwartych portów w Linux. Sugeruję wypróbowanie wszystkich metod, zanim zdecydujesz, który opanować. Jeśli używasz określonego narzędzia, takiego jak NETCAT lub NMAP regularnie, opanowanie powiązanych metod będzie najbardziej korzystne.

Szczęśliwy komputer!