Apache er en af de mest populære webservere, men dens standardkonfiguration indeholder tvivlsomme valg på mange Linux-distributioner. Apache har en tendens til at reklamere for sin specifikke version og den platform, den kører på, information, der kan være værdifuld for angribere.
Denne hurtige artikel viser dig, hvordan du deaktiverer dette output for at hjælpe med at beskytte din server. Der er normalt ingen grund til, at den skal være aktiv, og at slå den fra bør kun tage et minut.
Hvad er problemet?
Her er en frisk Apache 2.4-installation, der viser et mappeindeks:
Sidens sidefod afslører Apache-versionskoden, operativsystemnavnet og din servers interne IP-adresse og portnummer.
Disse er potentielt følsomme detaljer. En nul-dages sårbarhed i Apache påvirker muligvis kun et lille udvalg af versioner. Ved at lade denne udgang være tændt, viser du til verden, om din maskine er i fare. Dette gør det meget nemmere for angribere at identificere din vært som et potentielt mål.
Apache refererer til disse data som dens "serversignatur." Det er ikke begrænset til mappeindekssiderne: versionskoden bliver inkluderet i hvert HTTP-svar inden for Server
header:
Den vil være til stede uanset svarets statuskode. Angribere kan finde din præcise Apache-version ved blot at pinge en anmodning til din server, uanset om de kender en gyldig URL.
Deaktivering af serversignaturen
Der er to dele til at deaktivere dette uønskede output. Først er ServerSignature
værdi i din Apache-konfigurationsfil. Placeringen af denne fil varierer; /etc/apache2/apache2.conf
, /usr/local/apache2/conf/httpd.conf
er to fælles muligheder. Det ServerSignature
direktivet er også understøttet indeni .htaccess
filer i din web-rod.
Indstil direktivet til Off
for at deaktivere signaturen, der vises på servergenererede websider:
Serversignatur fra
Genstart Apache for at anvende ændringen:
$ sudo service apache2 genstart
Dette påvirker kataloglister, Apaches standardfejlsider og andet HTML-output produceret af serveren. Off
fjerner signaturlinjen fuldstændigt. Indstillingen understøtter valgfrit en tredje værdi, EMail
, der giver et link til at sende en e-mail til den adresse, der er defineret af ServerAdmin
:
ServerAdmin [e-mail beskyttet] Serversignatur e-mail
Dette erstatter Apache-versionsoplysningerne med e-mail-linket.
Håndtering af servertokens
Indholdet af Server
svarhoved styres af en anden indstilling, ServerTokens
. Dette kan kun indstilles af din servers globale konfigurationsfil. Det er ikke understøttet indeni .htaccess
filer.
Standardværdien er Full
som præsenterer den præcise versionsstreng og operativsystemnavn observeret i eksemplet ovenfor. Dette kan også omfatte versionsnumrene på indlæste moduler og CGI-indholdsmotorer såsom PHP.
Følgende alternative værdier understøttes:
Full
-Apache/2.4.2 (Ubuntu)
Prod
-Apache
Major
-Apache/2
Minor
-Apache/2.4
Min
-Apache/2.4.2
OS
- Samme somFull
men uden information om indlæste moduler
Prod
valg er den sikreste værdi. Du kan tænke på det som Production
, selvom det faktisk er en forkortelse for ProductOnly
. Dette servertoken betyder Server
header vil kun afsløre, at du bruger Apache, uden nogen ekstra information om udgivelsen. Angribere bliver nødt til at foretage flere prøve- og fejlundersøgelser for at finde udbyttelige sårbarheder i din installation.
Desværre er der ingen måde at fjerne Server
overskriften i det hele taget. Apache faktisk fastholder det at deaktivere den "gør slet ikke noget for at gøre din server mere sikker" og foreslår brug af Min
for at gøre det lettere at fejlfinde interoperationelle problemer.
Men de fleste mennesker indtager aldrig Server
header, og det er altid sikrest at annoncere for mindst mulig information om dit system. Selvom det ikke forhindrer udnyttelsen af sårbarheder, ServerTokens Prod
kunne afholde angribere fra at gøre spekulative forsøg. Det vil også gøre det sværere for forbipasserende at skaffe detaljer om din tech-stacks indre funktioner. Det er kun en lille hærdning, men en dag kan det være den forskel, du har brug for.
Hvad med PHP?
Apache bruges ofte foran websteder og applikationer drevet af PHP. Desværre har PHP sin egen vane med at give sit versionsnummer til internettet. Det vil dukke op i X-Powered-By
header af svar sendt af din PHP-kode.
Du kan slå dette fra ved at ændre din PHP-konfigurationsfil med følgende linje:
expose_php=Fra
Konfigurationsfilen kan normalt findes på /etc/php/8.1/apache2/php.ini
. Erstatte 8.1
med den PHP-version du bruger. Du skal genstarte din webserver for at anvende ændringen.
Resumé
Apaches standardkonfiguration afslører det præcise versionsnummer på din server, såvel som dens operativsystem og IP-adresse. Denne tilsyneladende uskadelige information kan give en hjælpende hånd til angribere, der leder efter sårbare servere.
At slå serversignaturen fra er en hurtig måde at hærde dit miljø på. Det er også en god idé at adressere lignende informationseksponering fra anden software i din stak på samme tid. PHP og nogle web-frameworks kommer med lignende sårbarheder.