V tomto tutoriálu vám ukážu, jak zkompilovat nejnovější verzi Nginx s libmodsecurity (Modsecurity 3.x) a NEZAMĚŇOVAT se s Modsecurity 2.9. Budeme také integrovat sadu základních pravidel OWASP ModSecurity Core Rule Set (CRS).
Libmodsecurity je hlavní přepis ModSecurity, který poskytuje lepší výkon a stabilitu. Přestože byl Modsecurity 2.9.x nabízen pro různé platformy, skutečně upřednostňoval nasazení s Apache a nasazení s jinými platformami vyžadovalo různé závislosti třetích stran na úkor výkonu. Libmodsecurity to vše mění tím, že je přepsáno od nuly. Více informací o Libmodsecurity naleznete zde.
Tato příručka předpokládá, že již máte zcela novou aktualizovanou instanci Ubuntu 16.04 64-bit.
1. Předpoklady instalace
Předpoklady instalace
apt-get install apache2-dev autoconf automake build-essential bzip2 checkinstall devscripts flex g++ gcc git graphicsmagick-imagemagick-compat graphicsmagick-libmagick-dev-compat libaio-dev libaio1 libass-dev libatomic-ops-dev libavcodec-dev libavdevice-dev libavfilter-dev libavformat-dev libavutil-dev libbz2-dev libcdio-cdda1 libcdio-paranoia1 libcdio13 libcurl4-openssl-dev libfaac-dev libfreetype6-dev libgd-dev libgeoip-dev libgeoip1 libgif-dev libgpac-dev libgsm1-dev libjack-jackd2-dev libjpeg-dev libjpeg-progs libjpeg8-dev liblmdb-dev libmp3lame-dev libncurses5-dev libopencore-amrnb-dev libopencore-amrwb-dev libpam0g-dev libpcre3 libpcre3-dev libperl-dev libpng12-dev libpng12-0 libpng12-dev libreadline-dev librtmp-dev libsdl1.2-dev libssl-dev libssl1.0.0 libswscale-dev libtheora-dev libtiff5-dev libtool libva-dev libvdpau-dev libvorbis-dev libxml2-dev libxslt-dev libxslt1-dev libxslt1.1 libxvidcore-dev libxvidcore4 libyajl-dev make openssl perl pkg-config tar texi2html unzip zip zlib1g-dev
2. Stáhněte si ModSecurity
Klon Git Modsecurity, pokladna a sestavení libmodsecurity
cd /opt/
git clone https://github.com/SpiderLabs/ModSecurity
cd ModSecurity
git checkout -b v3/master origin/v3/master
sh build.sh
git submodule init
git submodule update
./configure
make
make install
Git klonuje konektor Modsecurity-nginx
cd /opt/
git clone https://github.com/SpiderLabs/ModSecurity-nginx.git
Nyní byste měli mít následující adresář, který obsahuje konektor Modsecurity-nginx
/opt/ModSecurity-nginx
3. Stáhněte si Nginx
Stáhněte si nejnovější stabilní zdroj Nginx
Přejděte na http://nginx.org/en/download.html a získejte odkaz na nejnovější stabilní verzi Nginx. V době psaní tohoto článku byla nejnovější stabilní verze nginx-1.12.0.tar.gz. Upravte níže uvedené pokyny pro vaši konkrétní verzi. Stáhnout a extrahovat
cd /opt
wget http://nginx.org/download/nginx-1.12.0.tar.gz
tar -zxf nginx-1.12.0.tar.gz
cd nginx-1.12.0
4. Nakonfigurujte a nainstalujte Nginx
Nakonfigurujte Nginx pomocí konektoru Modsecurity-nginx a nainstalujte
./configure --user=www-data --group=www-data --with-pcre-jit --with-debug --with-http_ssl_module --with-http_realip_module --add-module=/opt/ModSecurity-nginx
make
make install
Zdrojový kód ModSecurity, který jsme stáhli dříve, obsahuje ukázkový soubor modsecurity.conf s některými doporučenými nastaveními. Zkopírujte tento soubor do složky s konfiguračními soubory Nginx
cp /opt/ModSecurity/modsecurity.conf-recommended /usr/local/nginx/conf/modsecurity.conf
Vytvořte symbolický odkaz z /usr/local/nginx/sbin/nginx na /bin/nginx
ln -s /usr/local/nginx/sbin/nginx /bin/nginx
Vytvořte následující adresáře:
mkdir /usr/local/nginx/conf/sites-available
mkdir /usr/local/nginx/conf/sites-enabled
mkdir /usr/local/nginx/conf/ssl
mkdir /etc/nginx
Vytvořte symbolický odkaz na z /usr/local/nginx/conf/ssl /etc/nginx/ssl
ln -s /usr/local/nginx/conf/ssl /etc/nginx/ssl
Vytvořte záložní kopii souboru conf/nginx.conf
cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.bak
Nakonfigurujte soubor /usr/local/nginx/conf/nginx.conf
vi /usr/local/nginx/conf/nginx.conf
Vyhledejte a odstraňte všechny položky počínaje "server {" a končící předposlední složenou složenou závorkou "}". Jinými slovy, ponechte poslední složenou rovnátko nedotčené.
Přímo nad poslední složenou závorku vložte následující. To dá Nginxu pokyn, aby hledal konfigurace našich stránek v adresáři "/usr/local/nginx/conf/sites-enabled"
include /usr/local/nginx/conf/sites-enabled/*;
Konec souboru by tedy měl vypadat takto (ujistěte se, že je přítomen uzavírací znak }):
include /usr/local/nginx/conf/sites-enabled/*;
}
Povolte direktivu „user“ odstraněním předpony „#“, pokud je zakázána, a ujistěte se, že je nastavena na uživatel „www-data“ namísto výchozího „nobody“, takže vypadá takto:
user www-data;
Uložte soubor.
Stáhněte si init skript Nginx od Jasona Giedymina pro správu služby nginx a nakonfigurujte jej jako službu
wget https://raw.github.com/JasonGiedymin/nginx-init-ubuntu/master/nginx -O /etc/init.d/nginx
chmod +x /etc/init.d/nginx
update-rc.d nginx defaults
Tento skript poskytuje následující možnosti pro správu služby Nginx:
# service nginx start|stop|restart|force-reload|reload|status|configtest|quietupgrade|terminate|destroy
5. Nainstalujte sadu základních pravidel OWASP ModSecuirty
Klon Git a zkopírování aktuální verze sady pravidel OWASP a konfigurace do Nginx
cd /opt/
git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git
cd owasp-modsecurity-crs/
cp -R rules/ /usr/local/nginx/conf/
cp /opt/owasp-modsecurity-crs/crs-setup.conf.example /usr/local/nginx/conf/crs-setup.conf
Nakonfigurujte Nginx pomocí sady základních pravidel OWASP ModSecuirty
Upravte /usr/local/nginx/conf/modsecurity.conf
vi /usr/local/nginx/conf/modsecurity.conf
Na konec souboru vložte následující:
#Load OWASP Config
Include crs-setup.conf
#Load all other Rules
Include rules/*.conf
#Disable rule by ID from error message
#SecRuleRemoveById 920350
V souboru Nginx modsecurity.conf nebo v souborech konf jednotlivých serverů zadejte do bloků serveru nebo umístění následující. Níže uvedený příklad ukazuje kombinaci přidání položek na server i do bloků umístění:
server {
.....
modsecurity on;
location / {
modsecurity_rules_file /usr/local/nginx/conf/modsecurity.conf;
.....
}
}
Otestujte svou konfiguraci Nginx
service nginx configtest
Pokud žádné chyby, znovu načtěte nebo restartujte Nginx
service nginx reload
Nyní můžete zobrazit /var/log/modsec_audit.log pro jakékoli události ModSecurity
tail -f /var/log/modsec_audit.log
Pokud jste spokojeni, upravte soubor /usr/local/nginx/conf/modsecurity.conf a nastavte "SecRuleEngine" z "DetectionOnly" na "On", jak je uvedeno níže
SecRuleEngine On
Tímto je tento průvodce uzavřen.
O autorovi
Dino Edwards je IT profesionál s více než 20 lety zkušeností ve federálním, státním a soukromém sektoru. Je také známo, že fušuje do programování.
Má tendenci psát návody nebo návody poté, co dokončí konkrétní projekt, především proto, že jeho paměť je špatná a nechce znovu vymýšlet kolo, pokud bude muset udělat stejný projekt znovu.
Kontaktujte nás
Web autora Sledovat E-mail