Apache HTTP

Hoe u uw Apache-server kunt beveiligen

Hoe u uw Apache-server kunt beveiligen
Apache is een populaire, open-source webserver die beschikbaar is voor zowel Linux- als Windows-systemen. Het maakt configuratie mogelijk voor een breed scala aan gebruiksscenario's, van HTML-webpagina's tot HyperText Preprocessor (PHP) dynamische webtoepassingsinhoud.Apache biedt een veilig en robuust platform om uw webapplicaties in te zetten. Het is echter nog steeds belangrijk om de nieuwste beveiligingspatches te installeren en de server correct te configureren om een ​​veilige omgeving voor uw webapplicaties tot stand te brengen.
In dit artikel vindt u enkele tips en trucs om uw Apache Web Server-configuraties te versterken en de algemene beveiliging te verbeteren.

Niet-bevoorrechte gebruikersaccount

Het doel van een niet-root of onbevoegd gebruikersaccount is om de gebruiker te beperken van onnodige toegang tot bepaalde taken binnen een systeem. In de context van een Apache-webserver betekent dit dat deze zou moeten werken in een beperkte omgeving met alleen de noodzakelijke machtigingen. Apache wordt standaard uitgevoerd met daemon-accountprivileges. U kunt een apart niet-root-gebruikersaccount maken om bedreigingen in het geval van beveiligingsproblemen te voorkomen.

Bovendien, als apache2 en MySQL dezelfde gebruikersreferenties hebben, zal elk probleem in het proces van eenmalige service gevolgen hebben voor de andere. Om de gebruikers- en groepsprivileges voor de webserver te wijzigen, gaat u naar /etc/apache2, opent u het bestand envvars en stelt u de gebruiker en groep in op een nieuwe niet-bevoorrechte accountgebruiker, bijvoorbeeld "apache", en slaat u het bestand op.

ubuntu@ubuntu~:$ sudo vim /etc/apache2/envvars
... knip ..
export APACHE_RUN_USER= apache
export APACHE_RUN_GROUP= apache
... knip ..

U kunt ook de volgende opdracht gebruiken om het eigendom van de installatiemap te wijzigen in de nieuwe niet-rootgebruiker:.

ubuntu@ubuntu~:$ sudo chown -R apache:apache /etc/apache2
Geef de volgende opdracht om de wijzigingen op te slaan:
ubuntu@ubuntu~:$ sudo-service apache2 herstart

Apache up-to-date houden

Apache staat bekend om het bieden van een veilig platform met een zeer bezorgde ontwikkelaarsgemeenschap die zelden wordt geconfronteerd met beveiligingsbugs. Desalniettemin is het normaal om problemen te ontdekken zodra de software is uitgebracht. Daarom is het essentieel om de webserver up-to-date te houden om gebruik te kunnen maken van de nieuwste beveiligingsfuncties. Het wordt ook aangeraden om de Apache Server-aankondigingslijsten te volgen om op de hoogte te blijven van nieuwe aankondigingen, releases en beveiligingsupdates van de Apache-ontwikkelgemeenschap.

Typ het volgende om uw apache bij te werken met apt:

ubuntu@ubuntu~:$ sudo apt-get update
ubuntu@ubuntu~:$ sudo apt-get upgrade

Serverhandtekening uitschakelen

De standaardconfiguratie van een Apache-server onthult veel details over de server en zijn instellingen. Bijvoorbeeld, ingeschakelde ServerSignature- en ServerTokens-richtlijnen in de /etc/apache2/apache2.conf-bestand een extra header toevoegen aan de HTTP-reactie die mogelijk gevoelige informatie blootlegt. Deze informatie omvat details over serverinstellingen, zoals serverversie en hosting-besturingssysteem, die de aanvaller kunnen helpen bij het verkenningsproces. U kunt deze richtlijnen uitschakelen door de apache2.conf-bestand via vim/nano en voeg de volgende instructie toe:

ubuntu@ubuntu~:$ sudo vim /etc/apache2/apache2.conf
... knip ..
Serverhandtekening uit
... knip ..
ServerTokens Prod
... knip ..

Start Apache opnieuw om de wijzigingen bij te werken.

Serverlijstvermeldingen uitschakelen

De Directory-lijsten tonen alle inhoud die is opgeslagen in de hoofdmap of submappen. De directorybestanden kunnen gevoelige informatie bevatten die niet bedoeld is voor openbare weergave, zoals PHP-scripts, configuratiebestanden, bestanden met wachtwoorden, logboeken, enz.
Om directoryvermeldingen niet toe te staan, wijzigt u het configuratiebestand van de Apache-server door de apache2.conf-bestand als:

ubuntu@ubuntu~:$ sudo vim /etc/apache2/apache2.conf
... knip ..

Opties -Indexen

... knip ..

OF

... knip ..

Opties -Indexen

... knip ..

U kunt deze richtlijn ook toevoegen in de .htaccess-bestand van uw hoofdwebsitemap.

Systeeminstellingen beveiligen

De .htaccess-bestand is een handige en krachtige functie waarmee configuratie buiten de hoofd-apache mogelijk is.conf bestand. In gevallen waarin een gebruiker bestanden naar de server kan uploaden, kan dit echter door een aanvaller worden misbruikt om zijn of haar eigen ".htaccess”-bestand met kwaadaardige configuraties. Dus als u deze functie niet gebruikt, kunt u de .htaccess-richtlijn, i.e.:

ubuntu@ubuntu~:$ sudo vim /etc/apache2/apache2.conf
... knip ..
#AccessFileName .htaccess
... knip ..

OF
Schakel de . uit .htaccess-bestand behalve de specifiek ingeschakelde mappen door apache2 te bewerken.conf-bestand en de AllowOverRide-richtlijn naar Geen;

ubuntu@ubuntu~:$ sudo vim /etc/apache2/apache2.conf
... knip ..

ToestaanOverschrijven Geen

... knip ..

Beveiligde mappen met authenticatie

U kunt gebruikersreferenties maken om alle of sommige mappen te beschermen met het hulpprogramma htpasswd. Ga naar je servermap en gebruik de volgende opdracht om een .htpasswd-bestand om wachtwoordhashes op te slaan voor de inloggegevens die zijn toegewezen aan bijvoorbeeld een gebruiker met de naam dev.

[email protected]~:$ sudo htpasswd -c /etc/apache2/-htpasswd dev

De bovenstaande opdracht zal om het nieuwe wachtwoord en wachtwoordbevestiging vragen. U kunt de kat bekijken ./htpasswd bestand om de hash te controleren op de opgeslagen gebruikersreferenties.

Nu kunt u automatisch het configuratiebestand instellen in de map uw_website die u moet beschermen door de .htaccess-bestand. Gebruik de volgende opdracht en instructies om authenticatie in te schakelen:

ubuntu@ubuntu~:$ sudo nano /var/www/uw_website/.htaccess
... knip ..
AuthType Basis
AuthName "De dialoogprompt toevoegen"
AuthUserFile /etc/apache2/gebruikersnaam/domeinnaam/.htpasswd
Geldige gebruiker vereisen-
... knip ..

Vergeet niet om het pad toe te voegen zoals dat van jou is.

Voer noodzakelijke modules uit

De standaard Apache-configuratie bevat ingeschakelde modules die je misschien niet eens nodig hebt. Deze vooraf geïnstalleerde modules openen deuren voor Apache-beveiligingsproblemen die al bestaan ​​of in de toekomst kunnen bestaan. Om al deze modules uit te schakelen, moet u eerst weten welke modules nodig zijn voor een soepele werking van uw webserver. Bekijk hiervoor de apache-moduledocumentatie die alle beschikbare modules omvat.

Gebruik vervolgens de volgende opdracht om erachter te komen welke modules op uw server draaien:.

[email protected]~:$ sudo ls /etc/apache2/mods-enabled

Apache wordt geleverd met het krachtige a2dismod-commando om de module uit te schakelen. Het voorkomt dat de module wordt geladen en geeft u een waarschuwing wanneer u de module uitschakelt dat de actie een negatieve invloed kan hebben op uw server.

[email protected]~:$ sudo a2dismod module_name

U kunt de module ook uitschakelen door commentaar te geven in de regel LoadModule.

Voorkom Slow Loris en DoS-aanval

De standaardinstallatie van een Apache-server dwingt deze te lang te wachten op verzoeken van clients, waardoor de server wordt blootgesteld aan Slow Loris- en DoS-aanvallen. de apache.conf-configuratiebestand biedt een richtlijn die u kunt gebruiken om de time-outwaarde te verlagen tot een paar seconden om dit soort aanvallen te voorkomen, i.e.:

ubuntu@ubuntu~:$ sudo vim /etc/apache2/apache2.conf
Time-out 60

Bovendien wordt de nieuwe Apache-server geleverd met een handige module mod_reqtimeout die een richtlijn RequestReadTimeout biedt om de server te beveiligen tegen onwettige verzoeken. Deze richtlijn wordt geleverd met een paar lastige configuraties, dus u kunt de gerelateerde informatie op de documentatiepagina lezen.

Onnodige HTTP-verzoeken uitschakelen

Onbeperkte HTTP/HTTPS-verzoeken kunnen ook leiden tot lage serverprestaties of een DoS-aanval. U kunt het ontvangen van HTTP-verzoeken per map beperken door LimitRequestBody te gebruiken tot minder dan 100K. Als u bijvoorbeeld een richtlijn voor de map /var/www/uw_website wilt maken, kunt u de richtlijn LimitRequestBody toevoegen onder AllowOverride All, i.e.:

... knip ..

Opties -Indexen
ToestaanAlles overschrijven
LimietRequestBody 995367

... knip ..

Opmerking: vergeet niet om Apache opnieuw te starten na de toegepaste wijzigingen om het dienovereenkomstig bij te werken.

Conclusie

De standaardinstallatie van de Apache-server kan veel gevoelige informatie leveren om aanvallers te helpen bij een aanval. In de tussentijd zijn er ook tal van andere manieren (niet hierboven vermeld) om de Apache-webserver te beveiligen. Blijf onderzoeken en blijf op de hoogte van nieuwe richtlijnen en modules om uw server verder te beveiligen.

OpenTTD versus Simutrans
Je eigen transportsimulatie maken kan leuk, ontspannend en buitengewoon aanlokkelijk zijn. Daarom moet je ervoor zorgen dat je zoveel mogelijk spellen...
OpenTTD-zelfstudie
OpenTTD is een van de meest populaire simulatiegames voor bedrijven die er zijn. In dit spel moet je een geweldig transportbedrijf creëren. U begint e...
SuperTuxKart voor Linux
SuperTuxKart is een geweldige titel die is ontworpen om je de Mario Kart-ervaring gratis te bieden op je Linux-systeem. Het is behoorlijk uitdagend en...