I netværk er en port en interessant funktion. Det er en måde, hvorpå netværkstrafik kan identificere destinationsappen eller -tjenesten. Hver proces / tjeneste får sin unikke port. En port vil altid være knyttet til værtens IP-adresse sammen med protokollen.
Dette er en af mine yndlingsmetaforer til at beskrive, hvad en havn er. Forestil dig et skib fyldt med gods, der rejser til et fjernt land. Hvilke oplysninger er nødvendige for at nå destinationen korrekt? Af enkelheds skyld skal vi sige, at det har brug for landet (IP-adressen) og Havn skibet lægger til.
I denne vejledning skal du tjekke, hvordan du åbner porte på Linux.
Porte på Linux
Havne fungerer som et slutpunkt for kommunikation. Det er et 16-bit tal (0 til 65535 i decimal). Mens rækkevidden er stor, for at gøre det let at bruge, er porte opdelt i tre kategorier. Hver kategori er mærket som området for portværdi:
- 0 til 1023: Disse er de "velkendte" porte, også kendt som "System" -porte, som er forbeholdt systemprocesser, der tilbyder en bred vifte af netværkstjenester. For at binde med en "velkendt" port skal en proces have superbrugerprivilegium.
- 1024 til 49151: Dette er de "Registrerede" porte, også kendt som "Bruger" -porte, 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 noget superbrugerprivilegium 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 til brug for private eller tilpassede tjenester og kan også tildeles automatisk som kortvarige porte (kortvarige porte brugt af IP).
I Linux er der flere måder at kontrollere de åbne porte på. Som standard forbliver enhver port lukket, medmindre en app bruger den. Hvis en port er åben, skal den tildeles en service / proces.
Liste over åbne porte
Det er lettere at identificere hvilke porte der er i stedet for hvilke porte der er åbne. Derfor indeholder følgende afsnit metoder til at liste alle de porte, der i øjeblikket er i brug. I Linux er der flere værktøjer til rådighed for opgaven. De fleste af dem kommer indbygget i enhver Linux-distro.
At lære, hvilke porte der i øjeblikket er åbne, kan være nyttigt i forskellige scenarier. Det er muligt at konfigurere en dedikeret port til en bestemt applikation. En åben port kan også være en stærk indikation af indtrængen i netværket.
Følgende metoder demonstreres på Ubuntu 20.04.1 LTS.
Liste protokoller og åbne porte fra / etc / services
/ Etc / services-filen indeholder oplysninger om de aktuelt kørende tjenester. Det er en stor fil, så klar til at blive overvældet.
$ cat / etc / services | 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ærksprotokolstatistikker. Ved at bruge netstat kan vi liste alle åbne porte i systemet.
Kør følgende netstat-kommando:
$ netstat -atu
Lad os få en hurtig opdeling af alle de flag, vi brugte i denne kommando.
- -en: Fortæller netstat at vise alle stikkontakter
- t: Fortæller netstat at liste TCP-porte
- u: Fortæller netstat at liste UDP-porte
Her er en anden variation af netstat-kommandoen:
$ netstat -lntu
Der er to nye flag, der bruges i kommandoen. Hvad mener de?
- l: Fortæller netstat at udskrive kun lyttebøsningerne
- n: Fortæller netstat at vise portnummeret
For at få vist PID for processen, der bruger en port, skal du bruge “-p” -flaget:
$ netstat -lntup
Liste over åbne porte ved hjælp af ss
SS-værktøjet er et værktøj til at undersøge soklen. Dets anvendelse svarer til netstat.
For at liste de åbne porte skal du køre følgende ss-kommando:
$ ss -lntu
Flagene ligner netstat. De funktioner, de beskriver, er også ret ens.
- l: Fortæller ss at vise lyttestik
- n: Fortæller ss om ikke at forsøge at løse servicenavne
- t: Fortæller ss at vise TCP-sockets
- u: Fortæller ss at vise UDP-sockets
Liste over åbne porte ved hjælp af lsof
Kommandoen lsof er at liste åbne filer. Det kan dog også bruges til visning af de åbne porte.
Kør følgende lsof-kommando:
$ lsof -i
For at få de åbne porte i en bestemt protokol (TCP, UDP osv.) definer det derefter efter “-i” -flaget, brug:
$ lsof -i
Liste over åbne porte ved hjælp af nmap
Nmap-værktøjet er et kraftfuldt til udforskning af netværk og sikkerhed / port scanning. Det kan rapportere alle de åbne porte i systemet.
Hvis du vil liste de åbne TCP-porte, skal du køre følgende nmap-kommando. Her er IP-adressen på værtscomputeren:
$ sudo nmap -sT -p- localhost
Her er der to dele af kommandoargumentet.
- -sT: Dette afsnit fortæller nmap at scanne efter TCP-porte.
- -s- : Dette fortæller nmap at scanne efter alle 65535 porte. Hvis den ikke bruges, vil nmap kun scanne 1000 porte som standard.
Hvis du har brug for at liste de åbne UDP-porte, skal du køre følgende nmap-kommando:
$ sudo nmap -sU -p- localhost
For at få både de åbne TCP- og UDP-porte skal du bruge følgende kommando:
$ sudo nmap -n -PN -sT -sU -p- localhostListe over åbne porte ved hjælp af netcat
Netcat-værktøjet er et kommandolinjeværktøj til læsning og skrivning af data på tværs af netværksforbindelser via TCP- og UDP-protokollerne. Dette værktøj kan også bruges til at liste åbne porte. Det kan udføre tests på en bestemt port eller en række porte.
Den følgende netcat-kommando scanner porten fra 1 til 1000. Netcat-kommandoen udfører som standard scanningen på TCP-protokol:
$ nc -z -v localhost 1-1000
Det kan også udvides til hele listen over mulige porte:
$ nc -z -v localhost 1-65535
Lad os få en hurtig opdeling af flagene.
- z: Fortæller netcat kun at scanne efter åbne porte uden at sende nogen data
- v: Fortæller netcat at køre i detaljeret tilstand
For kun at få de åbne porte fra denne liste skal du filtrere output med grep til udtrykket "lykkedes".
$ nc -z -v localhost 0-65535 2> & 1 | grep lykkedesHvis du vil udføre scanningen på UDP-protokol, skal du tilføje “-u” -flagget.
$ nc -z -v -u localhost 0-65535 2> & 1 | grep lykkedesAfsluttende tanker
Som demonstreret er der mange måder at scanne efter åbne porte på Linux. Jeg foreslår, at du prøver alle metoderne, inden du beslutter dig for, hvilken du vil mestre. Hvis du bruger et bestemt værktøj som netcat eller nmap regelmæssigt, er det mest fordelagtigt at mestre de tilknyttede metoder.
Glad computing!