shell自动添加cdn域名对应的IP到防火墙白名单,已添加过的IP跳过不添加
要实现自动添加CDN域名对应的IP到防火墙白名单,并跳过已添加过的IP,可以编写一个Shell脚本来完成这个任务。以下是一个示例脚本:
#!/bin/bash
# 定义CDN域名
CDN_DOMAIN="your.cdn.domain"
# 获取域名对应的IP地址列表
IP_LIST=$(dig +short $CDN_DOMAIN)
# 防火墙命令(以iptables为例)
FIREWALL_CMD="iptables"
# 白名单链(假设你有一个名为WHITELIST的链)
WHITELIST_CHAIN="WHITELIST"
# 获取当前白名单中的IP地址
CURRENT_WHITELIST=$(iptables -L $WHITELIST_CHAIN -n | grep 'ACCEPT' | awk '{print $4}')
# 遍历IP地址列表
for IP in $IP_LIST; do
# 检查IP是否已经在白名单中
if echo "$CURRENT_WHITELIST" | grep -q "$IP"; then
echo "IP $IP 已在白名单中,跳过添加。"
else
# 添加IP到白名单
$FIREWALL_CMD -A $WHITELIST_CHAIN -s $IP -j ACCEPT
echo "IP $IP 已添加到白名单。"
fi
done
WHITELIST
的链,用于存放白名单规则。你可以根据实际情况调整。add_cdn_ip_to_whitelist.sh
。chmod +x add_cdn_ip_to_whitelist.sh
./add_cdn_ip_to_whitelist.sh