Ikke-privilegert brukerkonto
Hensikten med en ikke-root 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 nødvendige tillatelser. Som standard kjører Apache med Daemon -kontoprivilegier. Du kan opprette en egen brukerkonto som ikke er rotte for å unngå trusler i tilfelle sikkerhetsproblemer.
Videre, hvis Apache2 og MySQL er under samme brukeropplysning, vil ethvert problem i prosessen med en gang tjeneste ha innvirkning på den andre. For å endre bruker- og gruppeprivilegier for webserveren, gå til /etc /Apache2, åpne filen 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-root-brukeren.
ubuntu@ubuntu ~: $ sudo chown -r apache: apache /etc /apache2
Utsted følgende kommando for å lagre endringene:
ubuntu@ubuntu ~: $ sudo service apache2 omstart
Hold Apache oppdatert
Apache er kjent for å gi en sikker plattform med et meget bekymret utviklerfellesskap som sjelden står overfor noen sikkerhetsfeil. Likevel er det 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 Apache Server -kunngjøringslistene for å holde deg oppdatert om nye kunngjøringer, utgivelser og sikkerhetsoppdateringer fra Apache Development Community.
For å oppdatere apache ved hjelp av APT, skriver du inn følgende:
ubuntu@ubuntu ~: $ sudo apt-get update
ubuntu@ubuntu ~: $ sudo apt-get oppgradering
Deaktiver server signatur
Standardkonfigurasjonen av en Apache -server utsetter mange detaljer om serveren og dens innstillinger. For eksempel aktivert serversignatur- og servertokens -direktiver i/etc/apache2/apache2.Conf File Legg til en ekstra overskrift til HTTP -responsen som utsetter 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 ..
Serveresignatur av
... Snip ..
Servertokens prod
... Snip ..
Start Apache på nytt for å oppdatere endringene.
Deaktiver serverkatalogoppføringer
Katalogoppføringene viser alt innhold som er lagret i rotmappen eller underkatalogene. Katalogfilene kan inneholde sensitiv informasjon som ikke er beregnet på offentlig visning, for eksempel PHP -skript, konfigurasjonsfiler, filer som inneholder passord, logger osv.
For å ikke tillate katalogoppføringer, endre Apache Server -konfigurasjonsfilen ved å redigere Apache2.Conf -fil som:
ubuntu@ubuntu ~: $ sudo vim/etc/apache2/apache2.konf
... Snip ..
Alternativer -indekser
... Snip ..
ELLER
... Snip ..Du kan også legge til dette direktivet i .Htaccess -filen til hovednettstedskatalogen.
Beskytt systeminnstillinger
De .HTaCcess -filen er en praktisk og kraftig funksjon som tillater konfigurasjon utenfor hoved Apache2.Conf -fil. I tilfeller der en bruker kan laste opp filer til serveren, kan dette imidlertid utnyttes av en angriper for å laste opp hans eller hennes egen ".htaccess ”-fil med ondsinnede konfigurasjoner. Så hvis du ikke bruker denne funksjonen, kan du deaktivere .Htaccess -direktiv, 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 File and Turning AllowOverride -direktivet til ingen;
ubuntu@ubuntu ~: $ sudo vim/etc/apache2/apache2.konf
... Snip ..
Tillat ingen
... Snip ..
Sikre kataloger med autentisering
Du kan opprette brukeropplysninger for å beskytte alle eller noen av katalogene ved hjelp av HTPasswd -verktøyet. Gå til servermappen din og bruk følgende kommando til å opprette en .htpasswd -fil for å lagre passord hashes for legitimasjonene som er tilordnet, for eksempel, en bruker som heter Dev.
ubuntu@ubuntu ~: $ sudo htpasswd -c/etc/apache2/-htpasswd dev
Kommandoen ovenfor vil be om det nye bekreftelsespassordet. Du kan se katten ./htpasswd -fil for å sjekke hasj for den lagrede brukeropplysning.
Nå kan du automatisk angi konfigurasjonsfilen i din_website -katalogen 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 dialogrommet"
AuthUserFile/etc/apache2/user_name/domain_name/.htpasswd
Krever gyldig bruker
... Snip ..
Husk å legge til banen 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 en jevn funksjon av webserveren din. For dette formålet, sjekk ut Apache -moduldokumentasjonen som dekker alle tilgjengelige moduler.
Bruk deretter følgende kommando for å finne ut hvilke moduler som kjører på serveren din.
ubuntu@ubuntu ~: $ sudo ls/etc/apache2/mods-aktivert
Apache kommer med den kraftige A2Dismod -kommandoen for å deaktivere modulen. Det forhindrer å laste modulen og ber deg om en advarsel når du deaktiverer modulen om at handlingen kan påvirke serveren din negativt.
ubuntu@ubuntu ~: $ sudo a2dismod module_name
Du kan også deaktivere modulen ved å kommentere i LoadModule -linjen.
Forhindre sakte Loris og DOS -angrep
Standardinstallasjonen av en Apache -server tvinger den til å vente på forespørsler fra klienter for lenge, noe som utsetter serveren for å bremse Loris og DOS -angrep. Apache2.Conf Configuration File gir et direktiv som du kan bruke for å senke tidsavbruddsverdien til noen sekunder for å forhindre denne typen angrep, i.e.:
ubuntu@ubuntu ~: $ sudo vim/etc/apache2/apache2.konf
Timeout 60
Dessuten kommer den nye Apache -serveren med en hendig modul MOD_REQTITIONOUT som gir et direktiv RequestReadTimeout for å sikre serveren fra uekte forespørsler. Dette direktivet kommer med noen få vanskelige konfigurasjoner, slik at du kan lese den relaterte informasjonen som er tilgjengelig på dokumentasjonssiden.
Deaktiver unødvendige HTTP -forespørsler
Ubegrenset HTTP/HTTPS -forespørsler kan også føre til lav serverytelse eller et DOS -angrep. Du kan begrense mottak av HTTP-forespørsler per-Directory ved å bruke LimitRequestBody til mindre enn 100K. For eksempel, for å opprette et direktiv for mappen/var/www/your_website, kan du legge til LimitRequestBody -direktivet nedenfor tillate overføring alle, i.e.:
... Snip ..Merk: Husk å starte Apache på nytt etter de påførte endringene for å oppdatere den deretter.
Konklusjon
Standardinstallasjonen av Apache -serveren kan gi rikelig med sensitiv informasjon for å hjelpe angripere i et angrep. I mellomtiden er det mange andre måter (ikke oppført ovenfor) for å sikre Apache -webserveren også. Fortsett å forske og holde deg oppdatert om nye direktiver og moduler for å sikre serveren din videre.