shell脚本解析cdn域名对应IP自动添加防火墙白名单
要编写一个Shell脚本来解析CDN域名对应的IP地址并自动添加到防火墙的白名单中,你可以按照以下步骤进行。这个脚本将使用dig
命令来解析域名,并使用iptables
来添加防火墙规则。
以下是一个示例脚本:
#!/bin/bash
# 检查是否以root用户运行
if [ "$EUID" -ne 0 ]; then
echo "请以root用户运行此脚本"
exit 1
fi
# 检查是否安装了dig命令
if ! command -v dig &> /dev/null; then
echo "dig命令未找到,请安装bind-utils或dnsutils"
exit 1
fi
# 检查是否安装了iptables命令
if ! command -v iptables &> /dev/null; then
echo "iptables命令未找到,请安装iptables"
exit 1
fi
# CDN域名列表
cdn_domains=(
"example1.cdn.com"
"example2.cdn.com"
# 添加更多的CDN域名
)
# 解析域名并添加IP到防火墙白名单
for domain in "${cdn_domains[@]}"; do
echo "解析域名: $domain"
ips=$(dig +short "$domain")
if [ -z "$ips" ]; then
echo "未能解析域名: $domain"
continue
fi
for ip in $ips; do
echo "添加IP到防火墙白名单: $ip"
iptables -I INPUT -s "$ip" -j ACCEPT
done
done
# 保存iptables规则
if command -v iptables-save &> /dev/null; then
iptables-save > /etc/iptables/rules.v4
echo "iptables规则已保存"
else
echo "未找到iptables-save命令,无法保存规则"
fi
echo "脚本执行完毕"
dig
和iptables
命令。cdn_domains
数组中添加需要解析的CDN域名。dig
命令解析域名,获取对应的IP地址,并使用iptables
命令将IP地址添加到防火墙的白名单中。iptables-save
命令,脚本会将当前的iptables规则保存到文件中,以便在系统重启后规则依然有效。add_cdn_whitelist.sh
。chmod +x add_cdn_whitelist.sh
sudo ./add_cdn_whitelist.sh
请根据你的实际需求修改脚本中的CDN域名列表和其他配置。