I denne artikel finder du nogle tip og tricks til at styrke dine Apache Web Server-konfigurationer og forbedre den generelle sikkerhed.
Ikke-privilegeret brugerkonto
Formålet med en ikke-rod eller uprivilegeret brugerkonto er at begrænse brugeren fra unødvendig adgang til bestemte opgaver i et system. I forbindelse med en Apache-webserver betyder det, at den skal fungere i et begrænset miljø med kun de nødvendige tilladelser. Som standard kører Apache med daemon-konto privilegier. Du kan oprette en separat ikke-root-brugerkonto for at undgå trusler i tilfælde af sikkerhedssårbarheder.
Desuden, hvis apache2 og MySQL er under de samme brugeroplysninger, vil ethvert problem i processen med en gangstjeneste have en indvirkning på den anden. For at ændre bruger- og gruppeprivilegierne til webserveren skal du gå til / etc / apache2, åbne fil-envvars og indstille brugeren og gruppen til en ny ikke-privilegeret kontobruger, sige "apache" og gemme filen.
ubuntu @ ubuntu ~: $ sudo vim / etc / apache2 / envvars... klip ..
eksporter APACHE_RUN_USER = apache
eksporter APACHE_RUN_GROUP = apache
... klip ..
Du kan også bruge følgende kommando til at ændre ejerskabet af installationsmappen til den nye ikke-root-bruger.
ubuntu @ ubuntu ~: $ sudo chown -R apache: apache / etc / apache2Udsted følgende kommando for at gemme ændringerne:
ubuntu @ ubuntu ~: $ sudo service apache2 genstart
Hold Apache opdateret
Apache er berømt for at levere en sikker platform med et meget bekymret udviklerfællesskab, der sjældent står over for sikkerhedsfejl. Ikke desto mindre er det normalt at opdage problemer, når softwaren er frigivet. Derfor er det vigtigt at holde webserveren opdateret for at benytte de nyeste sikkerhedsfunktioner. Det tilrådes også at følge Apache Server-meddelelseslisterne for at holde dig opdateret om nye meddelelser, frigivelser og sikkerhedsopdateringer fra Apache-udviklingssamfundet.
For at opdatere din apache ved hjælp af apt skal du skrive følgende:
ubuntu @ ubuntu ~: $ sudo apt-get opdateringubuntu @ ubuntu ~: $ sudo apt-get opgradering
Deaktiver serversignatur
Standardkonfigurationen af en Apache Server afslører mange detaljer om serveren og dens indstillinger. For eksempel aktiverede direktiver ServerSignature og ServerTokens i / etc / apache2 / apache2.conf-fil tilføj en ekstra overskrift til HTTP-svaret, der udsætter potentielt følsomme oplysninger. Disse oplysninger inkluderer oplysninger om serverindstillinger, såsom serverversion og hosting OS, der kan hjælpe angriberen med rekognosceringsprocessen. Du kan deaktivere disse direktiver ved at redigere apache2.conf-fil via vim / nano og tilføj følgende direktiv:
ubuntu @ ubuntu ~: $ sudo vim / etc / apache2 / apache2.konf... klip ..
Serversignatur slået fra
... klip ..
ServerTokens Prod
... klip ..
Genstart Apache for at opdatere ændringerne.
Deaktiver listen over serverkataloger
Katalogoversigterne viser alt indhold, der er gemt i rodmappen eller underkatalogerne. Mappefilerne kan omfatte følsomme oplysninger, der ikke er beregnet til offentlig visning, såsom PHP-scripts, konfigurationsfiler, filer, der indeholder adgangskoder, logfiler osv.
For at afvise katalogoversigter skal du ændre konfigurationsfilen til Apache-serveren ved at redigere apache2.conf-fil som:
... klip ..
Valgmuligheder -Indexer
... klip ..
ELLER
... klip ..Valgmuligheder -Indexer
... klip ..
Du kan også tilføje dette direktiv i .htaccess-fil i dit hovedwebsite-bibliotek.
Beskyt systemindstillinger
Det .htaccess-filen er en praktisk og kraftfuld funktion, der tillader konfiguration uden for hovedapache2.conf-fil. I tilfælde, hvor en bruger kan uploade filer til serveren, kan dette imidlertid udnyttes af en angriber til at uploade sin egen “.htaccess ”-fil med ondsindede konfigurationer. Så hvis du ikke bruger denne funktion, kan du deaktivere .htaccess-direktivet, i.e.:
ubuntu @ ubuntu ~: $ sudo vim / etc / apache2 / apache2.konf... klip ..
#AccessFileName .htaccess
... klip ..
ELLER
Deaktiver .htaccess-fil undtagen de specifikt aktiverede mapper ved at redigere apache2.conf-fil og drejer AllowOverRide-direktivet til Ingen;
... klip ..
AllowOverride Ingen
... klip ..
Sikker mapper med godkendelse
Du kan oprette brugeroplysninger for at beskytte alle eller nogle af mapperne ved hjælp af htpasswd-værktøjet. Gå til din servermappe, og brug følgende kommando til at oprette en .htpasswd-fil til at gemme adgangskodehash for de legitimationsoplysninger, der er tildelt f.eks. en bruger ved navn dev.
[e-mail-beskyttet] ~: $ sudo htpasswd -c / etc / apache2 / -htpasswd devOvenstående kommando beder om den nye adgangskode og adgangskodebekræftelse. Du kan se katten ./ htpasswd-fil for at kontrollere hash for de gemte brugeroplysninger.
Nu kan du automatisk indstille konfigurationsfilen i dit_website-bibliotek, du skal beskytte ved at ændre .htaccess-fil. Brug følgende kommando og direktiver for at aktivere godkendelse:
ubuntu @ ubuntu ~: $ sudo nano / var / www / din_website /.htaccess... klip ..
AuthType Basic
AuthName "Tilføj dialogen"
AuthUserFile / etc / apache2 / user_name / domain_name /.htpasswd
Kræver gyldig bruger
... klip ..
Husk at tilføje stien i henhold til din.
Kør nødvendige moduler
Standard Apache-konfigurationen inkluderer aktiverede moduler, som du muligvis ikke engang har brug for. Disse forudinstallerede moduler åbner døre for Apache-sikkerhedsproblemer, der enten allerede findes eller kan eksistere i fremtiden. For at deaktivere alle disse moduler skal du først forstå, hvilke moduler der kræves for at din webserver fungerer korrekt. Til dette formål skal du tjekke dokumentationen til apache-modulet, der dækker alle tilgængelige moduler.
Brug derefter følgende kommando til at finde ud af, hvilke moduler der kører på din server.
[e-mailbeskyttet] ~: $ sudo ls / etc / apache2 / mods-aktiveretApache leveres med den kraftfulde a2dismod-kommando til at deaktivere modulet. Det forhindrer indlæsning af modulet og beder dig om en advarsel, når du deaktiverer modulet, om at handlingen kan påvirke din server negativt.
[e-mail-beskyttet] ~: $ sudo a2dismod modulnavnDu kan også deaktivere modulet ved at kommentere i LoadModule-linjen.
Undgå langsom Loris og DoS Attack
Standardinstallationen af en Apache-server tvinger den til at vente på anmodninger fra klienter for længe, hvilket udsætter serveren for langsomme Loris- og DoS-angreb. Apache2.conf konfigurationsfil giver et direktiv, som du kan bruge til at sænke timeoutværdien til et par sekunder for at forhindre disse typer angreb, i.e.:
ubuntu @ ubuntu ~: $ sudo vim / etc / apache2 / apache2.konfTimeout 60
Desuden leveres den nye Apache-server med et praktisk modul mod_reqtimeout, der giver et direktiv RequestReadTimeout for at sikre serveren mod ulovlige anmodninger. Dette direktiv leveres med et par vanskelige konfigurationer, så du kan læse de relaterede oplysninger, der er tilgængelige på dokumentationssiden.
Deaktiver unødvendige HTTP-anmodninger
Ubegrænset HTTP / HTTPS-anmodninger kan også føre til lav serverydelse eller et DoS-angreb. Du kan begrænse modtagelse af HTTP-anmodninger pr. Bibliotek ved at bruge LimitRequestBody til mindre end 100K. For eksempel, for at oprette et direktiv til mappen / var / www / dit_website, kan du tilføje LimitRequestBody-direktivet nedenfor AllowOverride All, i.e.:
... klip ..Valgmuligheder -Indexer
AllowOverride All
LimitRequestBody 995367
... klip ..
Bemærk: Husk at genstarte Apache efter de anvendte ændringer for at opdatere den i overensstemmelse hermed.
Konklusion
Standardinstallationen af Apache-serveren kan levere masser af følsomme oplysninger til at hjælpe angribere i et angreb. I mellemtiden er der også mange andre måder (ikke angivet ovenfor) for at sikre Apache-webserveren. Fortsæt med at undersøge og holde dig opdateret om nye direktiver og moduler for at sikre din server yderligere.