Hoe open poorten op Linux te vermelden?

How List Open Ports Linux



Bij netwerken is een poort een interessante functie. Het is een manier voor netwerkverkeer om de bestemmingsapp of -service te identificeren. Elk proces/service krijgt zijn unieke poort. Een poort wordt altijd gekoppeld aan het IP-adres van de host samen met het protocol.

Dit is een favoriete metafoor van mij om te beschrijven wat een haven is. Stel je een schip voor, geladen met vracht, dat naar een ver land zal reizen. Welke informatie is nodig om de bestemming goed te bereiken? Laten we voor de eenvoud zeggen dat het het land (het IP-adres) en de haven het schip zal aanmeren.







Bekijk in deze handleiding hoe u open poorten op Linux kunt vermelden.



Poorten op Linux

Poorten fungeren als een eindpunt van communicatie. Het is een 16-bits getal (0 tot 65535 in decimaal). Hoewel het bereik groot is, zijn poorten voor het gebruiksgemak onderverdeeld in drie categorieën. Elke categorie wordt aangeduid als het bereik van de poortwaarde:



  • 0 tot 1023: Dit zijn de bekende poorten, ook wel systeempoorten genoemd, die zijn gereserveerd voor systeemprocessen die een breed scala aan netwerkservices bieden. Om te binden met een bekende poort, moet een proces superuser-privileges hebben.
  • 1024 tot 49151: Dit zijn de Geregistreerde poorten, ook wel Gebruikerspoorten genoemd, die door IANA zijn aangewezen voor specifieke diensten. Op verzoek kan een proces hier toegang toe krijgen. In het geval van de meeste systemen is er geen superuser-privilege vereist om deze poorten te gebruiken.
  • 49152 tot 65535: Dit zijn de dynamische poorten, ook wel de privépoorten genoemd. Deze poorten kunnen niet worden geregistreerd bij IANA. Deze poorten kunnen worden gebruikt voor privé- of aangepaste services en kunnen ook automatisch worden toegewezen als tijdelijke poorten (poorten met een korte levensduur die door IP worden gebruikt).

In Linux zijn er meerdere manieren om de open poorten te controleren. Standaard blijft elke poort gesloten, tenzij een app deze gebruikt. Als een poort open is, moet deze worden toegewezen aan een service/proces.





Lijst open poorten

Het is gemakkelijker om te identificeren welke poorten in gebruik zijn dan welke poorten open zijn. Daarom bevat het volgende gedeelte methoden om alle poorten op te sommen die momenteel in gebruik zijn. In Linux zijn er meerdere tools beschikbaar voor de taak. De meeste zijn ingebouwd in elke Linux-distro.

Leren welke poorten momenteel open zijn, kan in verschillende scenario's nuttig zijn. Het is mogelijk om een ​​speciale poort te configureren voor een bepaalde toepassing. Een open poort kan ook een sterke indicatie zijn van inbraak in het netwerk.



De volgende methoden worden gedemonstreerd op Ubuntu 20.04.1 LTS.

Lijst met protocollen en open poorten van /etc/services

Het bestand /etc/services bevat informatie over de momenteel actieve services. Het is een groot bestand, dus klaar om overweldigd te raken.

$kat /enzovoort/Diensten| minder

Lijst met open poorten met netstat

De netstat-tool is een hulpprogramma voor het weergeven van netwerkverbindingen voor TCP, routeringstabellen en verschillende netwerkinterfaces. Het biedt ook netwerkprotocolstatistieken. Door netstat te gebruiken, kunnen we alle open poorten van het systeem weergeven.

Voer de volgende netstat-opdracht uit:

$netstat -atu

Laten we een snel overzicht geven van alle vlaggen die we in deze opdracht hebben gebruikt.

  • tot : Vertelt netstat om alle sockets te tonen
  • t : Vertelt netstat om TCP-poorten weer te geven
  • jij : vertelt netstat om UDP-poorten weer te geven

Hier is nog een variant van het netstat-commando:

$netstat -Intu

Er zijn twee nieuwe vlaggen gebruikt in de opdracht. Wat bedoelen ze?

  • de : Vertelt netstat om alleen de luistersockets af te drukken
  • N : Vertelt netstat om het poortnummer te tonen

Gebruik de vlag -p om de PID weer te geven van het proces dat een poort gebruikt:

$netstat -Intup

Lijst met open poorten met ss

De ss-tool is een hulpprogramma voor het onderzoeken van socket. Het gebruik ervan is vergelijkbaar met netstat.

Voer de volgende ss-opdracht uit om de open poorten weer te geven:

$ss-Intu

De vlaggen zijn vergelijkbaar met netstat. De functies die ze beschrijven zijn ook vrij gelijkaardig.

  • de : Vertelt ss om luisteraansluitingen weer te geven
  • N : Vertelt ss niet te proberen om servicenamen op te lossen
  • t : Vertelt ss om TCP-sockets weer te geven
  • jij : Vertelt ss om UDP-sockets weer te geven

Lijst met open poorten met lsof

Het lsof-commando is om geopende bestanden weer te geven. Het kan echter ook worden gebruikt voor het weergeven van de open poorten.

Voer de volgende lsof-opdracht uit:

$lsof-l

Om de open poorten van een specifiek protocol (TCP, UDP, etc.) te krijgen, definieert u het na de -i vlag, gebruik:

$lsof-l <protocol>

Lijst met open poorten met nmap

De nmap-tool is een krachtige tool voor netwerkverkenning en beveiliging/poortscannen. Het kan alle open poorten in het systeem rapporteren.

Voer de volgende nmap-opdracht uit om de open TCP-poorten weer te geven. Hier is het IP-adres van de hostcomputer:

$sudo nmap -NS -P-localhost

Hier zijn er twee delen van het commando-argument.

  • -NS : Deze sectie vertelt nmap om naar TCP-poorten te scannen.
  • -P- : Dit vertelt nmap om naar alle 65535 poorten te scannen. Indien niet gebruikt, scant nmap standaard slechts 1000 poorten.

Als u de open UDP-poorten wilt vermelden, voert u de volgende nmap-opdracht uit:

$sudo nmap -zijn -P-localhost

Gebruik de volgende opdracht om zowel de open TCP- als UDP-poorten te krijgen:

$sudo nmap -N -PN -NS -zijn -P-localhost

Lijst met open poorten met netcat

De netcat-tool is een opdrachtregelhulpprogramma voor het lezen en schrijven van gegevens over netwerkverbindingen via de TCP- en UDP-protocollen. Deze tool kan ook worden gebruikt voor het weergeven van open poorten. Het kan tests uitvoeren op een specifieke poort of een reeks poorten.

De volgende netcat-opdracht scant de poort van 1 tot 1000. De netcat-opdracht voert standaard de scan uit op het TCP-protocol:

$nc-Met -vlocalhost1-1000

Het kan ook worden uitgebreid tot de volledige lijst met mogelijke poorten:

$nc-Met -vlocalhost1-65535

Laten we de vlaggen snel uitsplitsen.

  • Met : vertelt netcat om alleen naar open poorten te scannen zonder gegevens te verzenden
  • v : vertelt netcat om in uitgebreide modus te werken

Om alleen de open poorten uit deze lijst te krijgen, filtert u de uitvoer met grep voor de term geslaagd.

$nc-Met -vlocalhost0-65535 2> &1 | greepgeslaagd

Als u de scan op het UDP-protocol wilt uitvoeren, voegt u de vlag -u toe.

$nc-Met -v -ulocalhost0-65535 2> &1 | greepgeslaagd

Laatste gedachten

Zoals aangetoond, zijn er talloze manieren om te scannen op open poorten op Linux. Ik raad aan om alle methoden uit te proberen voordat je beslist welke je onder de knie wilt krijgen. Als u regelmatig een bepaalde tool zoals netcat of nmap gebruikt, is het het meest voordelig om de bijbehorende methoden onder de knie te krijgen.

Veel plezier met rekenen!