2013年9月7日
から hiruta
naxsiの導入 はコメントを受け付けていません
nginx用のWeb Application Firewallであるnaxsiを導入してみました。
カスタムrpmを作って、naxsi-coreを入れてみました。
nginx最新版のソースRPMをまずインストール。
rpm -ivh nginx-1.4.1-1.el6.ngx.src.rpm
次に、naxsiのソースを展開。
zcat naxsi-core-0.49.tgz | tar xvf -
nginxのSPECファイルを編集。
vi nginx.spec
–with-debugがないconfigureの引数に「–add-module=/root/naxsi-core/naxsi_src」を追加します。
./configure \
--prefix=%{_sysconfdir}/nginx \
--sbin-path=%{_sbindir}/nginx \
--conf-path=%{_sysconfdir}/nginx/nginx.conf \
--error-log-path=%{_localstatedir}/log/nginx/error.log \
--http-log-path=%{_localstatedir}/log/nginx/access.log \
--pid-path=%{_localstatedir}/run/nginx.pid \
--lock-path=%{_localstatedir}/run/nginx.lock \
--http-client-body-temp-path=%{_localstatedir}/cache/nginx/client_temp \
--http-proxy-temp-path=%{_localstatedir}/cache/nginx/proxy_temp \
--http-fastcgi-temp-path=%{_localstatedir}/cache/nginx/fastcgi_temp \
--http-uwsgi-temp-path=%{_localstatedir}/cache/nginx/uwsgi_temp \
--http-scgi-temp-path=%{_localstatedir}/cache/nginx/scgi_temp \
--user=%{nginx_user} \
--group=%{nginx_group} \
--with-http_spdy_module \
--with-http_ssl_module \
--with-http_realip_module \
--with-http_addition_module \
--with-http_sub_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_random_index_module \
--with-http_secure_link_module \
--with-http_stub_status_module \
--add-module=/root/naxsi-core/naxsi_src \
--with-mail \
--with-mail_ssl_module \
--with-file-aio \
--with-ipv6 \
--with-cc-opt="%{optflags} $(pcre-config --cflags)" \
$*
rpmbuildをして、生成したrpmをインストール。
naxsi_core.rulesをインクルード。
vi /etc/nginx/nginx.conf
http {
include /etc/nginx/mime.types;
include /etc/nginx/naxsi_core.rules;
</pre>
LearningMode; #Enables learning mode
SecRulesEnabled;
#SecRulesDisabled;
DeniedUrl "/RequestDenied";
include "/tmp/naxsi_rules.tmp";
## check rules
CheckRule "$SQL >= 8" BLOCK;
CheckRule "$RFI >= 8" BLOCK;
CheckRule "$TRAVERSAL >= 4" BLOCK;
CheckRule "$EVADE >= 4" BLOCK;
CheckRule "$XSS >= 8" BLOCK;
<pre>
vi /etc/nginx/conf.d/default.conf
</pre>
server {
listen 80;
server_name totalsolution.biz;
#charset koi8-r;
access_log /var/log/nginx/totalsolution.biz.access.log ltsv;
error_log /var/log/nginx/totalsolution.biz.error.log;
location / {
include /etc/nginx/test.rules;
<pre>
最後に、nginxを再起動して終了。
error_logに以下のようにnaxsiのログが書き出されれば成功。
</pre>
2013/09/07 08:19:46 [error] 25875#0: *6319 NAXSI_FMT: ip=123.218.123.177&server=xxx.js&learnin
g=1&total_processed=1490&total_blocked=366&zone0=HEADERS&id0=1005&var_name0=cookie
&zone1=HEADERS&id1=1010&var_name1=cookie&zone2=HEADERS&id2=1011&var_name2=cookie&z
one3=HEADERS&id3=1315&var_name3=cookie, client: 123.218.123.177, server: totalsolu
tion.biz, request: "GET /cms/wp-content/plugins/wp-slimstat/wp-slimstat.js HTTP/1.
1", host: "www.totalsolution.biz", referrer: "http://www.totalsolution.biz/cms/wp-
login.php"