GNU/Linux >> Znalost Linux >  >> Ubuntu

Nginx s libmodsecurity a OWASP ModSecurity Core Rule Set na Ubuntu 16.04

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


Ubuntu
  1. Jak nainstalovat HTTP Git Server s Nginx na Ubuntu 16.04

  2. Jak nainstalovat Nginx s PHP5 a MySQL na Ubuntu 11.10

  3. Jak nasadit Modsecurity s Nginx na Ubuntu 20.04 LTS

  1. Jak nainstalovat HTTP Git Server s Nginx na Ubuntu 20.04

  2. Nasaďte Modsecurity s Nginx na Ubuntu 20.04 LTS

  3. Jak nainstalovat a nastavit PHP a Nginx (LEMP) na Ubuntu 20.04

  1. Jak nainstalovat Mattermost s PostgreSQL a Nginx na Ubuntu 16.04

  2. Dockerizace Wordpressu pomocí Nginx a PHP-FPM na Ubuntu 16.04

  3. Jak na Ubuntu nainstaluji a nastavím Git?