nginx安全设置之-限制IP来源只能为cloudflare
如果想进一步提高网站的安全性,比如比较有效的防止网站被采集,
可以尝试把服务器只能为来自cloudflare 的Ip 链接
其实这种方法很简单,不过国外已经有人写好了脚本。。。
这里就用该脚本配置nginx只能来自cloudflare的IP链接
编辑Nginx.conf
文件载入cloudflare.conf
文件
include /etc/nginx/cloudflare.conf;
如果在nginx.conf
server段载入,则表示所有的虚拟主机都只允许来自cloudflare 的IP链接
如果在nginx.conf
http段载入,则表示该域名只来自cloudflare 的IP链接
编辑cloudflare.conf
文件,添加以下代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#Cloudflare ip addresses
# - IPv4
set_real_ip_from 103.21.244.0/22;
set_real_ip_from 103.22.200.0/22;
set_real_ip_from 103.31.4.0/22;
set_real_ip_from 104.16.0.0/12;
set_real_ip_from 108.162.192.0/18;
set_real_ip_from 131.0.72.0/22;
set_real_ip_from 141.101.64.0/18;
set_real_ip_from 162.158.0.0/15;
set_real_ip_from 172.64.0.0/13;
set_real_ip_from 173.245.48.0/20;
set_real_ip_from 188.114.96.0/20;
set_real_ip_from 190.93.240.0/20;
set_real_ip_from 197.234.240.0/22;
set_real_ip_from 198.41.128.0/17;
# - IPv6
set_real_ip_from 2400:cb00::/32;
set_real_ip_from 2405:8100::/32;
set_real_ip_from 2405:b500::/32;
set_real_ip_from 2606:4700::/32;
set_real_ip_from 2803:f800::/32;
set_real_ip_from 2c0f:f248::/32;
set_real_ip_from 2a06:98c0::/29;
real_ip_header CF-Connecting-IP;
你也可以把上面的set_real_ip_from
替换成 allow
在文件末尾添加deny all
也是可以的
上面是cloudflare的cdn IP地址,你可以从以下地址找到
https://www.cloudflare.com/ips/
这里有个问题,假设cloudflare新增了数据中心或者更新了ip,那么需要手动更新不是很麻烦?
老外也想到了这个问题,所以写了下面的自动更新cloudflare CDN IP地址的脚本
下载该脚本,并赋予脚本执行权限,添加crontab 自动更新
1
2
3
4
5
6
7
8
9
10
wget https://raw.githubusercontent.com/ergin/nginx-cloudflare-real-ip/master/cloudflare-sync-ips.sh
chmod +x cloudflare-sync-ips.sh
crontab -e
30 2 * * * /opt/scripts/cloudflare-sync-ips.sh >/dev/null 2>&1
service cron restart
搞定。。。主要相关文件的路径要统一。。。
脚本作者官方代码仓库
https://github.com/ergin/nginx-cloudflare-real-ip?vpslala.com
💘 相关文章
- how to do config nginx allow's cloudflare ip's
- Configure nginx to only allow cloudflare's IP to connect to the server shell script
- 使用301实现域名跳转到www包括https的3种方法
- nginx: [emerg] Solution to unknown directive "set_real_ip_from"
- 两种自动添加 ip 白名单到cloudflare的脚本
- 在ubuntu和Debian系统单网卡绑定多个IP v6地址的方法
- nginx反向代理配置演示,包括静态资源处理,百分百成功
- buyvm 限制cpu吗?
- 不会配置nginx?这个在线配置nginx的网站非常方便
- digitalocean開源nginx可視化配置工具,非常適合新手小白,支持漢化