- Friday, July 27, 2018
- Uncategorized
Wanneer u tutorials leest over serverconfiguratie en firewalls, zult u vaak IP-adressen in deze indeling tegenkomen:
Het eerste deel komt u misschien bekend voor, maar het deel na de dubbele punt (:) misschien niet. Dat getal (8080) staat voor een netwerkpoort.
Een IP-adres is een unieke reeks getallen die staat voor een interface op een netwerk, vaak op het internet. Met een IP-adres kan het netwerk gegevenspakketten routeren naar de netwerkinterface van een specifiek apparaat, dat een server of een router of zelfs uw telefoon kan zijn.
Er zijn veel programma’s die op die apparaten draaien en die mogelijk geïnteresseerd zijn in het ontvangen van gegevens van het netwerk en het verzenden van gegevens naar andere apparaten. Maar het IP-adres vertelt het ontvangende apparaat niets over voor welk programma de gegevens bestemd zijn. Dat is de rol van de netwerkpoort.
In elk stukje gegevens dat via een TCP- of UDP-verbinding wordt verzonden (inclusief HTTP (het web), SSH, FTP, DNS, en de meeste andere bekende protocollen), zit een bronpoortnummer en een bestemmingspoortnummer.
Deze nummers staan niet voor een apparaat of een fysieke poort, zoals een ethernetpoort of een lightningpoort. Ze zijn een softwareconstructie die een proces dat een dienst verleent, associeert met gegevenspakketten die de relevante bestemmingspoort hebben.
Een proces is een stukje software dat op de server draait. Een webserver is een proces, en dat geldt ook voor SSH-servers, FTP-servers en DNS-servers. Elk programma dat op een server draait is een proces.
Het besturingssysteem van een server gebruikt poorten om ervoor te zorgen dat gegevens door het juiste proces worden ontvangen, vaak door ze af te leveren aan een stuk geheugen dat voor dat doel in kaart is gebracht. Processen zijn gebonden aan een specifieke poort, en – in het geval van TCP verbindingen – kan slechts één proces zich binden aan elke poort. Als meer dan één proces aan een poort is gebonden, zou er een conflict kunnen ontstaan en zouden de gegevens niet bij het juiste proces kunnen worden afgeleverd.
Poorten worden weergegeven door getallen die variëren van 0 tot 65535, het maximum dat in een 16-bits unsigned integer past. Sommige van die getallen worden geassocieerd met bepaalde soorten diensten. Poorten 0 tot en met 1024 worden bekende poorten genoemd, en worden conventioneel geassocieerd met de meest voorkomende typen netwerkdiensten. Webservers gebruiken poort 80, SSH-servers poort 22, enzovoort.
Poorten van 1024 tot 49151 zijn geregistreerde poorten. Ze kunnen door organisaties bij ICANN worden geregistreerd voor gebruik met hun software. Poorten boven 49151 zijn privépoorten die voor willekeurige doeleinden kunnen worden gebruikt.
Als u het volgende commando op uw CentOS-server uitvoert, krijgt u een lijst te zien met poorten en de services waarmee ze corresponderen.
less /etc/services
Inzicht in hoe poorten werken is nuttig in een verscheidenheid aan omstandigheden. Bijvoorbeeld, veel brute force bots richten zich op SSH servers via poort 22. Misschien wilt u SSH aan een andere poort koppelen, zodat uw server niet te maken krijgt met duizenden onwettige login verzoeken. Je kunt de SSH poort veranderen in een van de privé poorten (boven 49151) door de “Port” instelling in “/etc/ssh/sshd_config” aan te passen. Brute force bots zullen het dan niet meer kunnen vinden. Als je de SSH poort verandert, zorg er dan voor dat je onthoudt waar je hem in veranderd hebt, anders kun je ook niet meer inloggen.
Poorten zijn ook handig voor het configureren van firewalls en voor het draaien van ontwikkelservers: het is gebruikelijk om poort 8080 te gebruiken als alternatief voor poort 80 voor webservers.
In een toekomstig artikel gaan we kijken hoe poorten worden gebruikt om CentOS servers te beveiligen met de iptables firewall.