诚然博客

  • 首页
  • HTML
  • Jquery
  • PHP
  • ThinkPHP
  • Linux
  • 琐事
  1. 首页
  2. Linux
  3. 正文

linux 只允许cloudflare的ip访问80 443端口

2024年12月4日 146点热度

在 Ubuntu 24 服务器上,只允许 Cloudflare 的 IP 地址访问 80 和 443 端口可以通过配置防火墙实现,以下是具体步骤:

### 步骤 1: 更新服务器
确保服务器是最新的,运行以下命令:

sudo apt update && sudo apt upgrade -y

### 步骤 2: 获取 Cloudflare 的 IP 地址列表
Cloudflare 的官方 IP 地址范围可以从以下页面获取:[Cloudflare IP Ranges](https://www.cloudflare.com/ips/)。你需要将这些 IP 地址用于防火墙配置。

运行以下命令以下载 Cloudflare 的 IP 列表:

curl https://www.cloudflare.com/ips-v4 -o cloudflare-ips-v4.txt
curl https://www.cloudflare.com/ips-v6 -o cloudflare-ips-v6.txt

### 步骤 3: 配置防火墙
#### 使用 UFW
如果你使用 UFW(Uncomplicated Firewall),可以按照以下步骤:

1. 允许 Cloudflare 的 IP 范围访问端口 80 和 443:

while read ip; do sudo ufw allow from $ip to any port 80; done < cloudflare-ips-v4.txt
while read ip; do sudo ufw allow from $ip to any port 443; done < cloudflare-ips-v4.txt

while read ip; do sudo ufw allow from $ip to any port 80; done < cloudflare-ips-v6.txt
while read ip; do sudo ufw allow from $ip to any port 443; done < cloudflare-ips-v6.txt

2. 拒绝其他来源访问 80 和 443 端口:

sudo ufw deny 80
sudo ufw deny 443

3. 启用或重新加载 UFW:

sudo ufw enable
sudo ufw reload

#### 使用 iptables
如果你使用的是 iptables,可以按照以下步骤:

1. 清除已有规则:

sudo iptables -F
sudo iptables -X

2. 添加 Cloudflare 的 IP 范围规则:

while read ip; do sudo iptables -A INPUT -p tcp -s $ip --dport 80 -j ACCEPT; done < cloudflare-ips-v4.txt
while read ip; do sudo iptables -A INPUT -p tcp -s $ip --dport 443 -j ACCEPT; done < cloudflare-ips-v4.txt

while read ip; do sudo ip6tables -A INPUT -p tcp -s $ip --dport 80 -j ACCEPT; done < cloudflare-ips-v6.txt
while read ip; do sudo ip6tables -A INPUT -p tcp -s $ip --dport 443 -j ACCEPT; done < cloudflare-ips-v6.txt

3. 拒绝其他来源访问 80 和 443 端口:

sudo iptables -A INPUT -p tcp --dport 80 -j DROP
sudo iptables -A INPUT -p tcp --dport 443 -j DROP

4. 保存规则:

sudo apt install iptables-persistent -y
sudo netfilter-persistent save
sudo netfilter-persistent reload

### 步骤 4: 验证配置
可以通过以下命令验证防火墙规则是否生效:

- 对于 UFW:

sudo ufw status

- 对于 iptables:

sudo iptables -L -n -v

### 注意事项
1. Cloudflare 的 IP 地址可能会变动,需要定期更新规则。你可以编写一个脚本定期获取最新的 IP 列表并更新防火墙。
2. 确保其他必要的端口(如 SSH 的 22 端口)未被阻止,否则可能会锁定自己。

标签: 暂无
最后更新:2024年12月4日

诚然

这个人很懒,什么都没留下

点赞
< 上一篇

COPYRIGHT © 2012-现在 诚然博客. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

鄂ICP备2022012104号