ModSecurity je bezplatná brána firewall webových aplikací s otevřeným zdrojovým kódem podporovaná různými webovými servery, jako jsou Apache, IIS a Nginx. Je nasazen jako externí bezpečnostní vrstva k ochraně webových serverů.
Zde na LinuxAPT se podíváme na to, jak nainstalovat ModSecurity firewall s předinstalovaným Nginx na serveru Ubuntu 20.04.
Kroky k nasazení Modsecurity s Nginx na Ubuntu 20
1. Nainstalujte Nginx do systému
Pokud nemáte na svém serveru nainstalovaný Nginx, postupujte podle tohoto průvodce, abyste splnili požadavek na instalaci Modsecurity:https://linuxapt.com/blog/1276-install-nginx-on-ubuntu-20-04-lts-using- zdrojový kód
2. Nainstalujte libmodsecurity3
Nyní nainstalujte git na svůj počítač, abyste mohli naklonovat úložiště git ModSecurity. Můžeme to udělat spuštěním tohoto příkazu:
$ sudo apt install git -y
Nyní, když je git nainstalován, naklonujte úložiště spuštěním tohoto příkazu:
$ git clone --depth 1 -b v3/master --single-branch https://github.com/SpiderLabs/ModSecurity /usr/local/src/ModSecurity/
3. Přejděte do adresáře Modsecurity
Nyní, když jste naklonovali repozitář modsecurity git, přejděte do adresáře modsecurity podle cesty níže:
$ cd /usr/local/src/ModSecurity/
4. Nainstalujte závislosti libmodsecurity3
Nyní, když jsme v adresáři Modsecurity, nainstalujeme v tomto kroku závislosti libmodsecurity3. Spusťte tento příkaz:
$ sudo apt install gcc make build-essential autoconf automake libtool libcurl4-openssl-dev liblua5.3-dev libfuzzy-dev ssdeep gettext pkg-config libpcre3 libpcre3-dev libxml2 libxml2-dev libcurl4 libgeoip-dev libyajl-dev doxygen -y
5. Nainstalujte moduly Git
Nyní nainstalujte submoduly git pomocí tohoto příkazu:
$ git submodule init
Dále aktualizujeme submoduly:
$ git submodule update
6. Vytvořte prostředí modsecurity
Je čas vybudovat prostředí modsecurity. Chcete-li to provést, spusťte následující příkaz:
$ ./build.sh
Nyní nakonfigurujte pomocí tohoto příkazu:
$ ./configure
Poté se zobrazí tato chyba:
fatal: No names found, cannot describe anything.
7. Zkompilujte zdrojový kód modsecurity
Nyní zkompilujeme prostředí pro libmodsecurity3 pomocí tohoto příkazu:
$ make
Pokud chcete zvýšit rychlost kompilace, můžete zadat -j
$ make -j 4
Dále spustíme instalační příkaz:
$ sudo make install
Instalace se provádí v /usr/local/modsecurity/.
8. Nainstalujte konektor modsecurity-nginx
Zde nainstalujeme konektor Modsecurity-nginx. Je to spojovací a komunikační bod mezi Nginx a ModSecurity.
Nejprve musíme naklonovat úložiště konektorů. Udělejte to spuštěním tohoto příkazu:
$ sudo git clone --depth 1 https://github.com/SpiderLabs/ModSecurity-nginx.git /usr/local/src/ModSecurity-nginx/
9. Nainstalujte závislosti modsecurity-nginx
Nejprve přejděte do zdrojového adresáře Nginx takto:
$ cd /usr/local/src/nginx/nginx-1.21.1
Ujistěte se, že jste nahradili verzi Nginx v příkazu svou aktuální verzí Nginx, jinak se zobrazí chyba.
Chcete-li nainstalovat potřebné závislosti, spusťte tento příkaz:
$ sudo apt build-dep nginx && sudo apt install uuid-dev -y
Dále zkompilujeme modul konektoru Modsecurity-nginx s příznakem –with-compat spuštěním tohoto příkazu:
$ sudo ./configure --with-compat --add-dynamic-module=/usr/local/src/ModSecurity-nginx
Nyní spusťte tento příkaz k vytvoření dynamických modulů:
$ sudo make modules
Nyní zkopírujte dynamický modul, který jste právě vytvořili v objs/ngx_http_modsecurity_module.so do /usr/share/nginx/modules pomocí tohoto příkazu:
$ sudo cp objs/ngx_http_modsecurity_module.so /usr/share/nginx/modules/
10. Povolte Modsecurity v konfiguračním souboru Nginx
Chcete-li povolit Modsecurity v Nginx, musíte nejprve v konfiguraci zadat načítací modul a cestu k vašemu modulu modsecurity.
Otevřete konfigurační soubor Nginx pomocí editoru nano takto:
$ sudo nano /etc/nginx/nginx.conf
V souboru přidejte tento řádek nahoru:
load_module modules/ngx_http_modsecurity_module.so;
V části HTTP {} přidejte následující řádky kódu:
modsecurity on;
modsecurity_rules_file /etc/nginx/modsec/modsec-config.conf;
11. Nakonfigurujte adresář a soubory pro modsecurity
Vytvořte adresář s názvem modsec. Cesta k adresáři je uvedena v příkazu:
$ sudo mkdir /etc/nginx/modsec/
Tento adresář budete v budoucnu potřebovat pro ukládání konfiguračních souborů a pravidel.
Nyní zkopírujte ukázkový konfigurační soubor Modsecurity z klonovaného adresáře git pomocí tohoto příkazu:
$ sudo cp /usr/local/src/ModSecurity/modsecurity.conf-recommended /etc/nginx/modsec/modsecurity.conf
Nyní otevřete konfigurační soubor modsecurity:
$ sudo nano /etc/nginx/modsec/modsecurity.conf
Najděte direktivu SecRuleEngine v souboru na řádku 7 a změňte ji na DetectionOnly takto:
secruleEngine DetectionOnly
Chcete-li povolit Modsecurity, změňte následující direktivu na On takto:
secRuleEngine on
Nyní vyhledejte následující direktivu na řádku 224:
secAuditLogParts ABIJDEFHZ
Změňte jej na:
secAuditLogParts ABCDEFHJKZ
Nyní vytvořte soubor modsec-config.conf. Zde přidáte modsecurity.conf a další pravidla pro modsecurity:
$ sudo nano /etc/nginx/modsec/modsec-config.conf
Do souboru, který jste právě vytvořili, přidejte tento řádek:
Include /etc/nginx/modsec/modsecurity.conf
Uložte soubor a ukončete.
12. Zkopírujte soubor unicode.mapping
Nakonec zkopírujte soubor unicode.mapping modulu Modsecurity takto:
$ sudo cp /usr/local/src/ModSecurity/unicode.mapping /etc/nginx/modsec/
13. Zkontrolujte konfiguraci Nginx
Před restartováním Nginx zkontrolujte, zda je konfigurace v pořádku spuštěním tohoto příkazu:
$ sudo nginx -t
14. Znovu načtěte Nginx
Nyní restartujte Nginx pomocí tohoto příkazu:
$ sudo systemctl restart nginx