Server
En computer eller et program, der venter på forespørgsler over et netværk og besvarer dem, fx ved at sende en webside eller gemme e-mail.
Kladde - dette opslag er endnu ikke gennemgået.
Formelt
Et program, eller maskinen der kører det, som lytter på en port efter indkommende forespørgsler fra klienter og sender svar tilbage efter en aftalt protokol.
Forklaret enkelt
Som skranken på et bibliotek - den holder åbent, venter på, at folk spørger efter en bog, og udleverer det, de bad om.
I praksis
En region kører sit patientjournalsystem på servere i to datacentre; tusindvis af computere på regionens hospitaler sender forespørgsler til dem hele dagen, og hvis det ene center svigter, overtager det andet.
Hvorfor det betyder noget
Servere rummer de fælles data og tjenester, alle er afhængige af, og kan nås døgnet rundt, hvilket gør dem til oplagte mål; de hører typisk til organisationens kritiske aktiver.
Teknisk uddybning
På styresystemniveau opretter en TCP-server en socket, binder den med bind() til en adresse og port, kalder listen() med en backlog og kører derefter en løkke med accept(), som returnerer en ny socket for hver etableret forbindelse, mens den lyttende socket bliver ved med at vente. På Linux holder kernen separate køer for halvåbne forbindelser (SYN modtaget) og færdigt etablerede forbindelser, der venter på at blive accepteret; et SYN-flood-angreb rammer den første, og SYN cookies lader kernen svare uden at gemme tilstand. Bindingsadressen har betydning for sikkerheden: En tjeneste bundet til 127.0.0.1 kan kun nås lokalt, mens én bundet til 0.0.0.0 eller :: lytter på alle grænseflader - og det er sådan, udviklingsdatabaser og administrationskonsoller ved et uheld ender med at være eksponeret mod internettet.
Servere håndterer samtidighed på nogle få klassiske måder: en proces pr. forbindelse (traditionelle inetd-tjenester, Apaches prefork-model), en pulje af tråde eller en event-løkke over ikke-blokerende sockets med I/O-multipleksing som epoll på Linux, kqueue på BSD og macOS eller I/O completion ports på Windows, sådan som nginx og Node.js gør. Dan Kegels "C10k-problem" (1999) beskrev, hvorfor de ældre modeller havde svært ved ti tusind samtidige klienter. Hver model har sine egne udmattelsesangreb: Klienter i stil med slowloris holder forbindelser åbne med ufuldstændige forespørgsler for at optage arbejderpladser, hvilket event-drevne servere modstår bedre end design med én tråd pr. forbindelse.
I moderne arkitekturer er en server som regel en rolle snarere end en kasse: en virtuel maskine, en container eller en serverless-funktion bag en load balancer. Tilstandsløse applikationsservere gemmer sessionsdata i en fælles database eller cache, så enhver instans kan besvare enhver forespørgsel, og instanser frit kan tilføjes eller udskiftes; health checks fjerner instanser, der fejler, og redundans organiseres som aktiv-aktiv eller aktiv-passiv på tværs af lokationer, som i eksemplet med de to datacentre. En server er den proces eller vært, der svarer; en tjeneste er den funktion, den tilbyder, og én server kan huse mange tjenester, ligesom én tjeneste kan være fordelt på mange servere.
Sikring af servere er i høj grad disciplin i konfigurationen. CIS Benchmarks og leverandørernes baselines beskriver en minimal installation med unødvendige tjenester slået fra, dæmoner, der kører under dedikerede konti med få rettigheder i stedet for root eller SYSTEM, opdaterede patches, begrænset administrativ adgang og logning, der sendes til central opsamling. Serveren skal behandle alt, hvad den modtager fra klienter, som upålideligt og selv håndhæve autentifikation, autorisation og inputvalidering. Versionsbannere og detaljerede fejlsider hjælper angribere med at identificere softwaren, og fordi servere kan nås døgnet rundt og rummer fælles data, klassificeres de som regel som kritiske aktiver i risikovurderinger og aktivoversigter.
Hvad du bør lære først
Alt det, dette bygger på - grundlaget først.
- Netværk
- →IP-adresse
- →Protokol
- →Port
- →Server
Relationer
- Typer
- MCP-server
- Forveksl ikke med
- Klient
- Bruges sammen med
- Tjeneste (service)Database
Kilder og videre læsning
Lærebøger
- Kurose & Ross, Computer Networking: A Top-Down Approach
- Tanenbaum, Computer Networks
Hvor dataene kommer fra
Dette opslag er skrevet af en AI ud fra kilderne ovenfor og er endnu ikke gennemgået af et menneske. Brug det som udgangspunkt, og tjek alt vigtigt mod kilderne.
Se gennemgangskøenForeslå en rettelse på GitHubDette begreb som JSON
Nævnt i
Test dig selv
Indlæser…