Sådan vises åbne porte på Linux?

How List Open Ports Linux



I netværk er en port en interessant funktion. Det er en måde for netværkstrafik at identificere destinationsappen eller -tjenesten. Hver proces/service får sin unikke port. En port vil altid være tilknyttet værtens IP -adresse sammen med protokollen.

Dette er min yndlingsmetafor til at beskrive, hvad en havn er. Forestil dig et skib lastet med last, som vil rejse til et fjernt land. Hvilke oplysninger er nødvendige for at nå destinationen korrekt? For enkelhedens skyld, lad os sige, at det har brug for landet (IP -adressen) og Havn skibet lægger til.







I denne vejledning kan du se, hvordan du viser åbne porte på Linux.



Porte på Linux

Havne fungerer som et slutpunkt for kommunikation. Det er et 16-bit tal (0 til 65535 i decimal). Selvom rækkevidden er stor, er portene for nem betjening kategoriseret i tre kategorier. Hver kategori er mærket som portværdiintervallet:



  • 0 til 1023: Disse er de velkendte porte, også kendt som systemporte, som er forbeholdt systemprocesser, der tilbyder en lang række netværkstjenester. For at binde til en velkendt port skal en proces have superbrugerrettigheder.
  • 1024 til 49151: Disse er de registrerede porte, også kendt som brugerporte, der er udpeget af IANA til specifikke tjenester. Efter anmodning kan en proces have adgang til dem. I de fleste systemer kræver det ikke nogen superbrugerrettighed at bruge disse porte.
  • 49152 til 65535: Disse er de dynamiske porte, også kendt som de private porte. Disse porte kan ikke registreres hos IANA. Disse porte er åbne for brug til private eller tilpassede tjenester og kan også automatisk tildeles som flygtige porte (kortlivede porte, der bruges af IP).

I Linux er der flere måder at kontrollere de åbne porte. Som standard forbliver enhver port lukket, medmindre en app bruger den. Hvis en port er åben, skal den tildeles en tjeneste/proces.





Liste over åbne porte

Det er lettere at identificere hvilke porte der er i brug frem for hvilke porte der er åbne. Derfor indeholder det følgende afsnit metoder til at liste alle de porte, der er i brug i øjeblikket. I Linux er der flere værktøjer til rådighed for opgaven. De fleste af dem er indbygget i enhver Linux-distro.

At lære, hvilke porte der i øjeblikket er åbne, kan være nyttig i forskellige scenarier. Det er muligt at konfigurere en dedikeret port til et bestemt program. En åben port kan også være en stærk indikation på indtrængen i netværket.



Følgende metoder er demonstreret på Ubuntu 20.04.1 LTS.

Liste over protokoller og åbne porte fra /etc /services

Filen /etc /services indeholder oplysninger om de tjenester, der kører i øjeblikket. Det er en stor fil, så klar til at blive overvældet.

$kat /etc/tjenester| mindre

Liste over åbne porte ved hjælp af netstat

Netstat -værktøjet er et værktøj til visning af netværksforbindelser til TCP, routingtabeller og forskellige netværksgrænseflader. Det tilbyder også netværksprotokolstatistik. Ved at bruge netstat kan vi liste alle systemets åbne porte.

Kør følgende netstat -kommando:

$netstat -atu

Lad os få en hurtig opdeling af alle de flag, vi brugte i denne kommando.

  • til : Fortæller netstat at vise alle stikkontakter
  • t : Fortæller netstat at angive TCP -porte
  • u : Fortæller netstat at angive UDP -porte

Her er en anden variant af netstat -kommandoen:

$netstat -lntu

Der er to nye flag, der bruges i kommandoen. Hvad mener de?

  • det : Fortæller netstat at udskrive kun lytterstikkene
  • n : Fortæller netstat for at vise portnummeret

For at få vist PID for den proces, der bruger en port, skal du bruge -p -flag:

$netstat -Intup

Liste over åbne porte ved hjælp af ss

Ss -værktøjet er et værktøj til at undersøge stikket. Dens anvendelse ligner netstat.

For at få vist de åbne porte skal du køre følgende ss -kommando:

$ss-lntu

Flagene ligner netstat. De funktioner, de beskriver, er også ret ens.

  • det : Fortæller ss for at vise lyttebøsninger
  • n : Fortæller ss om ikke at forsøge at løse servicenavne
  • t : Fortæller ss om at vise TCP -stik
  • u : Fortæller ss at vise UDP -stik

Liste over åbne porte ved hjælp af lsof

Kommandoen lsof er at liste åbne filer. Den kan dog også bruges til visning af de åbne porte.

Kør følgende lsof -kommando:

$lsof-jeg

For at få de åbne porte i en bestemt protokol (TCP, UDP osv.) Og derefter definere den efter -i -flag, skal du bruge:

$lsof-jeg <protokol>

Liste over åbne porte ved hjælp af nmap

NMap -værktøjet er et effektivt værktøj til netværksudforskning og sikkerhed/portscanning. Det kan rapportere alle de åbne porte i systemet.

Kør følgende nmap -kommando for at få vist de åbne TCP -porte. Her er IP -adressen på værtscomputeren:

$sudo nmap -sT -p-lokal vært

Her er der to dele af kommando -argumentet.

  • -sT : Dette afsnit fortæller nmap at scanne efter TCP -porte.
  • -p- : Dette fortæller nmap at scanne efter alle 65535 porte. Hvis den ikke bruges, scanner nmap som standard kun 1000 porte.

Hvis du skal angive de åbne UDP -porte, skal du køre følgende nmap -kommando:

$sudo nmap -det -p-lokal vært

For at få både de åbne TCP- og UDP -porte skal du bruge følgende kommando:

$sudo nmap -n -PN -sT -det -p-lokal vært

Liste over åbne porte ved hjælp af netcat

Netcat -værktøjet er et kommandolinjeværktøj til at læse og skrive data på tværs af netværksforbindelser over TCP- og UDP -protokollerne. Dette værktøj kan også bruges til at vise åbne porte. Det kan udføre test på en bestemt port eller en række porte.

Følgende netcat -kommando scanner porten fra 1 til 1000. Netcat -kommandoen udfører scanningen på TCP -protokollen som standard:

$nc-Med -vlokal vært1-1000

Det kan også udvides til hele listen over mulige havne:

$nc-Med -vlokal vært1-65535

Lad os få en hurtig opdeling af flagene.

  • Med : Fortæller netcat kun at scanne efter åbne porte uden at sende data
  • v : Fortæller netcat at køre i verbose tilstand

For kun at få de åbne porte fra denne liste, filtrer output med grep for udtrykket lykkedes.

$nc-Med -vlokal vært0-65535 2> &1 | greblykkedes

Hvis du vil udføre scanningen på UDP -protokollen, skal du tilføje -u -flag.

$nc-Med -v -ulokal vært0-65535 2> &1 | greblykkedes

Endelige tanker

Som demonstreret er der masser af måder at scanne efter åbne porte på Linux. Jeg foreslår, at du prøver alle metoderne, før du beslutter dig for hvilken en, der skal mestres. Hvis du regelmæssigt bruger et bestemt værktøj som netcat eller nmap, er det mest fordelagtigt at mestre de tilhørende metoder.

God computing!