nginx naxsi http2

nginx naxsi http2Привет,

В продължение на публикацията ми от 08.12.2016г.  искам да споля, че вече е възможна работата на naxsi в комбинация с проткола http2 и nginx.

 

За целта е нужно да клонираме последната версия на naxsi от github и да добавил следните параметри след това:

cd /usr/src/
git clone https://github.com/nbs-system/naxsi.git
cd naxsi
git checkout http2
git fetch origin pull/309/head:http2-309
git checkout http2-309

Следва прекомпилиране на nginx :

./configure --add-module=../naxsi/naxsi_src --add-module=../ngx_cache_purge/ --prefix=/usr --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --user=www-data --group=www-data --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/tmp/nginx/client/ --http-proxy-temp-path=/var/tmp/nginx/proxy/ --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ --with-http_stub_status_module --with-http_realip_module --with-sha1=/usr/include/openssl --with-md5=/usr/include/openssl --with-openssl=../openssl-1.0.2k/ --with-http_mp4_module --with-poll_module --add-module=../nginx-rtmp-module --add-module=../headers-more-nginx-module-0.25/ --with-ipv6 --add-module=../nginx-module-vts --with-http_v2_module --add-module=../ngx_devel_kit --add-module=../set-misc-nginx-module-0.30 --add-module=/usr/src/ngx_brotli/ngx_brotli_module-master/

и активиране на naxsi модулите както следва :

в /etc/nginx/nginx.conf :

 include /etc/nginx/naxsi_core.rules;

а във виртуалният ни хост :

location / {
try_files $uri $uri/ /index.php?$args;
include /etc/nginx/naxsi.rules;

Тук за шарения добавих и :

error_page 418 /418.html;

location /RequestDenied {
return 418;
}

така всяка “зла” заявка ще бъде препратена със статус 418 към 418.html което в моя случай е един “среден пръст” 😀

След рестартиране на nginx може да тестваме дали работи нашият NAXSI Firewall например ето така :

root@server:~# wget --server-response --spider https://root.bg/%3C?php%20echo%20%22hello%22;%20?%3E
Spider mode enabled. Check if remote file exists.
--2017-06-07 08:43:13-- https://root.bg/%3C?php%20echo%20%22hello%22
Resolving root.bg (root.bg)... 87.97.157.122
Connecting to root.bg (root.bg)|87.97.157.122|:443... connected.
HTTP request sent, awaiting response...
HTTP/1.1 418
Date: Wed, 07 Jun 2017 08:42:45 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 192
Connection: keep-alive
ETag: "5937b9e3-c0"
Server: rws

 

Ами… това е!

Огромни благодарности за пичовете стоящи зад този страхотен продукт наречен NAXSI!