Dit artikel maakt deel uit van de Apache Server Guide-serie:

  • Apache beveiligen op Ubuntu - Deel 1
  • Apache beveiligen op Ubuntu - Deel 2
  • Apache-prestaties optimaliseren - deel 1
  • Apache-prestaties optimaliseren - deel 2
  • Op naam gebaseerde Virtualhost Apache instellen
  • IP en op poorten gebaseerde Virtualhost instellen in Apache
  • Hoe de wachtwoordbeveiliging van de webdirectory in Apache in te stellen
  • Apache-server instellen met SSL-ondersteuning op Ubuntu
  • Fail2ban instellen om Apache te beschermen tegen een DDOS-aanval
  • Hoe Webdav instellen met Apache op Ubuntu
  • Controleer Apache Web Server met Mod_status
  • Hoe te beschermen tegen DDoS met Mod_evasive op Apache Server

Apache is een van de meest gebruikte en populaire webservers ter wereld en levert bijna 40% van alle servers ter wereld. Als u een webmaster of beheerder bent en een Apache-server onderhoudt, is het belangrijk dat u weet hoe u Apache beveiligt en voorkomt dat deze wordt gehackt. In dit artikel zullen we enkele tips en trucs beschrijven die u kunt gebruiken om uw Apache-server te beveiligen.

Opmerking : we gebruiken Ubuntu 14.04 voor deze zelfstudie.

Installeer en update Apache

Eerst moet je Apache updaten en installeren op je systeem.

Voer hiervoor de volgende opdracht uit:

 sudo apt-get update sudo apt-get install apache2 

Apache-versie verbergen

Standaard toont Apache de versie van uw Apache-webserver die op uw systeem is geïnstalleerd met de naam van het besturingssysteem van uw server.

In de bovenstaande schermafbeelding ziet u de Apache-versie en het besturingssysteem op uw server zijn geïnstalleerd. Dit kan een groot beveiligingsprobleem zijn voor uw webserver. Om deze informatie te verbergen, moet je het hoofdconfiguratiebestand van Apache bewerken ("/etc/apache2/conf-enabled/security.conf").

 sudo nano /etc/apache2/conf-enabled/security.conf 

Voeg de volgende regel toe of bewerk deze:

 ServerSignature Off ServerTokens Prod 

Sla het bestand op en start de apache-service opnieuw.

 sudo /etc/init.d/apache2 opnieuw opstarten 

Schakel Directory Browsing uit en schakel Symbolische koppelingen uit

Standaard is directoryvermelding ingeschakeld op de Apache-server. Maplijst toont de volledige map met alle bestanden van de Apache-server. Als dit is ingeschakeld, kan een aanvaller elk bestand gemakkelijk bekijken, analyseren en gevoelige informatie over een toepassing verkrijgen.

U kunt de standaard directorylijst in de onderstaande afbeelding zien.

U kunt deze instelling uitschakelen door het Apache-configuratiebestand te bewerken.

 sudo nano /etc/apache2/apache2.conf 

Voeg de volgende regel toe of bewerk deze:

 Opties -FollowSymLinks AllowOverride Geen Vereist alle verleend 

Opmerking : de bovenstaande code gaat ervan uit dat uw webpagina's worden weergegeven vanuit de map "/ var / www / html". Als u de openbare map hebt gewijzigd in een aangepaste locatie, wijzigt u het pad naar de map in de bovenstaande code.

De regel Options -FollowSymLinks schakelt ook symbolische koppelingen uit. Als u symbolische koppelingen wilt inschakelen, verwijdert u het teken "-" vóór FollowSymLinks, zodat het Options FollowSymLinks.

Sla het bestand op en start de Apache-server opnieuw.

Hierna probeert u het web in een browser te bezoeken en krijgt u een verboden foutmelding in de onderstaande afbeelding.

Onnodige modules uitschakelen

Standaard wordt Apache geleverd met verschillende geïnstalleerde modules die niet nodig zijn voor normaal gebruik. Het wordt aanbevolen om het vet in te korten en al die onnodige modules uit te schakelen. U kunt alle ingeschakelde modules weergeven op uw server met behulp van de volgende opdracht:

 sudo ls / etc / apache2 / mods-enabled / 

Dit geeft de uitvoer weer zoals getoond in de onderstaande afbeelding.

Van de hierboven vermelde modules zijn sommige modules zoals "status" en "autoindex" ingeschakeld, maar niet nodig.

U kunt deze modules uitschakelen met behulp van de volgende opdracht:

 sudo a2dismod autoindex sudo a2dismod status sudo /etc/init.d/apach2 restart 

Maak gebruik van ModSecurity

Mod security is een gratis Apache-module die wordt gebruikt om uw webserver te beschermen tegen verschillende aanvallen zoals SQL-injectie, cross-site scripting, sessie-kaping, brute force en vele andere exploits. Hiermee kunt u ook het verkeer in realtime volgen.

U kunt mod-beveiliging installeren met behulp van de volgende opdracht:

 sudo apt-get install libapache2-modsecurity 

Gebruik de volgende opdracht om te controleren of de mod_security-module actief is:

 sudo apachectl -M | grep - kleurbeveiliging 

De onderstaande afbeelding geeft aan dat de module is geladen.

Om de mod_security-regels in te schakelen, moet u het door mod security aanbevolen configuratiebestand hernoemen en bewerken en de SecRuleEngine optie op On .

Voer hiervoor de volgende opdracht uit:

 sudo mv /etc/modsecurity/modsecurity.conf- aanbevolen /etc/modsecurity/modsecurity.conf sudo nano /etc/modsecurity/modsecurity.conf 

Voeg de volgende regel toe of bewerk deze:

 SecRuleEngine On 

Start nu Apache opnieuw om de wijzigingen door te voeren.

Er zijn veel beveiligingsregels die horen bij Modesecurity (de Core Rule Set genoemd) die zich bevinden in de map "/ usr / share / modsecurity-crs". Nu moet u deze regels inschakelen om deze met Apache te laten werken.

U kunt dit doen door het bestand "/etc/apache2/mods-enabled/security2.conf" te bewerken.

 sudo nano /etc/apache2/mods-enabled/security2.conf 

Voeg de volgende regel toe of bewerk deze:

 IncludeOptional /etc/modsecurity/*.conf IncludeOptional "/usr/share/modsecurity-crs/*.conf" IncludeOptional "/usr/share/modsecurity-crs/base_rules/*.conf 

Sla het bestand op en start Apache opnieuw.

Turn Off Server Side Includes en CGI Execution.

Het wordt aanbevolen om server side includes en CGI-uitvoering uit te schakelen als dit niet nodig is.

Om dit te doen, moet je het hoofdconfiguratiebestand van Apache bewerken.

 sudo nano /etc/apache2/apache2.conf 

Voeg de volgende regel toe of bewerk deze:

 Opties -FollowSymLinks -Includes -ExecCGI AllowOverride Geen Vereist alle verleend 

Sla het bestand op en start Apache opnieuw.

U kunt dit ook doen voor een specifieke map. Om bijvoorbeeld server side includes en cgi file-uitvoeringen uit te schakelen voor de "/ var / www / html / webdir1" directory, ddd / bewerk de volgende regel:

 Opties -inclusief -ExecCGI 

Sla het bestand op en start Apache opnieuw.

Grote verzoeken beperken

Standaard heeft Apache geen limiet voor de grootte van het HTTP-verzoek. Hierdoor kan een aanvaller een grote hoeveelheid gegevens verzenden. Apache heeft verschillende richtlijnen waarmee u een juiste aanvraaggrootte kunt instellen. Hiermee wordt uw webserver beschermd tegen een denial-of-service-aanval.

U kunt de waarde instellen van 0 (onbeperkt) tot 2147483647 (2GB) in het hoofdconfiguratiebestand van Apache.

Beperk bijvoorbeeld de aanvraaggrootte van de map "/ var / www / html / webdir1" tot 200K.

 sudo nano /etc/apache2/apache2.conf 

Voeg de volgende regel toe of bewerk deze:

 LimitRequestBody 204800 

Sla het bestand op en start Apache opnieuw.

Niet toestaan ​​om buiten de documentroot te bladeren

Het wordt aanbevolen dat Apache alleen toegang heeft tot de hoofdmap van het document. U kunt de hoofdmap (/) beveiligen door de volgende regel in te stellen:

 sudo nano /etc/apache2/apache2.conf 

Voeg de volgende regel toe of bewerk deze:

 Opties Geen Bestellen weigeren, Deny van iedereen toestaan 

Dit is wat de code doet:

  • Options None : hiermee worden alle opties uitgeschakeld.
  • Order deny, allow : de volgorde waarin de opdrachten toestaan ​​en weigeren worden toegepast.
  • Deny from all : dit zal een verzoek van iedereen naar de hoofdmap weigeren.

Sla het bestand op en start Apache opnieuw.

Houd Apache up-to-date

Nieuwe Apache-updates bevatten nieuwe oplossingen en patches die de kwetsbaarheid van uw Apache-server verminderen, dus het wordt aanbevolen om de nieuwste versie van de Apache-server te gebruiken.

U kunt uw Apache bijwerken naar de nieuwste versie met behulp van de volgende opdracht:

 sudo apt-get install apache2 --reinstall 

Conclusie

Ik hoop dat dit bericht je helpt bij het beveiligen van je Apache-server. U vindt meer geavanceerde beveiligingstips en -trucs voor het beveiligen van de Apache-server in mijn volgende bericht. Reageer hieronder als je nog vragen hebt.