Alice.tech

CF配置回源ip

前言 每次爆CVE,你的服务器总是被打爆? 你的服务器ip总是裸奔在公网上? 赶快使用光荣的CF吧,只需简单几步 前提:把域名dns托管到cloudflare上 讲解 按理说cdn可以防住大部的检测了,是吧 网络上的dn…

前言

每次爆CVE,你的服务器总是被打爆?

你的服务器ip总是裸奔在公网上?

赶快使用光荣的CF吧,只需简单几步

前提:把域名dns托管到cloudflare上

讲解

按理说cdn可以防住大部的检测了,是吧

  • 网络上的dns服务器未更新,还是能查到你的ip
  • ssl证书依然可以查到ip
  • 子域名的服务未过cdn代理

SO,直接在负载均衡添加ip的限制,:

方法一 nginx手动配置

touch conf.d/cloudflare.conf

写入以下

# Cloudflare IPv4 IP段
allow 173.245.48.0/20;
allow 103.21.244.0/22;
allow 103.22.200.0/22;
allow 103.31.4.0/22;
allow 141.101.64.0/18;
allow 108.162.192.0/18;
allow 190.93.240.0/20;
allow 188.114.96.0/20;
allow 197.234.240.0/22;
allow 198.41.128.0/17;
allow 162.158.0.0/15;
allow 104.16.0.0/13;
allow 104.24.0.0/14;
allow 172.64.0.0/13;
allow 131.0.72.0/22;
# Cloudflare IPv6 IP段
allow 2400:cb00::/32;
allow 2606:4700::/32;
allow 2803:f800::/32;
allow 2405:b500::/32;
allow 2405:8100::/32;
allow 2a06:98c0::/29;
allow 2c0f:f248::/32;
# 拒绝其他所有IP
allow 127.0.0.1;
allow ::1;
deny all;

接着监听443的server在nginx.conf里引用

 server {
        listen 443 reuseport;
        proxy_pass $backend;
        include /etc/nginx/conf.d/cloudflare.conf;
        ssl_preread on;
    }
sudo nginx -t
sudo systemctl reload nginx

方法二 直接使用CF的tls证书

在ssl/tls下的源服务器,创建证书,域名用2级域名就好

在server 443加上

sudo touch ssl/cloudflare.key && sudo vim cloudfalre.key
sudo touch ssl/cloudfalre.crt && sudo vim cloudflare.crt

别忘了修改权限

chmod 600 /ssl/cloudflare.key
server {
        listen 443 reuseport;  # 监听>所有 IP 的 443 端口
        proxy_pass $backend;
        ssl_certificate /etc/nginx/ssl/cloudflare.crt;
        ssl_certificate_key /etc/nginx/ssl/cloudflare.key;
        include /etc/nginx/conf.d/cloudflare.conf;
        ssl_preread on;  # 启用 SSL preread 以读取 SNI
    }
sudo nginx -t 
sudo systemctl reload nginx

原始笔记:cloud/cloudflare配置回源ip.md