提升网站安全-访问限制篇

引言

运维圈里有句话说的好,“国内业务屏蔽海外访问,能解决你99%的问题”,这次我们就试着从这里了解一下网站访问限制的各种实现方式。

第一步:通过DNS解析厂商进行

一般情况下扫描器会针对域名进行扫描,我们可以在dns解析处做第一层防御,将海外线路解析为127.0.0.1,配置完成后海外扫描器就几乎都失效了。

以阿里云为例:

第二步:通过Nginx进行限制

通过域名解析后下一步会进入CDN,WAF网站防火墙,硬件设备或直接通往源站,此时我们可以对请求进行更细的过滤,这里主要讲一下通过网站防火墙配置和Nginx配置。

1.地区访问限制

前面提到的是通过DNS解析来对域名进行禁海外访问,但如果攻击者使用IP来扫描就没办法了,所以我们需要在服务器或应用上进行限制。

Nginx实现根据国家/城市进行访问限制

Nginx使用模块ngx_http_geoip_module来实现对国家/城市访问限制

安装方式如下:

1.1 安装maxminddb library(geoip2扩展依赖)

Ubuntu debian

apt install libmaxminddb0 libmaxminddb-dev mmdb-bin

Centos

yum install libmaxminddb-devel -y

1.2 下载ngx_http_geoip2_module模块

进入root目录,然后克隆模块

cd root && git clone https://github.com/leev/ngx_http_geoip2_module.git

1.3 把模块编译到Nginx

手工编译方式

./configure --add-module=/root/ngx_http_geoip2_module

宝塔面板下nginx的编译方式

1.4 下载Geoip数据库

模块安装成功后,还要在 Nginx 里指定数据库,位于 /usr/share/GeoIP/ 目录下,一个只有 IPv4,一个包含 IPv4 和 IPv6:

数据库地址:

cd /usr/local/share/GeoIP

wget http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.mmdb.gz

wget http://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.mmdb.gz

1.5 添加配置到Nginx主配置文件

geoip2 /usr/local/share/GeoIP/GeoLite2-Country.mmdb {$geoip2_data_country_code country iso_code;}map $geoip2_data_country_code $allowed_country { default yes; CN no; }

1.6 修改Nginx虚拟主机的配置文件,在server段内添加后重载nginx

if ($allowed_country = yes) { return 403; }

至此配置完成

另外一种方式是借用堡塔云WAF的【禁中国境外访问】功能

安装好WAF免费防火墙后打开此开关即可

拦截效果

2.禁止IDC机房、服务器IP访问

通常情况下服务器IP并不是我们的客户,在这里推荐大家在没有接口业务的情况下禁止服务器IP访问。

堡塔云WAF的功能为例:

我们只需要在防护网站设置里开启禁止IDC访问即可达成,它还会自动放行真实爬虫以免影响网站收录。

3.对用户上传目录进行严格限制,禁止访问可执行文件

这是黑客的主要渗透手段之一,在可上传文件的目录下传入后门文件,我们在禁止后即使他们成功传入也无法进行利用。

堡塔云WAF的功能为例:

在自定义规则功能里面配置禁止访问/file/upload目录下的所有以.php结尾的文件

拦截效果

恭喜您,如果您有经过上述配置,您的网站安全性又提高啦!

堡塔云WAF安装方式

堡塔云WAF需要占用80、443、33060端口,建议使用单独服务器部署,已经安装了宝塔面板的机器不支持安装云WAF。

官网地址:防黑客CC攻击-装堡塔云WAF

安装命令:

安装教程

堡塔云WAF服务器配置测试表

堡塔云WAF系统兼容表


URL=https://download.bt.cn/cloudwaf/scripts/install_cloudwaf.sh && if [ -f /usr/bin/curl ];then curl -sSO "$URL" ;else wget -O install_cloudwaf.sh "$URL";fi;bash install_cloudwaf.sh
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值