前言
有时候写了一些小服务,会上传一些不是很重要但是不想被别人看到的东西,这时候就想,如果能给网站加密就好了,但是前端加密太简陋,复杂的加密方式也不懂,干脆一了百了,防火墙限制ip访问,省心省力
正文
服务器上的服务
对服务器上的服务限制ip访问
主要使用nginx
,我使用的是openresty,需要配置两个地方
直接在1panel看更加直观
# 在server块之前添加允许IP的配置
geo $allowed_ip {
your_ip 1;
default 0;
}
然后
# 在server块内最开始处添加IP限制
if ($allowed_ip = 0) {
return 403; # 对未授权的IP返回403禁止访问
}
部署在cloudflare上的服务或者使用CF的CDN的服务
这个比较直接,配置WAF完事,免费用户有5条规则,完全够用,要注意
,是域名里面的WAF,不是全局WAF,所以cloudflare分配给你的域名绝对不要泄露,因为,直接访问那个域名是不会走我们的WAF的!!
规则的写法如下
(not ip.src in {your_ip} and http.host in {"domain"})
后面的字段的限制优先级要高于前面的字段
最后采取的措施是阻止
意思
是对于特定域名(主机名),不在ip允许范围内,全部阻止
只有开启小云朵,流量经过cloudflare才能生效,否则是没有用的,当然,部署在cloudflare上的服务都是默认开启的
记得清除缓存
使用github page构建
这种方式搭建的服务必须使用public仓库
,就算使用自定义域名也有一些小问题,不推荐
使用vercel
貌似限制ip访问的功能是企业用户
才有,可以设置面板密码,不过个人还是不推荐
补充——使用access
cloudflare除了防火墙还有access应用,需要邮箱验证码验证才能登录,再加上ip限制,可谓十分严格,最重要的是,在这个应用里面可以任意添加域名,包括cloudflare分配的域名,这样就完全避免了陌生访客,除非cloudflare的安全不到位
步骤
首页打开
添加应用程序
设置基本信息(域名,过期时间)个人使用,可以把过期时间设置长一些
其他全部默认,设置策略
设置策略规则
意思是只有包括在内的邮箱和ip才能收到验证码,然后才能登录,否则全部失败
个人使用不严格的话,可以不用ip规则,使用国家规则
其他全部默认保存即可
测试
填入邮箱,可以看到匹配了一个邮箱规则和一个ip规则
我的代理没有代理ipv6,所以没有错误测试
之后每次访问就可以看到验证界面了
如果ip和邮箱都正确,就会收到验证码,否则是收不到的
缺点是依然需要打开小云朵(CDN代理)