Hvordan liste opp åpne porter på Linux?

Hvordan liste opp åpne porter på Linux?

I nettverk er en port en interessant funksjon. Det er en måte for nettverkstrafikk å identifisere destinasjonsappen eller tjenesten. Hver prosess/tjeneste får sin unike port. En port vil alltid være tilknyttet IP -adressen til verten sammen med protokollen.

Dette er en favorittmetafor av meg for å beskrive hva en port er. Se for deg et skip lastet med last, som vil reise til et fjernt land. Hvilken informasjon er nødvendig for å nå destinasjonen riktig? La oss si at det trenger landet (IP -adressen) og havn Skipet vil legge til kai.

I denne guiden, sjekk ut hvordan du lister opp åpne porter på Linux.

Porter på Linux

Porter fungerer som et sluttpunkt for kommunikasjon. Det er et 16-biters nummer (0 til 65535 i desimal). Mens rekkevidden er stort, for brukervennlighet, er porter kategorisert i tre kategorier. Hver kategori er merket som området for portverdi:

  • 0 til 1023: Dette er de "kjente" portene, også kjent som "system" -portene, som er forbeholdt systemprosesser som tilbyr et bredt utvalg av nettverkstjenester. For å binde med en "kjent" havn, må en prosess ha superbruker privilegium.
  • 1024 til 49151: Dette er de "registrerte" portene, også kjent som "bruker" -portene, som er utpekt av IANA for spesifikke tjenester. På forespørsel kan en prosess ha tilgang til dem. Når det gjelder de fleste systemer, krever det ikke noe superbrukerprivilegium å bruke disse portene.
  • 49152 til 65535: Dette er de "dynamiske" portene, også kjent som de "private" portene. Disse portene kan ikke registreres hos IANA. Disse portene er åpne for å bruke for private eller tilpassede tjenester og kan også automatisk tildeles som flyktige porter (kortvarige porter brukt av IP).

I Linux er det flere måter å sjekke de åpne portene. Som standard vil enhver port forbli stengt med mindre en app bruker den. Hvis en port er åpen, må den tilordnes en tjeneste/prosess.

Liste over åpne porter

Det er lettere å identifisere hvilke porter som er i bruk i stedet for hvilke porter som er åpne. Derfor vil følgende avsnitt inneholde metoder for å liste opp alle portene som for øyeblikket er i bruk. I Linux er det flere verktøy tilgjengelig for oppgaven. De fleste av dem kommer innebygd i en hvilken som helst Linux-distro.

Å lære hvilke porter som for øyeblikket er åpne, kan være nyttige i forskjellige scenarier. Det er mulig å konfigurere en dedikert port for en bestemt applikasjon. En åpen port kan også være en sterk indikasjon på inntrenging i nettverket.

Følgende metoder er demonstrert på Ubuntu 20.04.1 lts.

Liste protokoller og åpne porter fra /etc /tjenester

Filen /etc /tjenester inneholder informasjon om de for øyeblikket kjøretjenestene. Det er en stor fil, så klar til å bli overveldet.

$ katt /etc /tjenester | mindre

Liste opp åpne porter ved hjelp av NetStat

NetStat -verktøyet er et verktøy for å vise nettverkstilkoblinger for TCP, rutingstabeller og forskjellige nettverksgrensesnitt. Det tilbyr også nettverksprotokollstatistikk. Ved å bruke NetStat kan vi liste opp alle de åpne portene i systemet.

Kjør følgende NetStat -kommando:

$ netstat -atu

La oss ha en rask oversikt over alle flaggene vi brukte i denne kommandoen.

  • en: Ber Netstat vise alle stikkontakter
  • t: Ber Netstat om å liste opp TCP -porter
  • u: Ber Netstat liste opp UDP -porter

Her er en annen variant av NetStat -kommandoen:

$ netstat -lntu

Det er to nye flagg som brukes i kommandoen. Hva mener de?

  • l: Ber Netstat bare skrive ut lyttingene
  • n: Ber Netstat vise portnummeret

For å vise PID i prosessen som bruker en port, bruk “-P” -flagget:

$ netstat -lntup

Liste opp åpne porter ved hjelp av SS

SS -verktøyet er et verktøy for å undersøke kontakten. Bruken ligner på Netstat.

For å liste opp de åpne portene, kjør følgende SS -kommando:

$ ss -lntu

Flaggene ligner på Netstat. Funksjonene de beskriver er også ganske like.

  • l: Ber SS om å vise lyttingskontakter
  • n: Ber SS om ikke å prøve å løse tjenestenavn
  • t: Ber SS om å vise TCP -stikkontakter
  • u: Ber SS om å vise UDP -stikkontakter

Liste opp åpne porter ved hjelp av LSOF

LSOF -kommandoen er å liste opp åpne filer. Imidlertid kan den også brukes til å vise de åpne portene.

Kjør følgende LSOF -kommando:

$ lsof -i

For å få de åpne portene til en spesifikk protokoll (TCP, UDP, etc.) Definer det deretter etter “-i” -flagget, bruk:

$ lsof -i

Liste opp åpne porter ved hjelp av NMAP

NMAP -verktøyet er kraftig for nettverksutforskning og sikkerhet/portskanning. Den kan rapportere alle de åpne portene i systemet.

For å liste opp de åpne TCP -portene, kjører du følgende NMAP -kommando. Her er IP -adressen til vertsdatamaskinen:

$ sudo nmap -st -p- localhost

Her er det to deler av kommandoargumentet.

  • -st: Denne delen ber NMAP om å skanne etter TCP -porter.
  • -p- : Dette ber NMAP om å skanne etter alle 65535 porter. Hvis ikke brukt, vil NMAP bare skanne 1000 porter som standard.

Hvis du trenger å liste opp de åpne UDP -portene, kan du kjøre følgende NMAP -kommando:

$ sudo nmap -su -p- localhost

For å få både Open TCP- og UDP -portene, bruk følgende kommando:

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

Liste opp åpne porter ved hjelp av netcat

NetCat -verktøyet er et kommandolinjeverktøy for å lese og skrive data på tvers av nettverkstilkoblinger over TCP- og UDP -protokollene. Dette verktøyet kan også brukes til å liste opp åpne porter. Den kan utføre tester på en bestemt port eller en rekke porter.

Følgende netcat -kommando vil skanne porten fra 1 til 1000. NetCat -kommandoen vil utføre skanningen på TCP -protokollen som standard:

$ nc -z -v localhost 1-1000

Det kan også utvides til hele listen over mulige porter:

$ nc -z -v localhost 1-65535

La oss ha en rask oversikt over flaggene.

  • z: Ber Netcat bare skanne etter åpne porter uten å sende noen data
  • v: Ber Netcat om å kjøre i Verbose -modus

For å få bare de åpne portene fra denne listen, filtrer utgangen med grep for begrepet "lyktes".

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

Hvis du vil utføre skanningen på UDP-protokollen, kan du legge til "-u" -flagget.

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

Siste tanker

Som demonstrert er det mange måter å skanne etter åpne porter på Linux. Jeg foreslår å prøve ut alle metodene før du bestemmer hvilken du skal mestre. Hvis du bruker et bestemt verktøy som Netcat eller NMAP regelmessig, vil det være de mest fordelaktige å mestre de tilknyttede metodene.

Glad databehandling!