- Fredag, 27. juli 2018
- Ucategorized
Når du læser tutorials om serverkonfiguration og firewalls, vil du ofte støde på IP-adresser i dette format:
Den første del er måske bekendt for dig, men det er den del, der følger efter kolonet (:), måske ikke. Det tal (8080) repræsenterer en netværksport.
En IP-adresse er en unik talsekvens, der repræsenterer en grænseflade på et netværk, ofte på internettet. Med en IP-adresse kan netværket videresende datapakker til netværksgrænsefladen på en bestemt enhed, som kan være en server eller en router eller endda din telefon.
Der er mange programmer, der kører på disse enheder, som kan være interesseret i at modtage data fra netværket og sende data til andre enheder. Men IP-adressen fortæller ikke den modtagende enhed noget om, hvilket program dataene er beregnet til. Det er netværksportens rolle.
Inden for hvert stykke data, der sendes via en TCP- eller UDP-forbindelse (herunder HTTP (internettet), SSH, FTP, DNS og de fleste andre velkendte protokoller), er der et kildeportnummer og et destinationsportnummer.
Disse numre repræsenterer ikke et stykke udstyr eller en fysisk port som f.eks. en ethernetport eller en lynport. De er en softwarekonstruktion, der forbinder en proces, der leverer en tjeneste, med datapakker, der har den relevante destinationsport.
En proces er et stykke software, der kører på serveren. En webserver er en proces, og det samme er SSH-servere, FTP-servere og DNS-servere. Ethvert program, der kører på en server, er en proces.
En servers operativsystem bruger porte til at sikre, at data modtages af den rigtige proces, ofte ved at levere dem til en del af hukommelsen, der er kortlagt til det formål. Processer er bundet til en bestemt port, og – i tilfælde af TCP-forbindelser – kan kun én proces binde sig til hver port. Hvis mere end én proces er bundet til en port, vil der opstå en konflikt, og dataene vil måske ikke blive leveret til den rigtige proces.
Portene repræsenteres af tal, der spænder fra 0 til 65535, det højeste antal, der kan rummes i et 16-bit usigneret heltal. Nogle af disse numre er forbundet med bestemte typer tjenester. Ports 0 til 1024 kaldes velkendte porte og er konventionelt forbundet med de mest almindelige typer netværkstjenester. Webservere bruger port 80, SSH-servere bruger port 22 osv.
Porte fra 1024 til 49151 er registrerede porte. De kan registreres hos ICANN af organisationer til brug for deres software. Porte over 49151 er private porte, der kan bruges til vilkårlige formål.
Hvis du kører følgende kommando på din CentOS-server, vil du kunne se en liste over porte og de tjenester, de svarer til.
less /etc/services
Det er nyttigt under en række omstændigheder at forstå, hvordan porte fungerer. For eksempel er mange brute force-bots rettet mod SSH-servere via port 22. Du vil måske gerne tilknytte SSH til en anden port, så din server ikke skal håndtere tusindvis af ulovlige loginforespørgsler. Du kan ændre SSH-porten til en af de private porte (over 49151) ved at redigere indstillingen “Port” i “/etc/ssh/sshd_config”. Brute force-bots vil ikke længere være i stand til at finde den. Hvis du ændrer SSH-porten, skal du huske, hvad du ændrede den til, ellers vil du heller ikke kunne logge ind.
Porte er også nyttige til konfiguration af firewalls og til at køre udviklingsservere: Det er almindeligt at bruge port 8080 som et alternativ til port 80 til webservere.
I en kommende artikel vil vi se på, hvordan porte bruges til at sikre CentOS-servere med iptables-firewallen.