分享两个服务器脚本强化 CloudFlare 的安全保护真实 IP 不泄露

分享两个自用的 Linux 防火墙脚本,主要作用是强化使用了 CloudFlare 后的保护服务器真实 IP 的,一般来说,位于最前线的反向代理主要有如下几种:

CDN:内容分发网络,就近为用户提供服务,加速访问;
高防 IP:高防 IP 一般位于大带宽的骨干网节点上,用于清洗 DDoS 流量;
SLB:负载均衡器,用在大流量、繁忙的网站上,常见的 SLB 有 LVS、F5 等。
这三种反向代理主要作用不一样,配置好的情况下都能隐藏服务器真实 IP。对于普通的网站,使用 CDN 或者高防就足够,业务量大的情况下才会用到 SLB。使用 CloudFlare 的可以将回源 IP 加入白名单,屏蔽其他 IP 的任何请求。Cloudflare 的节点 IP 能正常回源,其他 IP 完全无法访问真实 IP 的网站服务器,很好的隐藏了真实 IP。

考虑到很多站长们喜欢使用宝塔面板,所以今天明月特意收集整理了一个适合宝塔面板用的脚本,通过 https://www.cloudflare.com/zh-cn/ips/获得 CloudFlare 的 IP 节点,保存为cf_ips.txt,然后编写如下的.sh 脚本文件:

# 首先将 cf 的 ip 加入白名单
while read -r line
do
  firewall-cmd --zone=trusted --add-source=$line
done < cf_ips.txt
# 然后移除其他 ip 对 http 和 https 服务的访问
firewall-cmd --remove-service=http
firewall-cmd --remove-service=https

保存后,直接 sh 脚本文件名称.sh 运行即可完成 CloudFlare 节点 IP 加入到宝塔的 Firewall 防火墙里了。这样只有 CloudFlare 的节点 IP 才能向服务器的 443 和 80 端口发送请求,其他 IP 一律屏蔽。

另外还有个 iptables 版的,这个是支持 IPv4 和 IPv6 的,并且可以自动获取 CloudFlare 的节点 IP,比较推荐这个:


#!/bin/bash
# Name  : Anti IP Leakage
# Author: Zhys
# Date  : 2019
# 禁止来自 IPv4 的所有 HTTP/S 访问请求
iptables -I INPUT -p tcp -m multiport --dports 80,443 -j DROP
# 对 Cloudflare CDN IPv4 地址开放 HTTP/S 入站访问
for i in `curl https://www.cloudflare.com/ips-v4`; do iptables -I INPUT -s $i -p tcp -m multiport --dport 80,443 -j ACCEPT; done
# 禁止来自 IPv6 的所有 HTTP/S 访问请求
ip6tables -I INPUT -p tcp -m multiport --dports 80,443 -j DROP
# 对 Cloudflare CDN IPv6 地址开放 HTTP/S 入站访问
for i in `curl https://www.cloudflare.com/ips-v6`; do ip6tables -I INPUT -s $i -p tcp -m multiport --dport 80,443 -j ACCEPT; done
# 保存 iptables 配置(请确保命令正确配置再保存)
iptables-save
ip6tables-save

这样的 Linux 防火墙配置后,你隐藏在 CloudFlare 后的服务器真实 IP 就更加的安全了。

文章版权归原作者所有或来自互联网,未经允许请勿转载。如有侵权请联系我删除,谢谢!
THE END
分享
二维码
打赏
< <上一篇
下一篇>>
文章目录
关闭
目 录