Sådan skjuler du Apaches versionsnummer og operativsystemoplysninger

Billede, der viser logoet for Apache-serverprojektet

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:

Billede af standard Apache-indekssiden, der viser serversignaturen

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:

billede, der viser, hvordan Apache-svarheaders inkluderer serversignaturen som standard

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

Billede af standard Apache-indekssiden uden serversignaturen

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 som Full 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.

Oprindelig artikel