I nätverk är en port en intressant funktion. Det är ett sätt för nätverkstrafik att identifiera målappen eller tjänsten. Varje process / tjänst får sin unika port. En port kommer alltid att associeras med värdens IP-adress tillsammans med protokollet.
Detta är min favoritmetafor för att beskriva vad en port är. Föreställ dig ett fartyg lastat med last som kommer att resa till ett avlägset land. Vilken information behövs för att nå destinationen ordentligt? För enkelhetens skull, låt oss säga att det behöver landet (IP-adressen) och hamn skeppet kommer att docka.
I den här guiden, kolla in hur du listar öppna portar på Linux.
Portar på Linux
Hamnar fungerar som en slutpunkt för kommunikation. Det är ett 16-bitarsnummer (0 till 65535 i decimal). Medan utbudet är stort, för att underlätta användningen, delas portarna in i tre kategorier. Varje kategori är märkt som intervall för portvärde:
- 0 till 1023: Dessa är de "välkända" portarna, även kända som "System" -portarna, som är reserverade för systemprocesser som erbjuder ett brett utbud av nättjänster. För att binda med en "välkänd" port måste en process ha superanvändarbehörighet.
- 1024 till 49151: Dessa är de "registrerade" portarna, även kända som "användarportarna", som är utsedda av IANA för specifika tjänster. På begäran kan en process ha tillgång till dem. I de flesta system kräver det inte något superanvändarbehörighet för att använda dessa portar.
- 49152 till 65535: Dessa är de "dynamiska" portarna, även kända som de "privata" portarna. Dessa portar kan inte registreras hos IANA. Dessa portar är öppna för användning för privata eller anpassade tjänster och kan också tilldelas automatiskt som kortvariga portar (kortlivade portar som används av IP).
I Linux finns det flera sätt att kontrollera de öppna portarna. Som standard förblir en port stängd såvida inte en app använder den. Om en port är öppen måste den tilldelas en tjänst / process.
Lista öppna portar
Det är lättare att identifiera vilka portar som används snarare än vilka portar som är öppna. Därför kommer följande avsnitt att innehålla metoder för att lista alla portar som för närvarande används. I Linux finns det flera verktyg tillgängliga för uppgiften. De flesta av dem kommer inbyggda i alla Linux-distroer.
Att lära sig vilka portar som för närvarande är öppna kan vara användbart i olika scenarier. Det är möjligt att konfigurera en dedikerad port för en viss applikation. En öppen port kan också vara en stark indikation på intrång i nätverket.
Följande metoder visas på Ubuntu 20.04.1 LTS.
Lista protokoll och öppna portar från / etc / services
/ Etc / services-filen innehåller information om de tjänster som för närvarande körs. Det är en stor fil, så redo att bli överväldigad.
$ cat / etc / services | mindre
Lista öppna portar med hjälp av netstat
Netstat-verktyget är ett verktyg för att visa nätverksanslutningar för TCP, routingtabeller och olika nätverksgränssnitt. Det erbjuder också nätverksprotokollstatistik. Genom att använda netstat kan vi lista alla öppna portar i systemet.
Kör följande netstat-kommando:
$ netstat -atu
Låt oss få en snabb uppdelning av alla flaggor som vi använde i det här kommandot.
- a: Berättar att netstat visar alla uttag
- t: Berättar netstat att lista TCP-portar
- u: Berättar att netstat listar UDP-portar
Här är en annan variant av netstat-kommandot:
$ netstat -lntu
Det finns två nya flaggor som används i kommandot. Vad menar dem?
- l: Berättar att netstat bara skriver ut lyssningsuttagen
- n: Ber om att netstat visar portnumret
För att visa PID för processen som använder en port, använd flaggan “-p”:
$ netstat -lntup
Lista öppna portar med hjälp av ss
SS-verktyget är ett verktyg för att undersöka sockeln. Dess användning liknar netstat.
För att lista de öppna portarna, kör följande ss-kommando:
$ ss -lntu
Flaggorna liknar netstat. De funktioner de beskriver är också ganska lika.
- l: Berättar ss för att visa lyssningsuttag
- n: Berättar för ss att inte försöka lösa tjänstnamn
- t: Berättar ss för att visa TCP-uttag
- u: Berättar ss för att visa UDP-uttag
Lista öppna portar med lsof
Kommandot lsof är att lista öppna filer. Den kan dock också användas för att visa de öppna portarna.
Kör följande lsof-kommando:
$ lsof -i
För att få de öppna portarna i ett specifikt protokoll (TCP, UDP, etc.) definiera det sedan efter “-i” -flaggan, använd:
$ lsof -i
Lista öppna portar med hjälp av nmap
Nmap-verktyget är ett kraftfullt verktyg för nätverksutforskning och säkerhet / portavsökning. Den kan rapportera alla öppna portar i systemet.
För att lista de öppna TCP-portarna, kör följande nmap-kommando. Här är IP-adressen till värddatorn:
$ sudo nmap -sT -p- localhost
Här finns två delar av kommandoargumentet.
- -sT: Detta avsnitt ber nmap att söka efter TCP-portar.
- -sid- : Detta berättar för nmap att söka efter alla 65535-portar. Om den inte används skannar nmap endast 1000 portar som standard.
Om du behöver lista de öppna UDP-portarna, kör sedan följande nmap-kommando:
$ sudo nmap -sU -p- localhost
För att få både de öppna TCP- och UDP-portarna, använd följande kommando:
$ sudo nmap -n -PN -sT -sU -p- localhostLista öppna portar med hjälp av netcat
Netcat-verktyget är ett kommandoradsverktyg för läsning och skrivning av data över nätverksanslutningar via TCP- och UDP-protokollet. Detta verktyg kan också användas för att lista öppna portar. Det kan utföra tester på en viss port eller ett antal portar.
Följande netcat-kommando skannar porten från 1 till 1000. Netcat-kommandot utför som standard skanningen på TCP-protokollet:
$ nc -z -v localhost 1-1000
Det kan också utökas till hela listan över möjliga portar:
$ nc -z -v localhost 1-65535
Låt oss få en snabb uppdelning av flaggorna.
- z: Säger att netcat bara ska söka efter öppna portar utan att skicka data
- v: Berättar att netcat ska köras i ett ordentligt läge
För att bara få de öppna portarna från den här listan, filtrera utdata med grep för termen "lyckades".
$ nc -z -v localhost 0-65535 2> & 1 | grep lyckadesOm du vill utföra skanningen på UDP-protokollet, lägg till "-u" -flaggan.
$ nc -z -v -u localhost 0-65535 2> & 1 | grep lyckadesSlutgiltiga tankar
Som visat finns det massor av sätt att söka efter öppna portar på Linux. Jag föreslår att du testar alla metoder innan du bestämmer vilken du ska behärska. Om du använder ett visst verktyg som netcat eller nmap regelbundet, är det mest fördelaktigt att behärska tillhörande metoder.
Happy computing!