自己国内重要网站都是用的某些商业防护软件,但是最近增加了个国外的vps,就不方便。

当然我看国外某款waf,也挺便宜的,效果不亚于阿里云的安全产品。

不过网站小,没必要一个月20刀去买,就用nginx简单的弄下防御就好了。

由于vps已经套了Any cast就不怎么担心ddos了,弄下cc防御就好了。

基于nginx关于防御cc攻击的,网上挺多相关脚本模块的,很多都是基于lua开发的,然后用OpenResty,防御效果还是不错的。

我用了verynginx,是觉得有控制面板,功能也挺多的,具体可以到官方看:VeryNginx

一、安装lua模块

由于我没有安装lua模块,就先安装这个吧。我是用的oneinstack安装的环境,所以就安装oneinstack的来。

pushd /root/oneinstack/src
wget -c http://nginx.org/download/nginx-1.12.1.tar.gz
wget -c https://www.zhujitop.com/test/openssl-1.0.2l.tar.gz
wget -c https://www.zhujitop.com/test/pcre-8.41.tar.gz
wget -c http://luajit.org/download/LuaJIT-2.0.5.tar.gz
git clone https://github.com/simpl/ngx_devel_kit.git
git clone https://github.com/openresty/lua-nginx-module.git
tar xzf nginx-1.12.1.tar.gz
tar xzf openssl-1.0.2l.tar.gz
tar xzf pcre-8.41.tar.gz
tar xzf LuaJIT-2.0.5.tar.gz
pushd LuaJIT-2.0.5
make && make install
popd
pushd nginx-1.12.1
./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_v2_module --with-http_ssl_module --with-http_gzip_static_module --with-http_realip_module --with-http_flv_module --with-http_mp4_module --with-openssl=../openssl-1.0.2l --with-pcre=../pcre-8.41 --with-pcre-jit --with-ld-opt=-ljemalloc --add-module=../lua-nginx-module --add-module=../ngx_devel_kit
make
mv /usr/local/nginx/sbin/nginx{,_bk}
cp objs/nginx /usr/local/nginx/sbin

如果自己有了, 某些就不用重新下载了,针对verynginx重要的就是LuaJIT、lua-nginx-module、其他的一般都已经安装了,只是要重新编译下nginx

添加变量:

cat /etc/ld.so.conf
include ld.so.conf.d/*.conf
echo “/usr/local/lib” >> /etc/ld.so.conf
ldconfig

然后看看有没有错误:
nginx -t

二、安装verynginx

1:创建个文件夹并且进去

mkdir verynginx

cd verynginx

2:下载解压

wget https://github.com/alexazhou/VeryNginx/archive/master.zip

(备份地址:https://www.zhujitop.com/test/master.zip)

unzip master.zip

3:安装

cd VeryNginx-master

python install.py

python install.py install all

 

如果是自行编译的nginx或OpenResty,就选择install verynginx;一键安装就用install all;还有一个选项是只安装OpenResty:install openresty。

我之前并没有安装OpenResty,所以就用一键安装好了,就是上面的python install.py install all

安装完成了,就会出现上面的提示,一般不用管它,除非你自己要修改。

4:配置

安装完成之后,查看文件:/opt/verynginx/openresty/nginx/conf/nginx.conf

如果已经是下图这样了,就不用管了,如果不是就先修改下,增加三行代码:

include /opt/verynginx/verynginx/nginx_conf/in_external.conf添加到http上面
include /opt/verynginx/verynginx/nginx_conf/in_http_block.conf;添加到http里面
include /opt/verynginx/verynginx/nginx_conf/in_server_block.conf;#添加到server里面

由于我之前都做好网站,并且服务器的nginx文件是写到一起的,我就得在本身服务器的nginx配置文件,也去增加上面的三行才管用。

最后重启下nginx

然后去打开下面的地址,看看能否打开。

http://[your domain or ip]/verynginx/index.html

这个也可以绑定你自己域名的。

默认的用户名和密码都是:verynginx 后台可以修改

用做控制面板的ip或者域名最好做好保护,域名也可以上ssl证书的。

至于里面的设置,常见都设置好了,也可以自己增加,可以自己改改。

重要提示:对于不懂匹配规则的,不要乱设置all_request,错误设置你网站就挂了,就只能把verynginx删了。

如果不能进这个页面,就是配置错误,主要就是看看必须的模块有没有,然后再看看相关的路径设置就好了。

如果只是为了CC防御,其实也可以不用这个,这个只是可以实现更多的功能,误杀机率可以更小点。