GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nastavit a nakonfigurovat ModSecurity na Apache

Úvod

ModSecurity je zásuvný modul pro Apache, který funguje jako firewall. Funguje prostřednictvím sad pravidel, které vám umožňují přizpůsobit a nakonfigurovat zabezpečení serveru.

ModSecurity může také monitorovat webový provoz v reálném čase a pomoci vám detekovat a reagovat na narušení. Lze jej použít s Apache, Nginx a IIF a je kompatibilní s Debianem, Ubuntu a CentOS.

Tento tutoriál vysvětluje, jak nainstalovat a nakonfigurovat ModSecurity na webových serverech Apache.

Předpoklady

  • Nainstalovaný a nakonfigurovaný zásobník LAMP (Linux, Apache, MySQL, PHP)
  • Přístup k uživatelskému účtu pomocí sudo nebo root privilegia
  • Správce balíčků (APT nebo YUM), který je součástí výchozího nastavení
  • Příkazový řádek/okno terminálu (Ctrl-Alt-T, Ctrl-Alt-F1)
  • Textový editor, jako je nano

Krok 1:Aktualizujte softwarová úložiště

Otevřete okno terminálu a zadejte následující:

Na Debian / Ubuntu

sudo apt update -y

Na CentOS

sudo yum update -y

Krok 2:Instalace ModSecurity na Apache

Nainstalujte ModSecurity na Debian

1. V okně terminálu zadejte následující:

sudo apt install libapache2-modsecurity

Pokud budete vyzváni, stiskněte y a stiskněte Enter abyste umožnili dokončení procesu.

2. Restartujte službu Apache:

sudo systemctl restart apache2

Pokud byl Apache úspěšně restartován, nebude žádný výstup.

3. Zkontrolujte verzi softwaru (měla by být 2.8.0 nebo novější):

apt-cache show libapache2-modsecurity

Nainstalujte ModSecurity na Ubuntu 18.04

1. V okně terminálu zadejte:

sudo apt install libapache2-mod-security2

Pokud budete vyzváni, stiskněte y a stiskněte Enter abyste umožnili dokončení procesu.

2. Restartujte službu Apache:

sudo systemctl restart apache2

Pokud byl Apache úspěšně restartován, nebude žádný výstup.

3. Zkontrolujte verzi softwaru (měla by být 2.8.0 nebo novější):

apt-cache show libapache2-mod-security2

Nainstalujte ModSecurity na CentOS 7

1. Do okna terminálu zadejte následující:

sudo yum install mod_security

Pokud budete vyzváni, stiskněte y a stiskněte Enter abyste umožnili dokončení procesu.

2. Restartujte službu Apache:

sudo systemctl restart httpd.service

3. Zkontrolujte verzi softwaru (měla by být 2.8.0 nebo novější):

yum info mod_security

Krok:3 Nakonfigurujte ModSecurity

Po instalaci je ModSecurity nastaven na protokolování událostí podle výchozích pravidel. Budete muset upravit konfigurační soubor, abyste upravili pravidla pro detekci a blokování provozu.

Výchozí konfigurační soubor je /etc/modsecurity/modsecurity.conf-recommended.

1. Zkopírujte a přejmenujte soubor:

sudo cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf

2. Dále změňte režim detekce ModSecurity . Nejprve přejděte do /etc/modsecurity složka:

sudo cd /etc/modsecurity

3. Otevřete konfigurační soubor v textovém editoru (budeme používat nano):

sudo nano modsecurity.conf

V horní části byste měli vidět položku označenou:

SecRuleEngine DetectionOnly

Změňte toto na následující:

SecRuleEngine On

4. Použijte CTRL+X ukončete a poté stiskněte y poté Enter pro uložení změn.

5. Přejděte ze složky /etc/modsecurity:

cd

6. Restartujte Apache:

Na Debian/Ubuntu

sudo systemctl restart apache2

Na CentOS

sudo systemctl restart httpd.service

Tím se zapne ModSecurity pomocí základních výchozích pravidel. V některých verzích Linuxu to zahrnuje sadu základních pravidel OWASP. Tato verze se však může lišit od nejnovější verze udržované vývojáři.

Krok 4:Stáhněte si nejnovější pravidla OWASP ModSecurity Rules

Nejnovější sada základních pravidel (CRS) pro ModSecurity je udržována na GitHubu.

1. Nainstalujte G to pokud již není součástí vašeho systému.

Nainstalujte Git na Debian/Ubuntu:

sudo apt install git

Nainstalujte Git na CentOS:

sudo yum install git

2. Stáhněte si kopii CRS:

git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git

Tím umístíte kopii adresáře jako podadresář vašeho aktuálního pracovního umístění.

3. Otevřete nový adresář:

cd owasp-modsecurity-crs

4. Přesuňte soubor crs-setup:

sudo mv crs-setup.conf.example /etc/modsecurity/crs-setup.conf

5. Poté přesuňte adresář rules/:

sudo mv rules/ /etc/modsecurity

Pokud při pokusu o přesunutí tohoto adresáře narazíte na chybu, zadejte:

sudo mkdir /etc/modsecurity/rules
cd rules 
sudo cp *.* /etc/modsecurity/rules

6. Dále zkontrolujte security2.conf soubor, abyste ověřili, že je nastaven na načtení pravidel ModSecurity:

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

Ověřte, zda jsou následující řádky zahrnuty a nekomentovány:

IncludeOptional /etc/modsecurity/*.conf
Include /etc/modsecurity/rules/*.conf

Pokud tam nejsou, přidejte je. Neduplikujte je, jinak riskujete deaktivaci služby Apache.

7. Restartujte službu Apache:

Na Debian/Ubuntu

sudo systemctl restart apache2

Na CentOS

sudo systemctl restart httpd.service

Krok 5:Otestujte konfiguraci Apache

1. Otevřete výchozí konfigurační soubor Apache:

sudo nano /etc/apache2/sites-available/000-default.conf

2. Vyhledejte </VirtualHost> značku dole a přidejte následující řádky:

SecRuleEngine On
SecRule ARGS:testparam "@contains test" "id:1234,deny,status:403,msg:'phoenixNAP test rule was triggered'"

msg můžete změnit podle toho, co preferujete.

Uložte a ukončete soubor (CTRL+X> y> Enter ).

3. Restartujte službu Apache:

Na Debian/Ubuntu

sudo systemctl restart apache2

Na CentOS

sudo systemctl restart httpd.service

4. Poté zadejte následující příkaz:

curl localhost/index.html?testparam=test

Systém zareaguje pokusem o zobrazení výchozí webové stránky. Místo obsahu generuje chybové kódy a zprávy uvnitř značek:

5. Fungování ModSecurity můžete potvrdit vyhledáním kódu 403 v protokolech chyb Apache pomocí příkazu:

sudo tail -f /var/log/apache2/error.log

Jedna z položek ve spodní části by měla být kód chyby ModSecurity:

Otestujte ModSecurity a OWASP CRS pomocí skriptu Bash

Další metodou, kterou můžete použít k testování ModSecurity, je použití B popel skript.

1. Do terminálu zadejte následující příkaz:

curl localhost/index.html?exec=/bin/bash

Výstup zobrazuje stejné chybové zprávy jako naposledy.

2. Znovu si prohlédněte soubor Apache error.log a zjistíte, že pravidlo bylo spuštěno:

sudo tail -f /var/log/apache2/error.log

Výstup zobrazí chybovou zprávu ModSecurity související s OWASP.

Krok 6:Vytvořte pravidla ModSecurity

Níže je testovací příklad, jak můžete použít ModSecurity k blokování konkrétních klíčových slov ve formuláři PHP.

1. Vytvořte soubor PHP v adresáři html pomocí příkazu:

sudo nano /var/www//html/test.php

2. Zadejte do souboru následující kód:

<html>
<body>
<?php
if(isset($_POST['data']))
echo $_POST['data'];
else
{
?>
<form method="post" action="">
Enter text here:<textarea name="data"></textarea>
<input type="submit"/>
</form>
<?php
}
?>
</body>
</html>

Uložte soubor a ukončete.

3. Dále vytvořte nový soubor vlastních pravidel ModSecurity:

sudo nano /etc/modsecurity/modsecurity_custom_rules.conf

Přidejte následující řádky:

SecRule REQUEST_FILENAME "test.php" "id:'400001',chain,deny,log,msg:'Spam detected'"
SecRule REQUEST_METHOD "POST" chain
SecRule REQUEST_BODY "@rx (?i:(enlarge|Nigerian|gold))"

Klíčová slova na posledním řádku samozřejmě změňte na libovolná.

Uložte soubor a ukončete.

4. Znovu načtěte službu Apache:

Na Debian/Ubuntu

sudo systemctl restart apache2

Na CentOS

sudo systemctl restart httpd.service

5. Spusťte formulář ve webovém prohlížeči

localhost/test.php

6. Zadejte jedno z klíčových slov z pravidla do formuláře. V tomto příkladu:zvětšit, nigerijský, nebo zlato .

Měli byste obdržet chybovou zprávu 403 Zakázáno.

Můžete také zkontrolovat /var/log/apache2/error.log soubor k ověření akce ModSecurity.


Ubuntu
  1. Jak povolit a nastavit soubor .htaccess na Apache

  2. Jak nainstalovat Apache na CentOS 8

  3. Jak nastavit vHosts v Apache

  1. Jak nainstalovat Apache na Ubuntu 18.04

  2. Jak nastavit virtuální hostitele Apache na Ubuntu 18.04

  3. Jak nainstalovat Apache na Ubuntu 20.04

  1. Nakonfigurujte Apache VirtualHost na Fedoře

  2. Jak nainstalovat a nakonfigurovat Nextcloud s Apache na Ubuntu 18.04

  3. Jak nainstalovat Apache na CentOS 7