Een poort is een adresseerbare netwerklocatie in een besturingssysteem. Poorten worden gebruikt om netwerkverkeer naar een bepaalde dienst of applicatie te sturen. Een poort is steeds verbonden aan een IP adres en een communicatie protocol.
Poorten worden genummerd van 1 tot 65535 en worden in verschillende categorieën onderverdeeld.
Een dienst (service) luistert naar een poort (geassocieerd met een protocol en IP adres) wanneer deze verzoeken van aanvragers van deze dienst (clients of the service) ontvangt. Na het ontvangen van een verzoek wordt een verbinding via dezelfde poort opgebouwd om een dialoog tussen de aanvrager en de dienst op te bouwen.
Als je op de hoogte bent van de door uw systeem gebruikte poorten, kan je inbraken op uw systeem detecteren. Kennis over in Linux geopende poorten helpt dus bij het dwarsbomen van inbraakpogingen. Deze kennis is dus belangrijk bij het beveiligen van uw systeem.
Diensten die luisteren naar verzoeken op bepaalde poorten, gebruiken die poorten. De poorten die door diensten gebruikt worden, noemen we geopende poorten en de betreffende diensten luisteren ernaar. Je kunt op verschillende manieren open poorten opsporen.
Met nmap kan je veel informatie over een systeem opvragen, waardoor systeembeheerders de indruk kunnen krijgen dat je slechte bedoelingen hebt. Gebruik nmap dus enkel op uw eigen lokale systemen.
Installeer nmap met de opdracht:
dany@pindabook:~> sudo zypper install nmap
[sudo] wachtwoord voor root:
Gegevens van opslagruimte laden...
Lezen van geïnstalleerde pakketten...
Pakketafhankelijkheden oplossen...
Het volgende NIEUWE pakket zal worden geïnstalleerd:
nmap
1 nieuw te installeren pakket.
Totale downloadgrootte: 5,2 MiB. Reeds in de cache: 0 B. Na de bewerking zal aanvullend 23,5 MiB worden gebruikt.
Doorgaan? [j/n/...? alle opties tonen] (j):
pakket nmap-7.70-lp150.1.1.x86_64 wordt opgehaald (1/1), 5,2 MiB ( 23,5 MiB uitgepakt)
Ophalen: nmap-7.70-lp150.1.1.x86_64.rpm .........................................................................[gereed (3,5 MiB/s)]
Controleren op conflicten tussen bestanden: .................................................................................[gereed]
(1/1) Installeren van: nmap-7.70-lp150.1.1.x86_64 ...........................................................................[gereed]
Met nmap kan je bijvoorbeeld nagaan welke poorten naar TCP verbindingen op het netwerk luisteren.
dany@pindabook:~> sudo nmap -sT -O localhost
[sudo] wachtwoord voor root:
Starting Nmap 7.70 ( https://nmap.org ) at 2018-12-14 19:48 CET
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00011s latency).
Other addresses for localhost (not scanned): ::1
Not shown: 995 closed ports
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
80/tcp open http
631/tcp open ipp
3306/tcp open mysql
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
OS details: Linux 3.8 - 4.14
Network Distance: 0 hops
OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 2.36 seconds
Of poorten die naar UDP verbindingen luisteren.
dany@pindabook:~> sudo nmap -sU -O localhost
Starting Nmap 7.70 ( https://nmap.org ) at 2018-12-14 19:49 CET
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000017s latency).
Other addresses for localhost (not scanned): ::1
Not shown: 998 closed ports
PORT STATE SERVICE
68/udp open|filtered dhcpc
5353/udp open|filtered zeroconf
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose
Running: Linux 2.6.X|3.X
OS CPE: cpe:/o:linux:linux_kernel:2.6 cpe:/o:linux:linux_kernel:3.13
OS details: Linux 2.6.14 - 2.6.34, Linux 2.6.17, Linux 2.6.17 (Mandriva), Linux 3.13
Network Distance: 0 hops
OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 5.51 seconds
Ook ss kan open poorten vinden.
Waarbij we de volgende opties gebruikten:
Met lsof kan je eveneens open poorten weergeven.
dany@pindabook:~> lsof -i
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
kdeconnec 2218 dany 12u IPv6 33821 0t0 UDP *:xmsg
kdeconnec 2218 dany 13u IPv6 33822 0t0 TCP *:xmsg (LISTEN)
De lsof opdracht geeft standaard, dus zonder opties, alle open bestanden weer, en dit zijn er heel wat.
Kennis over poorten is essentieel voor enthousiaste Linux gebruikers en systeembeheerders. Hulpmiddelen zoals ss, lsof en nmap zijn flexibel en kunnen veel informatie over een dienst op een systeem zichtbaar maken. Meer informatie kan je vinden in de hulppagina's (man pages). Veel succes met met opsporen van lekken en andere gevaren op uw netwerk.