Installeer Modsecurity met Apache op Ubuntu 22.04 | 20.04 - Ondersteunde Linux (2023)

ModSecurity is een populaire en krachtige open source webapplicatie-firewall (WAF) die is ontworpen om uw server te beschermen tegen verschillende webgebaseerde aanvallen. Als module voor de Apache HTTP-server biedt het real-time monitoring, logging en toegangscontrole om uw webapplicaties te beschermen tegen veelvoorkomende exploits en kwetsbaarheden. De OWASP Core Rule Set (CRS) is een algemeen erkende set regels die ModSecurity gebruikt om potentiële bedreigingen te detecteren en te voorkomen. CRS is ontwikkeld door het Open Web Application Security Project (OWASP) en is een robuuste en uitgebreide regelset die essentiële bescherming biedt tegen een verscheidenheid aan aanvallen, waaronder SQL-injectie, cross-site scripting (XSS) en andere OWASP-toptienrisico's.

Enkele van de belangrijkste kenmerken van ModSecurity en de OWASP Core Rule Set zijn:

  • real-time bewaking: ModSecurity bewaakt HTTP-verkeer in realtime, waardoor kwaadaardige verzoeken kunnen worden gedetecteerd en geblokkeerd voordat ze uw web-apps bereiken.
  • Registreer en verifieer: ModSecurity biedt gedetailleerde logging- en monitoringmogelijkheden die essentieel zijn voor het onderzoeken van beveiligingsincidenten en het begrijpen van aanvalspatronen.
  • Aanpasbare regels: ModSecurity is zeer flexibel en aanpasbaar, waardoor u regels kunt maken en wijzigen om aan uw specifieke beveiligingsbehoeften te voldoen.
  • Resultaat anomalie: Het OWASP CRS gebruikt een anomaliescoresysteem dat verzoeken rangschikt op basis van de ernst van de gedetecteerde bedreigingen. Hierdoor kunt u uw beveiligingsinstellingen aanpassen en valse positieven minimaliseren.

Deze gids laat u zien hoe u ModSecurity met Apache installeert en de OWASP Core Rule Set op Ubuntu 22.04 Jammy Jellyfish of Ubuntu 20.04 Focal Fossa configureert om uw webapplicaties te beschermen tegen mogelijke aanvallen en kwetsbaarheden.

Inhoudsopgave

ModSecurity 2 versus ModSecurity 3: compatibiliteit met Apache

ModSecurity heeft belangrijke wijzigingen ondergaan tussen de tweede en derde versie. Hoewel beide versies dienen als effectieve webapplicatie-firewalls, zijn er verschillen in hun compatibiliteit met Apache.

tegen bescherming 2

ModSecurity 2 is de versie die actief wordt ontwikkeld en onderhouden voor Apache-webservers. Het biedt een robuuste set functies die bescherming bieden tegen verschillende webgebaseerde aanvallen. Deze versie wordt veel gebruikt en is de beste keuze voor Apache-gebruikers die hun webapplicaties willen beveiligen.

tegen bescherming 3

ModSecurity 3 vertegenwoordigt daarentegen een ingrijpende softwarerevisie en is ontwikkeld met de nadruk op het verbeteren van prestaties, flexibiliteit en gebruiksgemak. De ontwikkelingsinspanningen voor ModSecurity 3 waren echter vooral gericht op Nginx en andere webservers. Hierdoor wordt ModSecurity 3 niet actief ontwikkeld voor Apache, wat betekent dat Apache-gebruikers moeten blijven vertrouwen op ModSecurity 2 voor hun firewallbehoeften voor webtoepassingen.

Stap 1: Installeer of Apache

Begin met het updaten van uw systeem om ervoor te zorgen dat alle bestaande pakketten up-to-date zijn met de volgende opdracht:

sudo apt-update && sudo apt-upgrade

Na het updaten van uw systeem installeert u Apache als dit nog niet op uw Ubuntu-server is geïnstalleerd:

sudo apt installeert apache2

Stap 2: Installeer de Apache ModSecurity-module

Vervolgens moet u nu een repository van derden importeren om de nieuwste Apache Modescurity-sjabloon te installeren. De versie in de standaard Ubuntu-repository's werkt niet, en je zult meteen fouten tegenkomen als je de standaardversie gebruikt. Deze repository van derden staat goed vermeld op GitHub en levert de binaire bestanden al geruime tijd, kijk op de officiële website voor meer informatie.

Installeer eerst de volgende pakketten op uw systeem:

sudo apt install apt-transport-https lsb-release ca-zertifikate curl -y

Importeer vervolgens de GPG-sleutel in de volgende repository:

krul -fsSL https://modsecurity.digitalwave.hu/archive.key | sudo gpg --geliefde | sudo tee /usr/share/keyrings/digitalwave-modsecurity.gpg > /dev/null

Importeer nu de repository met de volgende opdracht:

echo "deb [assinado por=/usr/share/keyrings/digitalwave-modsecurity.gpg] http://modsecurity.digitalwave.hu/ubuntu/ $(lsb_release -sc) main" | sudo tee -a /etc/apt/sources.list.d/digitalwave-modsecurity.listecho "deb [ondertekend door=/usr/share/keyrings/digitalwave-modsecurity.gpg] http://modsecurity.digitalwave.hu/ ubuntu/ $(lsb_release -sc)-backports main" | sudo tee -a /etc/apt/sources.list.d/digitalwave-modsecurity.list

Nu moet u het APT-beleid instellen om eerst deze repository te verkiezen voor de benoemde pakketten die u wilt installeren. Kopieer en plak deze opdracht, die dit automatisch doet:

gato << EOF | sudo tee -a /etc/apt/preferences.d/99modsecurityPackage: *nginx*Pin: origin modsecurity.digitalwave.huPin-Priority: 900Package: *libapache2-mod-security2*Pin: origin modsecurity.digitalwave.huPin-Priority: 900Package : *modsecurity-crs*Pin: oorspronkelijk modsecurity.digitalwave.huPin prioriteit: 900Pakket: *libmodsecurity*Pin: oorspronkelijk modsecurity.digitalwave.huPin prioriteit: 900EOF

Optioneel kunt u dit bevestigen met de volgende opdracht:

sudo apt-cachebeleid nginx-extras libapache2-mod-security2 modsecurity-crs libmodsecurity3

Voer een APT-update uit om de nieuw geïmporteerde bron weer te geven:

Update sudo apt

Installeer nu het libapache2-mod-security2-model:

sudo apt install libapache2-mod-security2

Nadat de installatie is voltooid, schakelt u de module in met de volgende opdracht:

sudo a2enmod beveiliging2

Vergeet niet de Apache2-service opnieuw op te starten om de nieuwe module en wijzigingen toe te passen.

sudo systemctl herstart apache2

Stap 3: Activeer de ModSecurity-module

Het Apache ModSecurity-configuratiebestand is te vinden op/etc/apache2/mods-enabled/security2.conf.

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

Zoek de volgende regel:

IncludeOptioneel /etc/modsecurity/*.conf

Zorg ervoor dat deze regel niet is becommentarieerd, dit zou standaard moeten zijn.

Voorbeeld:

Onbuigzaam

Hernoemd om door te gaanmodsecurity.conf-empfohlenConfiguratiebestand:

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

open ditmodsecurity.confBestand met uw favoriete teksteditor op Ubuntu:

sudo nano /etc/modsecurity/modsecurity.conf

De engine voor configuratieregels van ModSecurity is standaard ingesteld op "DetectionOnly", die kwaadaardig gedrag detecteert maar niet blokkeert of weigert. Om ModSecurity in te schakelen, wijzigt u de invoer in regel 7 in "Aan":

Alleen SecRuleEngine-detectie

Werk het bij naar:

SecRuleEngine ingeschakeld

Voorbeeld:

Onbuigzaam

vind ze danSecAuditLogPartsLijn op lijn 224:

# Log alles wat we weten over een transactie.SecAuditLogParts ABDEFHIJZ

Deze instelling is onjuist en moet worden gewijzigd. Zo aanpassen:

SecAuditLogParts ABCEFHJKZ

Voorbeeld:

Installeer Modsecurity met Apache op Ubuntu 22.04 | 20.04 - Ondersteunde Linux (3)Onbuigzaam

Sla het bestand op (CTRL+O) en sluit af (CTRL+X). Start ten slotte de Apache-service opnieuw om de wijzigingen toe te passen:

sudo systemctl herstart apache2

Stap 4: Installeer de OWASP-kernregelset voor ModSecurity

ModSecurity zelf beschermt uw webserver niet; Je moet regels hebben. Een van de bekendste en meest gebruikte regelsets is de OWASP Core Rule Set (CRS). Deze regels worden vaak gebruikt op webservers en andere webapplicatie-firewalls (WAF's). Het installeren van deze regelset biedt sterke bescherming tegen veel nieuwe webbedreigingen door kwaadwillende actoren te identificeren en te blokkeren.

Controleer altijd deOWASP-pagina met releasetagsnaar de nieuwste versie, aangezien het onderstaande voorbeeld verouderd kan zijn.

Maak eerst de hoofdmap voor OWASP:

sudo mkdir /etc/apache2/modsec/

Gebruik dan dewkrijgOpdracht om OWASP CRS 3.3.4-bestand te downloaden, de nieuwste stabiele versie op het moment van schrijven. Controleer de bovenstaande link voor de huidige versies van de kernregelset.

wget https://github.com/coreruset/coreruset/archive/refs/tags/v3.3.4.tar.gz

Als je de voorkeur geeft aan nachtelijke compilatie, wees dan voorbereid om GitHub CoreRuleSet periodiek opnieuw te compileren en te controleren op updates. Nachtelijke compilatie kan meer veiligheid bieden, maar problemen veroorzaken. Voor beginners, blijf bij de stabiele release en vermijd de nachtelijke build.

Pak nu het bestand uit:

sudo tar xvf v3.3.4.tar.gz -C /etc/apache2/modsec

Vergeet niet de commando's te wijzigen als u een andere versie van OWASP CRS hebt gedownload.

OWASP CRS wordt geleverd met een voorbeeldconfiguratiebestand dat u moet hernoemen. Gebruik dezienOpdracht om een ​​kopie te maken en het origineel als back-up te bewaren.

sudo cp /etc/apache2/modsec/coreruset-3.3.4/crs-setup.conf.example /etc/apache2/modsec/coreruset-3.3.4/crs-setup.conf

Zorg ervoor dat je het vervangt/coreruset-3.3.4/met de exacte versie van OWASP CRS die u hebt geselecteerd.

Om de regels te activeren, opent u het/etc/apache2/mods-enabled/security2.confBestand:

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

Voeg de volgende twee regels toe aan het bestand:

Plak /etc/apache2/modsec/coreruset-3.3.4/crs-setup.conf Plak /etc/apache2/modsec/coreruleset-3.3.4/rules/*.conf

Zorg ervoor dat je het vervangt/coreruset-3.3.4/met de exacte versie van OWASP CRS die u hebt geselecteerd.

Becommentarieer of verwijder ook de volgende regel:

IncludeOpcional /usr/share/modsecurity-crs/*.load

Voorbeeld:

Onbuigzaam

Sla het bestand op (CTRL+O) en sluit af (CTRL+X).

Start uw Apache-service opnieuw om de wijzigingen toe te passen:

sudo systemctl herstart apache2

Stap 5: Begrijp de OWASP-kernregelset

OWASP CRS biedt vele opties en de standaardinstellingen bieden out-of-the-box bescherming voor de meeste servers zonder legitieme bezoekers of SEO-bots te beïnvloeden. In dit gedeelte worden enkele belangrijke gebieden behandeld, maar het wordt aanbevolen dat u de configuratiebestanden volledig doorleest om alle beschikbare opties te begrijpen.

Begin met het openen van uwcrs-setup.confBestand:

sudo nano /etc/apache2/modsec/coreruset-3.3.4/crs-setup.conf

Hier kunt u de meeste OWASP CRS-instellingen wijzigen.

OWASP CRS-resultaten

ModSecurity werkt in twee modi:

  1. Anomalie Scoring-modus(aanbevolen): in deze modus genereert elke matchregel een "Dismiss Score". De afwijkingsscore wordt gecontroleerd nadat de regels voor inkomend en uitgaand verkeer zijn verwerkt, en de blokkeringsscoreregels passen een verstorende actie toe (standaard wordt een 403-fout geretourneerd). Deze modus biedt nauwkeurigere logboekinformatie en meer flexibiliteit bij het definiëren van intrekkingsbeleid.
  2. Standalone-modus: De regels passen een actie rechtstreeks toe in deze modus. Het kan het gebruik van bronnen verminderen, maar biedt minder flexibiliteit bij het blokkeren van beleid en minder informatieve auditlogboeken. De eerste regel die overeenkomt, voert de opgegeven actie uit, dus de evaluatie stopt meestal na de eerste regel die overeenkomt.

Grad een Paranoia

Er zijn vier niveaus van paranoia:

  1. Paranoia Stufe 1: Standaardniveau, aanbevolen voor de meeste gebruikers.
  2. Paranoia Stufe 2: Alleen voor gevorderde gebruikers.
  3. Paranoia Stufe 3: Alleen voor ervaren gebruikers.
  4. Paranoia Stufe 4: Niet aanbevolen behalve in uitzonderlijke gevallen.

Hogere paranoia-niveaus zorgen voor aanvullende regels voor een betere beveiliging, maar vergroten ook de kans dat legitiem verkeer wordt geblokkeerd vanwege valse positieven. Zorg ervoor dat u het juiste niveau kiest op basis van uw ervaring en beveiligingsbehoeften.

Test OWASP CRS op uw server

Om te controleren of OWASP CRS op uw server draait, opent u uw internetbrowser en voert u de volgende URL in, waarbij u "uwdomein.com" vervangt door uw eigenlijke domein:

https://www.ihredomain.com/index.html?exec=/bin/bash

Als u de foutmelding 403 Forbidden ontvangt, werkt het OWASP CRS naar behoren. Anders heeft u mogelijk een stap in het installatieproces gemist.

Voorbeeld:

Onbuigzaam

Het meest voorkomende probleem is vergeten te veranderenAlleen detectieOnaangenaamEen, zoals besproken in de tutorial hierboven.

Stap 6: Omgaan met valse positieven en uitsluitingen van aangepaste regels

Het omgaan met false positives kan een doorlopend proces zijn, maar de bescherming die wordt geboden door ModSecurity en OWASP CRS is de moeite meer dan waard. Ten eerste is het het beste om het paranoia-niveau laag te houden om het aantal valse positieven te minimaliseren.

Een bruikbare aanpak is om de regelset een paar weken of zelfs maanden te laten draaien met minimale valse positieven voordat de paranoia zich opbouwt. Op die manier wordt u niet in één keer overstelpt met tonnen valse alarmen.

Sluit bekende apps uit van valse alarmen

ModSecurity kan standaard veelvoorkomende acties weergeven die resulteren in valse positieven. Hier is een voorbeeld:

#SecAction \# "id:900130,\# fase:1,\# nolog,\# pass,\# t:none,\# setvar:tx.crs_exclusions_cpanel=1,\# setvar:tx.crs_exclusions_dokuwiki=1,\ # setvar:tx.crs_exclusions_drupal=1,\# setvar:tx.crs_exclusions_nextcloud=1,\# setvar:tx.crs_exclusions_phpbb=1,\# setvar:tx.crs_exclusions_phpmyadmin=1,\# setvar:tx.crs_exclusions_wordpress=1,\ # setvar:tx.crs_exclusions_xenforo=1"

Om whitelisting voor applicaties zoals WordPress, phpBB en phpMyAdmin in te schakelen, moet u de regels uitcommentariëren en de waarde (1) behouden. Voor andere services die u niet gebruikt, wijzigt u de waarde in (0) om te voorkomen dat u ze op de witte lijst zet.

Hier is een voorbeeld van de gewijzigde configuratie:

SecAction \ "id:900130,\ phase:1,\ nolog,\ pass,\ t:none,\ setvar:tx.crs_exclusions_phpbb=1,\ setvar:tx.crs_exclusions_phpmyadmin=1,\ setvar:tx.crs_exclusions_wordpress=1"

In dit voorbeeld zijn onnodige opties verwijderd en is de juiste syntaxis gebruikt.

Verwijder regels vóór CRS

Als u aangepaste uitsluitingen wilt maken, hernoemt u eerst hetVERZOEK-900-UITSLUITING-REGRAS-VOOR-CRS-SAMPLE.confbestand met dezienWerk:

sudo cp /etc/apache2/modsec/coreruleset-3.3.4/rules/REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example /etc/apache2/modsec/coreruleset-3.3.4/rules/REQUEST-900 -REGELS-UITSLUITING-VOOR-CRS.conf

Onthoud dat elke uitsluitingsregel uniek moet zijnid:<regelnummer>Anders zult u fouten tegenkomen bij het testen van uw Apache2-service.

Bijvoorbeeld sommigeREQUEST_URIs kunnen tot valse alarmen leiden. Het onderstaande voorbeeld demonstreert twee van dergelijke gevallen met behulp van de Google PageSpeed-vlag en de WPMU DEV-plug-in voor WordPress:

SecRule REQUEST_URI "@beginsWith /wp-load.php?wpmudev" "id:1544,phase:1,log,allow,ctl:ruleEngine=off"SecRule REQUEST_URI "@beginsWith /ngx_pagespeed_beacon" "id:1554,phase:1, log,allow,ctl:ruleEngine=off"

Deze regels staan ​​automatisch elke URL toe die begint met het opgegeven pad.

U kunt IP-adressen ook op een aantal manieren op de witte lijst zetten:

SecRule REMOTE_ADDR "^195\.151\.128\.96" "id:1004,fase:1,nolog,allow,ctl:ruleEngine=off"

of

SecRule REMOTE_ADDR "@ipMatch 127.0.0.1/8, 195.151.0.0/24, 196.159.11.13" "fase:1,id:1313413,allow,ctl:ruleEngine=off"

De@ipMatchDe richtlijn kan worden gebruikt voor bredere subnet-matching. Wijzig toestaan ​​om te weigeren om een ​​subnet of IP-adres te weigeren. Met enige ervaring kun je blacklists en whitelists maken en deze zelfs integreren in Fail2Ban. De mogelijkheden zijn bijna onbeperkt.

Een andere benadering is om specifieke regels uit te schakelen die resulteren in valse positieven in plaats van het hele pad op de witte lijst te zetten. Deze methode vereist meer tijd en testen. Als bijvoorbeeld regels 941000 en 942999 in uw /admin/-sectie constant valse bans en blokkeringen voor uw team veroorzaken, zoekt u de regel-ID in uw ModSecurity-logboeken en schakelt u alleen die ID ermee uitRemoveByID:

SecRule REQUEST_FILENAME "@beginsWith /admin" "id:1004,fase:1,pass,nolog,ctl:ruleRemoveById=941000-942999"

Met betrekking tot valse positieven met Apache, ModSecurity en OWASP is het belangrijk om de logboeken te bekijken en patronen te identificeren die op valse positieven kunnen wijzen. Eenmaal geïdentificeerd, kunt u aangepaste regels maken om ze op te lossen. Als u bijvoorbeeld bepaalde regels vindt die altijd resulteren in fout-positieven, kunt u voor die specifieke gevallen een uitsluitingsregel maken.

Stap 7: Logrotatie configureren voor ModSecurity

ModSecurity-logboeken kunnen snel groeien, dus het configureren van logboekrotatie is essentieel om logboeken efficiënt te beheren. Logboekrotatie is niet standaard geconfigureerd, dus u moet een logboekrotatiebestand maken voor ModSecurity.

Maak en open eerst een nieuw ModSecurity-rotatiebestand met de naammodsec:

sudo nano /etc/logrotate.d/modsec

Voeg de volgende code toe aan het bestand:

/var/log/modsec_audit.log{ 31 dagen draaien lostsok comprimeren delaycompress notifempty}

Met deze instelling worden logboeken 31 dagen bewaard. Als u logboeken liever voor een kortere periode wilt opslaan, wijzigt u eenvoudig de31voor het gewenste aantal dagen (bijv.7voor logboeken van een week). Het wordt aanbevolen om ModSecurity-logboeken dagelijks te roteren, aangezien het behoorlijk moeilijk kan zijn om grote logbestanden een hele week te bekijken.

Door logboekrotatie te configureren, kunt u uw ModSecurity-logboeken effectief beheren en ervoor zorgen dat oudere logboeken worden gecomprimeerd en uiteindelijk worden verwijderd, waardoor het gemakkelijker wordt om problemen te analyseren en op te lossen.

Diploma

Samenvattend is het installeren van ModSecurity met Apache op Ubuntu een effectieve manier om uw webapplicaties te beveiligen. Door de stappen in deze handleiding te volgen, kunt u ModSecurity, OWASP CRS met succes configureren en configureren en regels afstemmen om valse positieven te minimaliseren. Het handhaven van de beveiliging van webapplicaties is essentieel en ModSecurity is een krachtige tool die kan worden gebruikt om uw applicaties te beschermen tegen verschillende bedreigingen.

Aanvullende bronnen en links

Bekijk deze officiële bronnen voor meer informatie over ModSecurity en gerelateerde tools:

  • De GitHub-repository van ModSecurity: De officiële GitHub-repository bevat de ModSecurity-broncode en is de beste plek om de nieuwste versies te vinden, problemen te melden en bij te dragen aan het project.Bezoek het depot
  • Projeto OWASP Kernregelset (CRS): Meer informatie over het OWASP CRS, dat een reeks generieke aanvalsdetectieregels biedt voor gebruik met ModSecurity.Bezoek de OWASP CRS-projectpagina
  • OWASP Core Ruleset GitHub-repository: Toegang tot de officiële GitHub-repository voor het OWASP Core Rule Set-project, waar u de nieuwste regelsets kunt vinden, problemen kunt melden en kunt bijdragen aan het project.Bezoek het depot
  • ModSecurity-Referentiehandleiding: De officiële ModSecurity-referentiegids bevat gedetailleerde documentatie over ModSecurity-functies, configuratie en gebruik.Toegang tot de naslaggids
  • ModSecurity geen Twitter: Blijf op de hoogte van het laatste nieuws, publicaties en discussies met betrekking tot ModSecurity door hun officiële Twitter-account te volgen.Siga ModSecurity geen Twitter
  • ModSecurity Digitalwave-opslagplaats: Deze repository van derden biedt voorgecompileerde ModSecurity-pakketten voor verschillende distributies. Bezoekmodsecurity.digitalwave.hu

FacebookTwitterenRedditWhatsAppen

Vergelijkbare berichten:

  • Installeer ModSecurity 3 + OWASP com Nginx zonder Ubuntu 22.04 LTS
  • Prometheus installeren op Ubuntu 22.04 of 20.04
  • Nmap installeren op Ubuntu 22.04 LTS
  • Hoe UFW Firewall te installeren en configureren op Ubuntu 22.04 of 20.04
  • WordPress installeren met Nginx, MariaDB, PHP op Ubuntu 22.04 of 20.04
  • WonderCMS installeren met Nginx op Ubuntu 22.04 | 20.04
  • Apache bijwerken op Ubuntu 22.04 of 20.04
  • Installeer Apache of Ubuntu 22.04 LTS
  • Redis installeren op Ubuntu 20.04 LTS
  • Hoe Apache Subversion te installeren op Ubuntu 22.04 of 20.04
Top Articles
Latest Posts
Article information

Author: Zonia Mosciski DO

Last Updated: 03/29/2023

Views: 6265

Rating: 4 / 5 (51 voted)

Reviews: 82% of readers found this page helpful

Author information

Name: Zonia Mosciski DO

Birthday: 1996-05-16

Address: Suite 228 919 Deana Ford, Lake Meridithberg, NE 60017-4257

Phone: +2613987384138

Job: Chief Retail Officer

Hobby: Tai chi, Dowsing, Poi, Letterboxing, Watching movies, Video gaming, Singing

Introduction: My name is Zonia Mosciski DO, I am a enchanting, joyous, lovely, successful, hilarious, tender, outstanding person who loves writing and wants to share my knowledge and understanding with you.