Cum se listează porturile deschise pe Linux?

How List Open Ports Linux



În rețea, un port este o caracteristică interesantă. Este o modalitate prin care traficul de rețea identifică aplicația sau serviciul de destinație. Fiecare proces / serviciu primește portul său unic. Un port va fi întotdeauna asociat cu adresa IP a gazdei împreună cu protocolul.

Aceasta este o metaforă a mea preferată pentru a descrie ce este un port. Imaginați-vă o navă încărcată cu marfă, care va călători într-o țară îndepărtată. Ce informații sunt necesare pentru a ajunge la destinație în mod corespunzător? Din motive de simplitate, să presupunem că are nevoie de țară (adresa IP) și de port nava va andoca.







În acest ghid, verificați cum să listați porturile deschise pe Linux.



Porturi pe Linux

Porturile acționează ca un punct final al comunicării. Este un număr de 16 biți (de la 0 la 65535 în zecimal). În timp ce gama este mare, pentru ușurință în utilizare, porturile sunt clasificate în trei categorii. Fiecare categorie este etichetată ca intervalul valorii portului:



  • 0-1023: Acestea sunt porturile cunoscute, cunoscute și sub numele de porturi de sistem, care sunt rezervate proceselor de sistem care oferă o mare varietate de servicii de rețea. Pentru a lega cu un port bine cunoscut, un proces trebuie să aibă privilegiul de superutilizator.
  • 1024 - 49151: Acestea sunt porturile înregistrate, cunoscute și sub numele de porturi de utilizator, care sunt desemnate de IANA pentru servicii specifice. La cerere, un proces poate avea acces la acestea. În cazul majorității sistemelor, nu necesită niciun privilegiu de superutilizator pentru a utiliza aceste porturi.
  • 49152 - 65535: Acestea sunt porturile dinamice, cunoscute și sub numele de porturi private. Aceste porturi nu pot fi înregistrate la IANA. Aceste porturi sunt deschise utilizării pentru servicii private sau personalizate și pot fi, de asemenea, alocate automat ca porturi efemere (porturi de scurtă durată utilizate de IP).

În Linux, există mai multe moduri de verificare a porturilor deschise. În mod implicit, orice port va rămâne închis, cu excepția cazului în care o aplicație îl folosește. Dacă un port este deschis, acesta trebuie să fie atribuit unui serviciu / proces.





Listează porturile deschise

Este mai ușor să identificați ce porturi sunt utilizate, decât ce porturi sunt deschise. De aceea, următoarea secțiune va conține metode de listare a tuturor porturilor utilizate în prezent. În Linux, există mai multe instrumente disponibile pentru sarcină. Majoritatea sunt încorporate în orice distribuție Linux.

Învățarea porturilor care sunt deschise în prezent poate fi utilă în diferite scenarii. Este posibil să configurați un port dedicat pentru o anumită aplicație. Un port deschis poate fi, de asemenea, un indiciu puternic al intruziunii în rețea.



Următoarele metode sunt prezentate pe Ubuntu 20.04.1 LTS.

Listează protocoalele și porturile deschise din / etc / services

Fișierul / etc / services conține informații despre serviciile care rulează în prezent. Este un dosar mare, atât de gata să fii copleșit.

$pisică /etc./Servicii| Mai puțin

Enumerați porturile deschise folosind netstat

Instrumentul netstat este un utilitar pentru afișarea conexiunilor de rețea pentru TCP, tabele de rutare și diverse interfețe de rețea. De asemenea, oferă statistici privind protocolul de rețea. Folosind netstat, putem lista toate porturile deschise ale sistemului.

Rulați următoarea comandă netstat:

$netstat -atu

Să prezentăm rapid o defalcare a tuturor steagurilor pe care le-am folosit în această comandă.

  • la : Spune netstat să afișeze toate soclurile
  • t : Spune netstat să listeze porturile TCP
  • tu : Spune netstat să listeze porturile UDP

Iată o altă variantă a comenzii netstat:

$netstat -lntu

Există două steaguri noi utilizate în comandă. Ce vor sa zica?

  • the : Spune netstat să imprime doar soclurile de ascultare
  • n : Spune netstat să afișeze numărul portului

Pentru a afișa PID-ul procesului care folosește un port, utilizați marcajul -p:

$netstat -Intup

Enumerați porturile deschise folosind ss

Instrumentul ss este un utilitar pentru investigarea socketului. Utilizarea sa este similară cu netstat.

Pentru a lista porturile deschise, rulați următoarea comandă ss:

$ss-lntu

Steagurile sunt similare cu netstat. Funcțiile pe care le descriu sunt, de asemenea, destul de similare.

  • the : Spune ss să afișeze soclurile de ascultare
  • n : Spune ss să nu încerce să rezolve numele serviciilor
  • t : Spune ss să afișeze soclurile TCP
  • tu : Spune ss să afișeze soclurile UDP

Enumerați porturile deschise folosind lsof

Comanda lsof este listarea fișierelor deschise. Cu toate acestea, poate fi folosit și pentru afișarea porturilor deschise.

Rulați următoarea comandă lsof:

$lsof-i

Pentru a obține porturile deschise ale unui anumit protocol (TCP, UDP etc.), apoi definiți-l după steagul -i, utilizați:

$lsof-i <protocol>

Enumerați porturile deschise folosind nmap

Instrumentul nmap este unul puternic pentru explorarea rețelei și securitatea / scanarea porturilor. Poate raporta toate porturile deschise din sistem.

Pentru a lista porturile TCP deschise, rulați următoarea comandă nmap. Aici, adresa IP este a computerului gazdă:

$sudo nmap -Sf -p-gazdă locală

Aici, există două porțiuni ale argumentului de comandă.

  • -Sf : Această secțiune spune nmap să scaneze porturile TCP.
  • -p- : Aceasta îi spune lui nmap să scaneze toate porturile 65535. Dacă nu este utilizat, atunci nmap va scana doar 1000 de porturi în mod implicit.

Dacă trebuie să listați porturile UDP deschise, rulați următoarea comandă nmap:

$sudo nmap -este -p-gazdă locală

Pentru a obține atât porturile TCP cât și UDP deschise, utilizați următoarea comandă:

$sudo nmap -n -PN -Sf -este -p-gazdă locală

Enumerați porturile deschise folosind netcat

Instrumentul netcat este un utilitar de linie de comandă pentru citirea și scrierea datelor pe conexiuni de rețea prin protocoalele TCP și UDP. Acest instrument poate fi utilizat și pentru listarea porturilor deschise. Poate efectua teste pe un anumit port sau o serie de porturi.

Următoarea comandă netcat va scana portul de la 1 la 1000. Comanda netcat va efectua scanarea în mod implicit a protocolului TCP:

$nc-Cu -vgazdă locală1-1000

De asemenea, poate fi extins la întreaga listă de porturi posibile:

$nc-Cu -vgazdă locală1-65535

Să avem o defalcare rapidă a steagurilor.

  • Cu : Spune netcat să scaneze numai pentru porturile deschise fără a trimite date
  • v : Spune netcat să ruleze în modul detaliat

Pentru a obține doar porturile deschise din această listă, filtrați ieșirea cu grep pentru termenul reușit.

$nc-Cu -vgazdă locală0-65535 2> &1 | prinderereușit

Dacă doriți să efectuați scanarea pe protocolul UDP, adăugați steagul -u.

$nc-Cu -v -ugazdă locală0-65535 2> &1 | prinderereușit

Gânduri finale

După cum sa demonstrat, există o mulțime de modalități de scanare a porturilor deschise pe Linux. Vă sugerez să încercați toate metodele înainte de a decide pe care să le stăpâniți. Dacă utilizați în mod regulat un anumit instrument, cum ar fi netcat sau nmap, atunci stăpânirea metodelor asociate va fi cea mai benefică.

Calcul fericit!