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ů.
V tomto tutoriálu se naučíte, jak nainstalovat bránu firewall ModSecurity s předinstalovaným Nginx. K demonstraci procesu jsme použili server Ubuntu 20.04.
Předpoklady
Server Ubuntu 20.04 LTS
Nginx nainstalovaný na serveru Ubuntu
Průvodce instalací
Pokud na svém serveru nemáte nainstalovaný Nginx, postupujte podle tohoto průvodce, abyste splnili požadavek na instalaci Modsecurity:
https://linuxways.net/ubuntu/how-to-install-nginx-on-ubuntu-20-04-lts-using-source-code/
Nyní, když jste nainstalovali Nginx, začněme s instalací ModSecurity.
Krok 1:Nainstalujte libmodsecurity3
Nejprve 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/
Krok 2: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/
Krok 3: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
Krok 4:Instalace modulů Git
Nyní nainstalujte submoduly git pomocí tohoto příkazu:
git submodule init
Dále aktualizujeme submoduly:
git submodule update
Krok 5: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:
Je v pořádku to ignorovat a jít dál.
Krok 6:Kompilace zdrojového kódu 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/ .
Step 7: Install modsecurity-nginx connector
V tomto kroku 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/
Krok 8: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/
Krok 9: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;
Krok 10: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.
Krok 11: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/
Krok 12: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
Pokud získáte následující výstup, můžete začít:
Krok 13:Znovu načtěte Nginx
Nyní restartujte Nginx pomocí tohoto příkazu:
sudo systemctl restart nginx
V této příručce jsme viděli, jak můžeme nainstalovat Modsecurity na server ubuntu, který již má předinstalovaný Nginx. Také jsme viděli, jak nakonfigurovat ModSecurity a Nginx, aby je propojily pomocí několika snadno pochopitelných příkazů.