I denne artikkelen finner du noen tips og triks for å styrke Apache Web Server-konfigurasjonene og forbedre den generelle sikkerheten.
Ikke-privilegert brukerkonto
Hensikten med en ikke-rot eller uprivilegert brukerkonto er å begrense brukeren fra unødvendig tilgang til visse oppgaver i et system. I sammenheng med en Apache-webserver betyr dette at den skal fungere i et begrenset miljø med bare de nødvendige tillatelsene. Som standard kjører Apache med daemonkontorettigheter. Du kan opprette en egen ikke-rot brukerkonto for å unngå trusler i tilfelle sikkerhetsproblemer.
Videre, hvis apache2 og MySQL er under samme brukerlegitimasjon, vil ethvert problem i prosessen med en gangs tjeneste ha innvirkning på den andre. For å endre bruker- og gruppeprivilegiene for webserveren, gå til / etc / apache2, åpne fil-envvars, og sett brukeren og gruppen til en ny ikke-privilegert kontobruker, si "apache" og lagre filen.
ubuntu @ ubuntu ~: $ sudo vim / etc / apache2 / envvars... snip ..
eksporter APACHE_RUN_USER = apache
eksporter APACHE_RUN_GROUP = apache
... snip ..
Du kan også bruke følgende kommando for å endre eierskapet til installasjonskatalogen til den nye ikke-rotbrukeren.
ubuntu @ ubuntu ~: $ sudo chown -R apache: apache / etc / apache2Gi følgende kommando for å lagre endringene:
ubuntu @ ubuntu ~: $ sudo service apache2 start på nytt
Hold Apache oppdatert
Apache er kjent for å tilby en sikker plattform med et svært bekymret utviklermiljø som sjelden møter sikkerhetsfeil. Det er likevel normalt å oppdage problemer når programvaren er utgitt. Derfor er det viktig å holde webserveren oppdatert for å benytte de nyeste sikkerhetsfunksjonene. Det anbefales også å følge kunngjøringslistene for Apache Server for å holde deg oppdatert om nye kunngjøringer, utgivelser og sikkerhetsoppdateringer fra Apache-utviklingssamfunnet.
For å oppdatere apache ved hjelp av apt, skriv inn følgende:
ubuntu @ ubuntu ~: $ sudo apt-get oppdateringubuntu @ ubuntu ~: $ sudo apt-get upgrade
Deaktiver serversignatur
Standardkonfigurasjonen til en Apache-server avslører mange detaljer om serveren og dens innstillinger. For eksempel aktiverte ServerSignature- og ServerTokens-direktiver i / etc / apache2 / apache2.conf-fil legger til en ekstra overskrift i HTTP-svaret som avslører potensielt sensitiv informasjon. Denne informasjonen inkluderer serverinnstillingsdetaljer, for eksempel serverversjon og hosting OS, som kan hjelpe angriperen med rekognoseringsprosessen. Du kan deaktivere disse direktivene ved å redigere apache2.conf-fil via vim / nano og legg til følgende direktiv:
ubuntu @ ubuntu ~: $ sudo vim / etc / apache2 / apache2.konf... snip ..
ServerSignature Off
... snip ..
ServerTokens Prod
... snip ..
Start Apache på nytt for å oppdatere endringene.
Deaktiver serverlisteoppføringer
Katalogoppføringene viser alt innhold som er lagret i rotmappen eller underkatalogene. Katalogfilene kan inneholde sensitiv informasjon som ikke er ment for offentlig visning, for eksempel PHP-skript, konfigurasjonsfiler, filer som inneholder passord, logger osv.
For å ikke tillate katalogoppføringer, endre konfigurasjonsfilen til Apache-serveren ved å redigere apache2.conf-fil som:
... snip ..
Alternativer-indekser
... snip ..
ELLER
... snip ..Alternativer-indekser
... snip ..
Du kan også legge til dette direktivet i .htaccess-fil i hovedkatalogen til nettstedet.
Beskytt systeminnstillinger
De .htaccess-filen er en praktisk og kraftig funksjon som gjør det mulig å konfigurere utenfor hovedapache2.conf-fil. I tilfeller der en bruker kan laste opp filer til serveren, kan dette imidlertid utnyttes av en angriper for å laste opp sin egen “.htaccess ”-fil med ondsinnede konfigurasjoner. Så hvis du ikke bruker denne funksjonen, kan du deaktivere .htaccess-direktivet, i.e.:
ubuntu @ ubuntu ~: $ sudo vim / etc / apache2 / apache2.konf... snip ..
#AccessFileName .htaccess
... snip ..
ELLER
Deaktiver .htaccess-fil bortsett fra de spesifikt aktiverte katalogene ved å redigere apache2.conf-fil og slå AllowOverRide-direktivet til Ingen;
... snip ..
Tillat overstyring Ingen
... snip ..
Sikre kataloger med autentisering
Du kan opprette brukerlegitimasjon for å beskytte alle eller noen av katalogene ved hjelp av htpasswd-verktøyet. Gå til servermappen din og bruk følgende kommando for å opprette en .htpasswd-fil for å lagre passordhash for legitimasjonen som er tildelt, for eksempel en bruker som heter dev.
[e-postbeskyttet] ~: $ sudo htpasswd -c / etc / apache2 / -htpasswd devOvennevnte kommando vil be om det nye passordet og passordbekreftelsen. Du kan se katten ./ htpasswd-fil for å sjekke hash for de lagrede brukerlegitimasjonene.
Nå kan du automatisk konfigurere konfigurasjonsfilen i katalogen din_website du trenger å beskytte ved å endre .htaccess-fil. Bruk følgende kommando og direktiver for å aktivere autentisering:
ubuntu @ ubuntu ~: $ sudo nano / var / www / your_website /.htaccess... snip ..
AuthType Basic
AuthName "Legg til dialogboksen"
AuthUserFile / etc / apache2 / user_name / domain_name /.htpasswd
Krev gyldig bruker
... snip ..
Husk å legge til stien i henhold til din.
Kjør nødvendige moduler
Standard Apache-konfigurasjon inkluderer aktiverte moduler som du kanskje ikke engang trenger. Disse forhåndsinstallerte modulene åpner dører for Apache-sikkerhetsproblemer som enten allerede eksisterer eller kan eksistere i fremtiden. For å deaktivere alle disse modulene, må du først forstå hvilke moduler som kreves for at webserveren din skal fungere bra. For dette formålet, sjekk ut apache-moduldokumentasjonen som dekker alle tilgjengelige moduler.
Deretter bruker du følgende kommando for å finne ut hvilke moduler som kjører på serveren din.
[e-postbeskyttet] ~: $ sudo ls / etc / apache2 / mods-aktivertApache kommer med den kraftige a2dismod-kommandoen for å deaktivere modulen. Det forhindrer lasting av modulen og ber deg om en advarsel når du deaktiverer modulen om at handlingen kan påvirke serveren din negativt.
[e-postbeskyttet] ~: $ sudo a2dismod module_nameDu kan også deaktivere modulen ved å kommentere i LoadModule-linjen.
Forhindre Slow Loris og DoS Attack
Standardinstallasjonen av en Apache-server tvinger den til å vente på forespørsler fra klienter for lenge, noe som utsetter serveren for Slow Loris og DoS-angrep. Apache2.conf konfigurasjonsfil gir et direktiv som du kan bruke til å senke tidsavbruddsverdien til noen få sekunder for å forhindre denne typen angrep, i.e.:
ubuntu @ ubuntu ~: $ sudo vim / etc / apache2 / apache2.konfTidsavbrudd 60
Dessuten kommer den nye Apache-serveren med en praktisk modul mod_reqtimeout som gir et direktiv RequestReadTimeout for å sikre serveren mot ugyldige forespørsler. Dette direktivet har noen vanskelige konfigurasjoner, slik at du kan lese ut relatert informasjon tilgjengelig på dokumentasjonssiden.
Deaktiver unødvendige HTTP-forespørsler
Ubegrensede HTTP / HTTPS-forespørsler kan også føre til lav serverytelse eller et DoS-angrep. Du kan begrense mottak av HTTP-forespørsler per katalog ved å bruke LimitRequestBody til mindre enn 100K. For eksempel, for å lage et direktiv for mappen / var / www / your_website, kan du legge til LimitRequestBody-direktivet under AllowOverride All, i.e.:
... snip ..Alternativer-indekser
AllowOverride All
LimitRequestBody 995367
... snip ..
Merk: Husk å starte Apache på nytt etter de anvendte endringene for å oppdatere den tilsvarende.
Konklusjon
Standardinstallasjonen av Apache-serveren kan levere mye sensitiv informasjon for å hjelpe angripere i et angrep. I mellomtiden er det mange andre måter (ikke oppført ovenfor) for å sikre Apache-webserveren. Fortsett å undersøke og holde deg oppdatert om nye direktiver og moduler for å sikre serveren din ytterligere.