Featured image of post 网站博客私有化

网站博客私有化

前言

​ 有时候写了一些小服务,会上传一些不是很重要但是不想被别人看到的东西,这时候就想,如果能给网站加密就好了,但是前端加密太简陋,复杂的加密方式也不懂,干脆一了百了,防火墙限制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的!!

image-20241222210940228

​ 规则的写法如下

(not ip.src in {your_ip} and http.host in {"domain"})

image-20241222211114307

后面的字段的限制优先级要高于前面的字段

​ 最后采取的措施是阻止

意思是对于特定域名(主机名),不在ip允许范围内,全部阻止

只有开启小云朵,流量经过cloudflare才能生效,否则是没有用的,当然,部署在cloudflare上的服务都是默认开启的

记得清除缓存

image-20241223165427830

使用github page构建

​ 这种方式搭建的服务必须使用public仓库,就算使用自定义域名也有一些小问题,不推荐

使用vercel

​ 貌似限制ip访问的功能是企业用户才有,可以设置面板密码,不过个人还是不推荐

补充——使用access

​ cloudflare除了防火墙还有access应用,需要邮箱验证码验证才能登录,再加上ip限制,可谓十分严格,最重要的是,在这个应用里面可以任意添加域名,包括cloudflare分配的域名,这样就完全避免了陌生访客,除非cloudflare的安全不到位

步骤

首页打开

image-20241227191946265

添加应用程序

image-20241227192019447

设置基本信息(域名,过期时间)个人使用,可以把过期时间设置长一些

image-20241227192129555

其他全部默认,设置策略

image-20241227192234896

image-20241227192248954

设置策略规则

image-20241227192335268

意思是只有包括在内的邮箱和ip才能收到验证码,然后才能登录,否则全部失败

个人使用不严格的话,可以不用ip规则,使用国家规则

其他全部默认保存即可

测试

image-20241227192533756

填入邮箱,可以看到匹配了一个邮箱规则和一个ip规则

image-20241227192827441

我的代理没有代理ipv6,所以没有错误测试

之后每次访问就可以看到验证界面了

image-20241227193047241

如果ip和邮箱都正确,就会收到验证码,否则是收不到的

缺点是依然需要打开小云朵(CDN代理)

CC BY-NC-SA 4.0 创意的非商业派对入场券
最后更新于 2024-12-27 19:47
晚来天欲雪,能饮一杯无