ModSecurity, také známý jako Modsec, je bezplatný a open source webový aplikační firewall pro webový server Apache. ModSecurity je modul Apache, který vám pomáhá chránit váš webový server před různými typy útoků včetně SQL injection, XSS, trojských koní, botů, zachycení/únosu relací a mnoha dalších. ModSecurity poskytuje výkonné sady pravidel s monitorováním webu v reálném čase, protokolováním a řízením přístupu.
V tomto tutoriálu vám ukážeme, jak nainstalovat a nakonfigurovat zabezpečení Mod s Apache na Ubuntu 18.04.
Předpoklady
- Nové Ubuntu 18.04 VPS na cloudové platformě Atlantic.Net.
- Statická adresa IP nakonfigurovaná na vašem serveru.
Krok 1 – Vytvoření cloudového serveru Atlantic.Net
Nejprve se přihlaste ke svému cloudovému serveru Atlantic.Net. Vytvořte nový server a jako operační systém vyberte Ubuntu 18.04 s alespoň 2 GB RAM. Připojte se ke svému cloudovému serveru přes SSH a přihlaste se pomocí přihlašovacích údajů zvýrazněných v horní části stránky.
Jakmile se přihlásíte na svůj server Ubuntu 18.04, spusťte následující příkaz a aktualizujte svůj základní systém nejnovějšími dostupnými balíčky.
apt-get update -y
Krok 2 – Instalace LAMP Stack
Nejprve budete muset nainstalovat LAMP Stack na váš server. Můžete jej nainstalovat spuštěním následujícího příkazu:
apt-get install apache2 mariadb-server php7.2-mysql php7.2 libapache2-mod-php7.2 unzip git -y
Po instalaci LAMP spusťte službu Apache a povolte její spuštění po restartu systému pomocí následujícího příkazu:
systemctl start apache2 systemctl enable apache2
V tomto okamžiku je webový server Apache nainstalován a spuštěn na vašem serveru.
Krok 3 – Instalace ModSecurity
apt-get install libapache2-mod-security2 -y
Po dokončení instalace restartujte službu Apache, aby se změny projevily.
systemctl restart apache2
Dále můžete také zkontrolovat, zda byl modul načten nebo ne, spuštěním následujícího příkazu:
apachectl -M | grep security
Měli byste získat následující výstup:
security2_module (shared)
Krok 4 – Konfigurace ModSecurity
Ve výchozím nastavení nejsou nakonfigurována žádná pravidla zabezpečení, takže je budete muset nejprve povolit. Chcete-li tak učinit, přejmenujte výchozí konfigurační soubor ModSecurity /etc/modsecurity/modsecurity.conf-recommended na /etc/modsecurity/modsecurity.conf.
cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
Dále soubor upravte pomocí preferovaného textového editoru:
nano /etc/modsecurity/modsecurity.conf
Najděte následující řádek:
SecRuleEngine DetectionOnly
Nahraďte jej následujícím:
SecRuleEngine On
Po dokončení uložte a zavřete soubor. Poté restartujte službu Apache, aby se změny projevily.
systemctl restart apache2
Krok 5 – Stažení a konfigurace základního pravidla ModSecurity
Výchozí sada pravidel ModSecurity je k dispozici v adresáři /usr/share/modsecurity-crs, ale doporučujeme stáhnout si novou sadu pravidel z GitHubu.
Nejprve odstraňte stará pravidla pomocí následujícího příkazu:
rm -rf /usr/share/modsecurity-crs
Dále si stáhněte nejnovější sadu pravidel pomocí následujícího příkazu:
git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git /usr/share/modsecurity-crs
Dále budete muset povolit tuto sadu pravidel v konfiguraci Apache. Můžete to povolit úpravou souboru /etc/apache2/mods-enabled/security2.conf:
nano /etc/apache2/mods-enabled/security2.conf
Přidejte následující řádky nad řádek „“
IncludeOptional "/usr/share/modsecurity-crs/*.conf IncludeOptional "/usr/share/modsecurity-crs/rules/*.conf
Uložte a zavřete soubor. Poté restartujte službu Apache a povolte modul záhlaví Apache, aby implementoval změny.
a2enmod headers systemctl restart apache2
V tomto okamžiku je ModSecurity nakonfigurován pro práci s webovým serverem Apache.
Krok 6 – Test ModSecurity
Po konfiguraci ModSecurity se můžete pokusit spustit škodlivé skripty ve webovém prohlížeči a zkontrolovat, zda budou spuštěna pravidla ModSecurity.
Otevřete webový prohlížeč a zadejte adresu URL http://ip-ip-vašeho-serveru/index.html?exec=/bin/bash . Na následující stránce byste měli dostat zakázanou chybovou zprávu:
Chcete-li otestovat pravidla ModSecurity pro ochranu před simulovaným útokem XSS, přejděte na adresu URL http://ip-ip-vašeho-serveru/?q=”> z vašeho webového prohlížeče. Měli byste vidět následující obrazovku:
Chcete-li otestovat pravidla ModSecurity proti skenům Nessus, použijte příkaz curl se skenery Nessus k odeslání požadavků HTTP na server Apache, jak je znázorněno níže:
curl -i http://your-server-ip -A Nessus
Měli byste dostat odpověď 403 Forbidden, protože ModSecurity identifikovalo User Agent jako sken Nessus:
HTTP/1.1 403 Forbidden Date: Sat, 21 Dec 2019 04:17:24 GMT Server: Apache/2.4.29 (Ubuntu) Content-Length: 278 Content-Type: text/html; charset=iso-8859-1
Krok 7 – Vyloučení konkrétní domény z ModSecurity
V některých případech musíte z ochrany ModSecurity vyloučit konkrétní doménu. Chcete-li zakázat ModSecurity pro konkrétní doménu, otevřete konfigurační soubor virtuálního hostitele Apache pro konkrétní doménu:
nano /etc/apache2/site-enabled/your-domain.conf
Do bloku
<IfModule security2_module> SecRuleEngine Off </IfModule>
Uložte a zavřete soubor. Poté restartujte službu Apache, aby se změny projevily.
systemctl restart apache2
Závěr
Zkontrolovali jsme, jak nainstalovat a nakonfigurovat ModSecurity, aby chránil váš webový server Apache před škodlivými útoky. Další informace naleznete v dokumentaci ModSecurity na adrese ModSecurity.