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