- fredag, juli 27, 2018
- Och kategoriserat
När du läser handledningar om serverkonfiguration och brandväggar kommer du ofta att stöta på IP-adresser i detta format:
Den första delen är kanske bekant för dig, men delen efter kolonet (:) kanske inte. Det numret (8080) representerar en nätverksport.
En IP-adress är en unik sekvens av siffror som representerar ett gränssnitt i ett nätverk, ofta på Internet. Med en IP-adress kan nätverket dirigera datapaket till nätverksgränssnittet för en specifik enhet, som kan vara en server eller en router eller till och med din telefon.
Det finns många program som körs på dessa enheter och som kan vara intresserade av att ta emot data från nätverket och skicka data till andra enheter. Men IP-adressen säger ingenting till den mottagande enheten om vilket program datan är avsedd för. Det är nätverksportens roll.
Inom varje bit data som skickas via en TCP- eller UDP-anslutning (inklusive HTTP (webben), SSH, FTP, DNS och de flesta andra välkända protokoll) finns ett nummer för källporten och ett nummer för målporten.
De här numren representerar inte en utrustning eller en fysisk port, t.ex. en Ethernet-port eller en lightning-port. De är en programvarukonstruktion som associerar en process som tillhandahåller en tjänst med datapaket som har den relevanta målporten.
En process är en programvara som körs på servern. En webbserver är en process, liksom SSH-servrar, FTP-servrar och DNS-servrar. Varje program som körs på en server är en process.
En servers operativsystem använder portar för att se till att data tas emot av rätt process, ofta genom att leverera dem till en del av minnet som är mappad för det ändamålet. Processer är bundna till en specifik port och – när det gäller TCP-anslutningar – kan endast en process binda till varje port. Om mer än en process är bunden till en port uppstår en konflikt och data kanske inte levereras till rätt process.
Ports representeras av nummer som sträcker sig från 0 till 65535, vilket är det mesta som ryms i ett 16-bitars heltal utan förtecken. Vissa av dessa nummer är förknippade med särskilda typer av tjänster. Portar 0 till 1024 kallas välkända portar och är konventionellt förknippade med de vanligaste typerna av nätverkstjänster. Webbservrar använder port 80, SSH-servrar använder port 22 och så vidare.
Portar från 1024 till 49151 är registrerade portar. De kan registreras hos ICANN av organisationer för att användas i deras programvara. Portar över 49151 är privata portar som kan användas för godtyckliga ändamål.
Om du kör följande kommando på din CentOS-server kan du se en lista över portar och de tjänster de motsvarar.
less /etc/services
Att förstå hur portar fungerar är användbart i en mängd olika situationer. Till exempel riktar sig många brute force-botar mot SSH-servrar via port 22. Du kanske vill associera SSH med en annan port så att din server inte behöver hantera tusentals illegitima inloggningsförfrågningar. Du kan ändra SSH-porten till en av de privata portarna (över 49151) genom att redigera inställningen ”Port” i ”/etc/ssh/sshd_config”. Brute force-botar kommer inte längre att kunna hitta den. Om du ändrar SSH-porten, se till att du kommer ihåg vad du ändrade den till, annars kommer du inte heller att kunna logga in.
Portar är också användbara för att konfigurera brandväggar och för att köra utvecklingsservrar: det är vanligt att använda port 8080 som ett alternativ till port 80 för webbservrar.
I en framtida artikel kommer vi att titta på hur portar används för att säkra CentOS-servrar med brandväggen iptables.