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!
Nikolay Nikolov
Wednesday June 7th, 2017 @ 13:46
Тук възникна и лек проблем с линковете от Feedburner! Заради включената опция (Track clicks as a traffic source in Google Analytics learn more about click tracking optimization) линк-а идваше като : https://root.bg/tutorials/nginx-naxsi-http2/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+friendbg%2FMorr+%28root.bg%29&utm_content=FeedBurner и NAXSI го блокираше.
Спрях тази опция! 🙂